开发者社区> 问答> 正文

分布式事务解决方案?

分布式事务解决方案?

展开
收起
李博 bluemind 2019-03-08 18:52:39 3258 0
8 条回答
写回答
取消 提交回答
  • 2019-07-17 23:30:28
    赞同 展开评论 打赏
  • 基本思路:
    在发起方发起一个分布式事物,通过拦截器记录下游的参与者信息(比如rpc的泛化接口信息),分2个阶段,一阶段上下游执行正常的业务逻辑,下游一般完成一些流水的落DB。 在发起方本地事物提交时,通过spring事物提交回调,感知到发起方的事物是提交还是回滚,根据发起方拦截器记录的下游参与者信息,来调用下游的PRC的commit或rollback

    2019-07-17 23:30:27
    赞同 展开评论 打赏
  • 2019-07-17 23:30:27
    赞同 展开评论 打赏
  • 阿里高级开发工程师 长期招聘 Java 高级开发工程师/技术专家。欢迎赐简历:chongyue.jxy@alibaba-inc.com

    事务消息+最终一致性

    2019-07-17 23:30:27
    赞同 展开评论 打赏
  • 主要看你关注的是强一致性还是弱一致性,强一致性的话基于两阶段提交或者三阶段提交,,弱一致性的话基于消息

    2019-07-17 23:30:27
    赞同 展开评论 打赏
  • 公众号「服务端思维」

    最终一致性解决方案

    2019-07-17 23:30:27
    赞同 1 展开评论 打赏
  • 阿里的开源分布式数据库fescar可以做

    2019-07-17 23:30:27
    赞同 展开评论 打赏
  • 数据库层面,通常可以利用db本身的一些分布式能力,如果db不具备或者不方便使用,可以选用一些具备分布式能力的datasource类产品,比如阿里云的Druid,利用sring的xa等;
    如果是通信层面的,通常使用redis等中间件做二段式或者三段式提交,这个网上有很多参考。
    但无论是哪样,关键是要看业务上的具体诉求,是能容忍短暂的不一致,需要高吞吐,还是类似金融场景,极强的一致性,可以牺牲吞吐(最好的例子就是比特币交易)

    2019-07-17 23:30:27
    赞同 展开评论 打赏
滑动查看更多
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
基于社区的分布式 风险感知模型 立即下载
如何利用Redisson分布式化传统Web项目 立即下载
FLASH:大规模分布式图计算引擎及应用 立即下载