最大努力通知方案主要也是借助MQ消息系统来进行事务控制,这一点与可靠消息最终一致方案一样。看来MQ中间件确实在一个分布式系统架构中,扮演者重要的角色。最大努力通知方案是比较简单的分布式事务方案,它本质上就是通过定期校对,实现数据一致性。

一、最大努力通知方案的实现

1、业务活动的主动方,在完成业务处理之后,向业务活动的被动方发送消息,允许消息丢失。
2、主动方可以设置时间阶梯型通知规则,在通知失败后按规则重复通知,直到通知N次后不再通知。
3、主动方提供校对查询接口给被动方按需校对查询,用于恢复丢失的业务消息。
4、业务活动的被动方如果正常接收了数据,就正常返回响应,并结束事务。
5、如果被动方没有正常接收,根据定时策略,向业务活动主动方查询,恢复丢失的业务消息。

二、最大努力通知方案的特点

1、用到的服务模式:可查询操作、幂等操作。
2、被动方的处理结果不影响主动方的处理结果;
3、适用于对业务最终一致性的时间敏感度低的系统;
4、适合跨企业的系统间的操作,或者企业内部比较独立的系统间的操作,比如银行通知、商户通知等;

三、最大努力通知方案的设计

相比于可靠消息最终一致方案,最大努力通知方案设计上比较简单,主要是由两部分构成。

1、实时消息服务(MQ):接收主动方发送的MQ消息。
2、通知服务子系统:监听MQ消息,当收到消息后,向被动方发送通知(一般是URL方式),同时生成通知记录。如果没有接收到被动方的返回消息,就根据通知记录进行重复通知。

最大努力通知方案实现方式比较简单,本质上就是通过定期校对,适用于数据一致性时间要求不太高的场合,其实不把它看作是分布式事务方案,只认为是一种跨平台的数据处理方案也是可以的。

标签: none

添加新评论