美文网首页
java spring cloud 版 b2b2c 社交电商-分

java spring cloud 版 b2b2c 社交电商-分

作者: IT达人Q | 来源:发表于2019-07-09 09:26 被阅读0次

    电子商务平台源码请加企鹅求求:三伍三六二四柒二五玖。 分布式事务是面向服务,微服务架构不可避免的问题,而且为了性能考虑,一般不使用刚性事务,而使用柔性事务。柔性事务中又有可靠消息最终一致性,TCC,最大努力通知三种解决方案。这里来说一说可靠消息最终一致性。

    可靠消息最终一致性的实现难点在于如何做到可靠,那么对于任何一个可能导致失败的点都需要做相应的处理,而这些点总结起来其实只需要两个定时任务即可。在这里总结了一张图

    在这里插入图片描述

    字母表示失败的类型,比如A类型的失败情况为主动方业务未执行,或执行失败,存储状态为待发送状态。

    具体说明:

    1、业务执行前增加一个确认阶段

    2、所有的失败归为三类(A,B,C)

    3、A,B类的失败需要一个定时器处理,C类的失败需要一个定时器的处理

    其他的一些细节:

    1、我们必须要规定最大的重发次数,如果超过该次数,则需要标记为死消息。

    2、对于死消息将不被定时任务处理,需要人工进行重发或处理。

    3、对于重发的时间需要做一定的策略,一般重发次数越大,时间间隔越久。

    最后我们来总结一下我们需要实现的内容

    1、主动方需要提供业务是否执行成功的查询接口

    2、被动方需要提供业务是否执行成功的查询接口

    3、消息服务子系统

    需要提供独立的数据库记录消息信息,修改消息信息状态,通过中间件发送消息

    4、消息服务恢复子系统

    主要通过定时任务处理A,B,C类失败信息

    5、统一消息消费子系统

    消息队列的消费者,统一执行各个业务的被动方任务

    到此,基于可靠消息最终一致性的分布式事务解决方案已经总结完了。

    相关文章

      网友评论

          本文标题:java spring cloud 版 b2b2c 社交电商-分

          本文链接:https://www.haomeiwen.com/subject/zustkctx.html