最佳实践:如何基于MNS实现事务消息

  1. 云栖社区>
  2. 阿里云存储服务>
  3. 博客>
  4. 正文

最佳实践:如何基于MNS实现事务消息

消息小二 2016-05-27 14:29:32 浏览7031
展开阅读全文

事务消息的背景

有时候我们需要实现本地操作和消息发送的事务一致性功能。即:消息发送成功,则本地操作成功;反之,如果消息发送失败,本地操作失败(成功也需要rollback)。保证不出现操作成功但消息发送失败;或者操作失败但消息发送成功的情况;

另外,消费端,我们也希望消息一定被成功处理一次,不会因为消息端程序崩溃而导致消息没有成功处理,进而需要人工重置消费进度。

 

解决方案

利用消息服务MNS的延迟消息来实现。

准备工作

创建两个队列:

1.事务消息队列

消息的有效期小于消息延迟时间。即如果生产者不主动修改(提交)消息可见时间,消息对消费者不可见;

2.操作日志队列

记录事务消息的操作记录信息。消息延迟时间为事务操作超时时间。日志队列中的消息确认(删除)后将对消费者不可见。

 

具体步骤

1.发送一条事务准备消息到事务消息队列;

2.写操作日志信息到操

网友评论

登录后评论
0/500
评论
消息小二
+ 关注
所属团队号: 阿里云存储服务