Java-Interview-Advanced/docs/distributed-system/deal-line.md

38 lines
2.0 KiB
Markdown
Raw Normal View History

2020-04-25 11:55:58 +00:00
分布式系统核心的问题,服务框架、注册中心、网关系统、部署架构、超时重试、幂等防重,生产相关的问题,都搞定了,还是针对面试这块,人家到时候问你很多的生产问题,你必须回答的很好,你可以自己主动聊,说我们在生产环境里做了哪些优化
分布式事务,分布式锁
核心交易链路,核心数据链路,核心计算链路,核心业务链路,都建议要上分布式事务,保证核心链路的数据一致性
面试突击第一季,如果你没看过,务必去看一下,分布式事务这块,几种技术方案,我当时都讲解过了,离落地还有一段距离
分布式锁在分布式系统中用的是非常多的单块系统不需要分布式事务一个系统对应一个数据库事务都是本地数据库的事务就可以了很多地方多线程并发修改一些共享资源在单块系统内部用synchronized锁就可以搞定了
分布式系统,事务 -> 分布式事务,锁 -> 分布式锁
订单服务 -> 创建订单
-> 库存服务 -> 扣减库存
-> 积分服务 -> 增加积分
-> 仓储服务 -> 通知发货
微服务架构里哪怕你就部署了一个MySQL在一台高配物理机上但是在这个MySQL实例中会创建不同的databasedb_orderdb_inventorydb_creditdb_wms订单服务涉及到5张表db_order中就会有5张表
已经在自己本地插入了一条订单数据了调用库存服务扣减库存在db_inventory里执行sql扣减库存此时库存服务执行失败了但是对于订单服务他可能是没有感知到他的订单还是创建成功了调用积分服务和仓储服务积分增加了还打算对商品进行发货
订单服务 -> 创建了订单,库存服务 -> 扣减了库存,积分服务 -> 增加积分失败一旦回滚了之后就会导致创建的订单被取消了没了create语句放在本地事务里一旦发现失败了此时就会回滚就会导致