File tree 4 files changed +70
-0
lines changed
4 files changed +70
-0
lines changed Original file line number Diff line number Diff line change 210
210
- [ 34、如果出现服务请求重试,会不会出现类似重复下单的问题?] ( /docs/distributed-system/request-retry.md )
211
211
- [ 35、对于核心接口的防重幂等性,你们是怎么设计的?怎么防止重复下单问题?] ( /docs/distributed-system/interface-idempotence.md )
212
212
- [ 36、作业:看看自己系统的核心接口有没有设计幂等性方案?如果没有,应该怎么设计?] ( /docs/distributed-system/work-interface-idempotence.md )
213
+ - [ 37、画一下你们电商系统的核心交易链路图,说说分布式架构下存在什么问题?] ( /docs/distributed-system/deal-line.md )
214
+ - [ 38、针对电商核心交易链路,你们是怎么设计分布式事务技术方案的?] ( /docs/distributed-system/work-distributed-transaction.md )
215
+ - [ 39、对于TCC事务、最终一致性事务的技术选型,你们是怎么做的?如何调研的?] ( /docs/distributed-system/distributed-transaction-tcc.md )
216
+ - [ 40、作业:你们公司的核心链路是否有事务问题?分布式事务方案怎么调研选型?] ( /docs/distributed-system/work-distributed-transaction.md )
213
217
214
218
215
219
### 第二季-高并发
Original file line number Diff line number Diff line change
1
+
2
+ 分布式系统核心的问题,服务框架、注册中心、网关系统、部署架构、超时重试、幂等防重,生产相关的问题,都搞定了,还是针对面试这块,人家到时候问你很多的生产问题,你必须回答的很好,你可以自己主动聊,说我们在生产环境里做了哪些优化
3
+
4
+ 分布式事务,分布式锁
5
+
6
+ 核心交易链路,核心数据链路,核心计算链路,核心业务链路,都建议要上分布式事务,保证核心链路的数据一致性
7
+
8
+ 面试突击第一季,如果你没看过,务必去看一下,分布式事务这块,几种技术方案,我当时都讲解过了,离落地还有一段距离
9
+
10
+ 分布式锁,在分布式系统中用的是非常多的,单块系统,不需要分布式事务,一个系统对应一个数据库,事务都是本地数据库的事务就可以了;锁,很多地方多线程并发修改一些共享资源,在单块系统内部用synchronized锁就可以搞定了
11
+
12
+
13
+
14
+ 分布式系统,事务 -> 分布式事务,锁 -> 分布式锁
15
+
16
+
17
+
18
+
19
+ 订单服务 -> 创建订单
20
+ -> 库存服务 -> 扣减库存
21
+ -> 积分服务 -> 增加积分
22
+ -> 仓储服务 -> 通知发货
23
+
24
+
25
+
26
+ 微服务架构里,哪怕你就部署了一个MySQL在一台高配物理机上,但是在这个MySQL实例中会创建不同的database,db_order,db_inventory,db_credit,db_wms,订单服务涉及到5张表,db_order中就会有5张表
27
+
28
+
29
+
30
+ 已经在自己本地插入了一条订单数据了,调用库存服务扣减库存,在db_inventory里执行sql扣减库存,此时库存服务执行失败了,但是对于订单服务,他可能是没有感知到,他的订单还是创建成功了,调用积分服务和仓储服务,积分增加了,还打算对商品进行发货
31
+
32
+
33
+ 订单服务 -> 创建了订单,库存服务 -> 扣减了库存,积分服务 -> 增加积分失败,一旦回滚了之后,就会导致创建的订单被取消了,没了,create语句,放在本地事务里,一旦发现失败了,此时就会回滚,就会导致
34
+
35
+
36
+
37
+
Original file line number Diff line number Diff line change
1
+
2
+ 类似TCC事务的,开源框架,ByteTCC,Himly,个人技术高手自己写的,star也不少,也有一些中小型公司生产环境用了类似的分布式事务框架,知名度和普及型不高;很多公司,对类似的分布式事务,是自己写一些类似的框架
3
+
4
+
5
+
6
+ 阿里开源了分布式事务框架,fescar,技术体系上有很多地方都是有自己的东西,seata,阿里开源的分布式事务框架,类似TCC事务,seata来做,这个框架是经历过阿里生产环境大量的考验的一个框架
7
+
8
+ 支持dubbo、spring cloud两种服务框架,都是可以的
9
+
10
+
11
+
12
+
13
+ 可靠消息最终一致性方案,面试突击第一季里都说过,ActiveMQ封装一个可靠消息服务,基于RabbitMQ封装,自己开发一个可靠消息服务,收到一个消息之后,会尝试投递到MQ上去,投递失败,重试投递
14
+
15
+ 人家消费成功了以后必须回调他一个接口,通知他消息处理成功,如果一段时间后发现消息还是没有处理成功,此时会再次投递消息到MQ上去,在本地数据库里存放一些消息,基于ActiveMQ / RabbitMQ来实现消息的异步投递和消费
16
+
17
+
18
+
19
+ RocketMQ,作为MQ中间件,提供了分布式事务支持,他把可靠消息服务需要实现的功能逻辑都做好了
20
+
21
+
22
+
Original file line number Diff line number Diff line change
1
+
2
+
3
+ 你自己的系统,核心链路,是否存在数据不一致的问题,如果要设计分布式事务方案,如何设计,对分布式事务的技术如何选型,好好做一下,然后提交到狸猫技术窝,知识店铺,训练营里有作业本
4
+
5
+ 完成作业的时候有任何疑问,可以提出来,我们每天会进行答疑
6
+
7
+ 微信群,训练营的课程目录里有一个文档
You can’t perform that action at this time.
0 commit comments