解决分布式环境下,跨网络、跨服的柔性事务解决方案,多见于充值等场景。
最大努力通知方案要求主要包含以下两个方面:
1)有一定的消息重复通知机制:接收通知方有可能无法接收到通知,一定要具有重复通知的机制。
2)消息校对机制:在重复通知仍然没有通知到对方,可由接收通知方主动查询信息。
与可靠消息最终一致性的区别
1)解决方案思想不同
可靠消息最终一致性:发起通知方需要保证将消息发出去,并且将消息发到接收通知方,消息的可靠性关键由发起通知方来保证。
最大努力通知:发起通知方尽最大的努力将业务处理结果通知为接收通知方,但是可能消息接收不到,此时需要接收通知方主动调用发起通知方的接口查询业务处理结果,通知的可靠性关键在接收通知方。
2)业务场景不同
可靠消息一致性:关注的是交易过程的事务一致,以异步的方式完成交易。
最大努力通知:关注的是交易后的通知事务,即将交易结果可靠的通知出去。
3)结束解决方向不同
可靠消息一致性:要解决消息从发出到接收的一致性,即消息发出并且被接收到。
最大努力通知:无法保证消息从发出到接收的一致性,只提供消息接收的可靠性机制。可靠机制是,最大努力的将消息通知给接收方,当消息无法被接收方接收时,由接收方主动查询消息(业务处理结果)。
解决方案
1、内部系统解决方案
内部系统解决方案2、对外系统解决方案
通过增加通知程序,使用网络请求的方式去通知接受通知方,其中通知程序可以是单独的服务,也可以和发起通知方一个服务。
两种方案的不同点
内部系统解决方案:接收通知方与MQ接口,即接收通知方案监听 MQ,此方案主要应用与内部应用之间的通知。
对外系统解决方案:由通知程序与MQ接口,通知程序监听MQ,收到MQ的消息后由通知程序通过互联网接口协议调用接收通知方。此方案主要应用于外部应用之间的通知,例如支付宝、微信的支付结果通知。
网友评论