<div class="iteye-blog-content-contain" style="font-size: 14px">
在使用消息中间件的时候,我们有必要对消息中间件的一致性问题进行讨论一下,在我们写程序的时候,一般都会遇到如何处理业务逻辑代码和消息发送代码的问题,一般会有如下两种方式
以上两种方式都有一定的问题:
方案1:写业务操作在前,发送消息在后,如果业务成功了,但是写消息失败了,就会导致消息发布出去,从而造成不一致状态
方案2:消息发送成功了,但是发送业务失败了,这种方式就显得更加的不可靠了。
因此要保证一致性问题,以上两种方式都不可靠
因此针对消息发送的一致性问题,我们提出以下几种方案,并对各种方案的优缺点进行讨论
[/code]
</div>
在使用消息中间件的时候,我们有必要对消息中间件的一致性问题进行讨论一下,在我们写程序的时候,一般都会遇到如何处理业务逻辑代码和消息发送代码的问题,一般会有如下两种方式
方案1:
void fool(){
//业务操作
//发送消息
}
方案2:
[code="java"]
void fool(){
//发送消息
//业务操作
}
以上两种方式都有一定的问题:
方案1:写业务操作在前,发送消息在后,如果业务成功了,但是写消息失败了,就会导致消息发布出去,从而造成不一致状态
方案2:消息发送成功了,但是发送业务失败了,这种方式就显得更加的不可靠了。
因此要保证一致性问题,以上两种方式都不可靠
因此针对消息发送的一致性问题,我们提出以下几种方案,并对各种方案的优缺点进行讨论
[/code]
</div>