RocketMQ及分布式消息系统的原理以及重要问题解读

来源:互联网 发布:编程更改组策略 编辑:程序博客网 时间:2024/06/15 05:31

看到一篇好文章,记录一下:http://www.jianshu.com/p/453c6e7ff81c


本文把消息事务(分布式消息一般要考虑 消息顺序和消息重复的处理)、分布式事务,说的很透彻,值得一读。

消息事务:第一阶段 先Prepare(拿到消息地址),第二阶段 保证本地事务成功,再发送消息,第三阶段 根据Prepare消息地址,修改消息状态,最后确认消息已发送。如果确认消息确认失败,“消息集群扫描Prepare消息地址,这时候发现了Prepared消息,它会向消息发送者确认,如果本地事务成功(扣款成功),消息发送失败,是回滚还是继续发送确认消息呢? RocketMQ会根据发送端设置的策略来决定是回滚还是继续发送确认消息。这样就保证了消息发送与本地事务同时成功或同时失败。

如果消息发送成功,但是消费失败,一般不考虑在分布式系统中去实现整个过程的回滚,可以通过提醒、监控协助“人工回滚”

最重要的是:我觉得这篇文章提供了一个思路,如果一个问题一定会出现,那就去让这个问题出现,然后想办法去处理出现之后的结果。

0 0
原创粉丝点击