开发者社区> 问答> 正文

分布式事务

分布式事务

本问题来自阿里云开发者社区的【11大垂直技术领域开发者社群】。 点击链接欢迎加入感兴趣的技术领域群。

展开
收起
游客pklijor6gytpx 2019-11-05 16:39:41 1857 0
3 条回答
写回答
取消 提交回答
  • 在分布式事务操作的一方完成写业务数据的操作之后向本地消息表发送一个消息,本地事务能保证这个消息一定会被写入本地消息表中。

    2020-04-16 22:56:07
    赞同 展开评论 打赏
  • 技术架构师 阿里云开发者社区技术专家博主 CSDN签约专栏技术博主 掘金签约技术博主 云安全联盟专家 众多开源代码库Commiter

    首先需要理解分布式是什么,然后理解事务是什么,最后理解队列中分布式事务的处理实现。 分布式,概念存在于多个系统,区别于单体应用,采用分布式,分开部署应用,减小耦合程度,降低开发难度 事务,用来保持执行一致性,包括数据库的写入、查询等 在队列中,对分布式事务的处理,存在于多个消费者,消费同一条消息,如何保证,执行结果不会出现理论偏差。这就要求,当消费者消费消息时,要对处理做一定的实现。比如说,要改变数据库一个字段的值,那么当一个消费时消费消息,操作该值,时,要上一个悲观锁,操作完毕之后,发送消息给生产者,生产者及时改变状态。消费者再消费同一个消息,需要先查询一下,是否有人再消费,没有消费,有人的话,自动等待结果

    2019-11-07 11:22:24
    赞同 展开评论 打赏
  • 分布式事务涉及到两阶段提交。分为预提交阶段和commit阶段。在commit阶段需要回去改消息的状态。RocketMq在这里没有使用KV存储来做。而是在commit阶段会拿到消息的offset,然后直接去找消息,修改其状态。这样的好处是设计更简单,速度更快。缺点是会产生过多的数据脏页。

    2019-11-05 16:40:03
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
GTS-分布式事务全新解决方案 立即下载
基于HLC的分布式事务实现深度剖析 立即下载
低代码开发师(初级)实战教程 立即下载