最大努力通知
-
最大努力通知也被称为定期校对,其实是对第二种解决方案的进一步优化。它引入了本地消息表来记录错误消息,然后加入失败消息的定期校对功能,来进一步保证消息会被下游系统消费。
image
第一步:消息由系统A投递到中间件
- 1.处理业务的同一事务中,向本地消息表中写入一条记录
- 2.准备专门的消息发送者不断地发送本地消息表中的消息到消息中间件,如果发送失败则重试
第二步:消息由中间件投递到系统B
- 1.消息中间件收到消息后负责将该消息同步投递给相应的下游系统,并触发下游系统的任务执行
- 2.当下游系统处理成功后,向消息中间件反馈确认应答,消息中间件便可以将该条消息删除,从而该事务完成
- 3.对于投递失败的消息,利用重试机制进行重试,对于重试失败的,写入错误消息表
- 4.消息中间件需要提供失败消息的查询接口,下游系统会定期查询失败消息,并将其消费
优点:
- 一种非常经典的实现,实现了最终一致性。
缺点:
- 消息表会耦合到业务系统中,如果没有封装好的解决方案,会很多杂话需要处理。







网友评论