摘要: 前言 Seata是一个分布式事务解决方案框架,TC,TM,RM之间需要相互通讯来进行全局事务和分支事务的注册,回滚等等... Seata底层就是用了Netty,并定义了私有的RPC协议进行通讯的,本文就从RPC和Netty入手,来揭开Seata RPC模块神秘的面纱。 总览 Seata的RPC模块位 阅读全文
posted @ 2022-05-31 10:04 飞僧明天起飞 阅读(562) 评论(0) 推荐(0) 编辑
摘要: 我们知道Seata服务端TC在全局事务中需要协调TM,RM分工干活,一个全局事务GlobalSession是由多个分支事务BranchSession组成的,那么TC端必须要对这些全局事务和分支事务进行管理,比如事务的创建、更新、删除...我们今天就来聊一聊Seata中的用来管理事务的 Session 阅读全文
posted @ 2022-05-30 20:43 飞僧明天起飞 阅读(446) 评论(0) 推荐(0) 编辑
摘要: 以AT为例,我们使用Seata时只需要在全局事务的方法上加上@GlobalTransactional,就开启了全局事务的支持。那么Seata的底层到底是怎么实现的呢? 如果对Seata源码无从下手,那么不妨从Spring切入: GlobalTransactionScanner 在Seata中有一个重 阅读全文
posted @ 2022-05-25 10:50 飞僧明天起飞 阅读(622) 评论(0) 推荐(0) 编辑
摘要: Seata架构 Seata将分布式事务理解为一个全局事务,它由若干个分支事务组成,一个分支事务就是一个满足ACID的本地事务。 Seata架构中有三个角色: TC (Transaction Coordinator) - 事务协调者 维护全局和分支事务的状态,驱动全局事务提交或回滚。 TM (Tran 阅读全文
posted @ 2022-05-23 09:41 飞僧明天起飞 阅读(734) 评论(0) 推荐(0) 编辑
摘要: 消息可靠性 确保消息至少被消费了一次(不丢失) 消息丢失的几种情况: 消息在网络传输时丢失,如生产者到交换机,交换机到队列的过程中 MQ宕机:消息到达Queue了,但在消费者消费之前,MQ就宕机了 消费者宕机:消费者接收了消息但是还没处理就宕机了 如何解决? RabbitMQ分别针对生产者, MQ和 阅读全文
posted @ 2022-05-16 09:14 飞僧明天起飞 阅读(193) 评论(0) 推荐(0) 编辑