微服务分布式事务的优化与实践
1. 分布式事务的处理策略
在微服务架构中,对于需要高响应性的微服务,如与用户交互的服务,应避免使用分布式事务;而对于响应性要求较低的后台微服务,可以保留一定形式的分布式事务。但如果在微服务中完全不能接受分布式事务或两阶段事务,该如何解决呢?接下来将探讨一种更宽松的设计方案。
2. 宽松BASE设计
为了应对分布式事务的挑战,我们对原设计进行了优化,引入了新的表 QuotesTX 和新的实体 StockTransaction ,并由 QuotesTransactionService 管理相关操作。以下是该设计的业务流程:
1. 新的股票交易报价被推送到 Broker Web 微服务,并插入到MySQL数据库的 Quotes 表中,状态为“New”。
2. Quotes Processor Task 是一个Quartz定时任务,会轮询 Quotes 表中状态为“New”的报价。
3. 当找到状态为“NEW”的报价时,会调用 broker 服务的 processNewQuote 方法,并传递报价的唯一标识符。
4. broker 服务会调用 auction 服务和 stock order 服务,这两个服务的执行必须是原子性的。
5.
超级会员免费看
订阅专栏 解锁全文
527

被折叠的 条评论
为什么被折叠?



