什么是分布式事务
传统的事务是基于项目耦合并且是单数据库的本地事务,简单的来说,分布式事务就是实现跨服务器和数据库的事务支持
CAP 定理,又被叫作布鲁尔定理。对于设计分布式系统(不仅仅是分布式事务),CAP 就是你的入门理论。
C (一致性):对某个指定的客户端来说,读操作能返回最新的写操作。
对于数据分布在不同节点上的数据来说,如果在某个节点更新了数据,那么在其他节点如果都能读取到这个最新的数据,那么就称为强一致,如果有某个节点没有读取到,那就是分布式不一致。
A (可用性):非故障的节点在合理的时间内返回合理的响应(不是错误和超时的响应)。可用性的两个关键一个是合理的时间,一个是合理的响应。
合理的时间指的是请求不能无限被阻塞,应该在合理的时间给出返回。合理的响应指的是系统应该明确返回结果并且结果是正确的,这里的正确指的是比如应该返回 50,而不是返回 40。
P (分区容错性):当出现网络分区后,系统能够继续工作。打个比方,这里集群有多台机器,有台机器网络出现了问题,但是这个集群仍然可以正常工作。
MQ消息中间件的事务控制
首先MQ众所周知的作用在于请求削峰和系统解耦,在分布式系统中一个业务请求可能涉及多个服务,根据RPC木桶理论(整体耗时取决于响应最慢的接口),那么在引入MQ消息中间件后,可以很好的解决这个问题,业务请求完成本身的逻辑后返回,由MQ通过队列方式调用其它服务.

对于MQ控制事务,就必须开启MQ事务,MQ客户端使用事务,必须在session.close()之前必须执行session.conmmit()进行提交,同时可以使用try/cat异常中使用session.rollback()对当前消息进行回滚

本文介绍了分布式事务的概念,特别是基于MQ消息中间件的事务控制。MQ提供了半消息和消息回查机制来保证分布式事务的最终一致性。在事务交互流程中,系统A先发送半消息,待本地事务完成后发送Commit请求,系统B接收到消息后执行任务。如果出现异常,消息中间件会通过超时询问机制保证数据一致性。
最低0.47元/天 解锁文章
685

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



