RocketMQ在分布式事务支持这块机制的底层原理?

RocketMQ在分布式事务支持这块的底层原理主要基于两阶段提交协议(2PC)和消息队列的异步解耦机制。

首先,RocketMQ采用了最终一致性的分布式事务策略,而不是强一致性的分布式事务策略(如2PC、3PC、TCC等)。这意味着RocketMQ保证的是消息最终一致性,而不是像2PC、3PC、TCC那样强一致分布式事务。

其次,RocketMQ通过异步通信和应用解耦,将非核心业务系统对核心业务系统的影响降到最低。在这种情况下,如果直接拒绝20个请求,应用在接下来的两秒就会空闲。因此,RocketMQ需要将请求突刺均摊到一段时间内,让系统负载保持在请求处理水位之内,同时尽可能地处理更多请求。

另外,RocketMQ还支持消息回查机制。由于网络闪段、生产者应用重启等原因,Producer端一直没有对Half Message(半消息)进行二次确认。在这种情况下,Broker服务器会定时扫描长期处于半消息的消息,主动询问Producer端该消息的最终状态(Commit或者Rollback)。

综上所述,RocketMQ在分布式事务支持这块的底层原理主要基于两阶段提交协议和消息队列的异步解耦机制。同时,RocketMQ还支持消息回查机制来确保消息的最终一致性。

发表评论

后才能评论