分布式事务五_基于可靠消息的最终一致性_异常流程

分布式事务五_基于可靠消息的最终一致性_异常流程

更多干货

一、消息发送一致性流程中的异常点

分布式事务五_基于可靠消息的最终一致性_异常流程

任何一个环节都可能会出问题!

二、消息发送一致性的异常情况分析

分布式事务五_基于可靠消息的最终一致性_异常流程

1.从主动方应用的角度来分析:

异常情况 可能的状态 一致性
预发送消息失败 消息未进存储,业务操作未执行(可能的原因:主动方应用、网络、消息中间件、消息存储) 一致                         
预发送消息后,主动方应用没有收到返回消息存储结果 (1)消息未进存储,业务操作未执行 一致
同上 (2)消息已进存储(待确认),业务操作未执行 不一致
收到消息存储成功的返回结果,但未执行业务操作就失败 消息已进存储(待确认),业务操作未执行 不一致


2.消息发送一致性的异常情况分析

分布式事务五_基于可靠消息的最终一致性_异常流程

异常情况 可能的状态 一致性     
消息中间件没有收到主动方应用的业务操作处理结果 (1)消息已进存储(待确认),业务操作未执行(或业务操作出错回滚了)

不一致              

同上 (2)消息已进存储(待确认),业务操作成功 不一致
消息中间件收到业务操作结果(成功/失败),但处理消息存储中的消息状态失败 (1)消息已进存储(待确认),业务操作未执行(或业务操作出错回滚了) 不一致                           
同上 (2)消息已进存储(待确认),业务操作成功 不一致


3.消息发送一致性的异常情况总结

异常情况 一致性 异常处理方法
消息未进存储,业务操作未执行 一致                         
消息已进存储(状态待确认),业务操作未执行 不一致 确认业务操作结果,处理消息(删除消息)
消息已进存储(状态待确认),业务操作成功 不一致 确认业务操作结果,处理消息(更新消息状态,执行消息投递)


4.消息发送一致性的异常处理

分布式事务五_基于可靠消息的最终一致性_异常流程