异步消息队列,遇到消费者重启的情况,有短暂时间没有消费信息如何处理。

2018-12-19 14:23:22 +08:00
 Banxiaozhuan

在作项目用异步消息队列的时候遇到了两个问题: 第一个:生产上遇到需要修改集群缓存的时候,如何避免错误消费或者消息丢失。 第二个:如果消费者版本更新,在发布的时候队列在这期间容量会增大很多,很容易出事情。

针对以上两种情况,有没有大神可以指点一下。

2088 次点击
所在节点    职场话题
5 条回复
jedrek
2018-12-19 14:35:34 +08:00
可以考虑 Amazon SQS
UIXX
2018-12-19 15:05:24 +08:00
问题不够具体。很难准确地回答。

至少要知道业务类型、消息模型跟消息队列中的消息类型。

针对第一个问题,如果你的业务是 B2C,消息是订单,那你所说的修改集群缓存引起错误就类似于销库存引发的异步问题。那解决方案就可以做得像秒杀系统那样表层响应+批处理+慢反馈。

针对第二个问题,也就是我们所谓的消息积压,更多的是取决于消息的类型(订单之于 B2C 跟状态之于智能硬件,完全是不同的处理方案)。暂时性的资源扩容是必要的,消息超时机制也是必要的,一般都是避开高峰期批处理。不重要的消息甚至可以直接丢弃...
petelin
2018-12-19 15:44:16 +08:00
问题问的, 修改集群缓存, 所以消费者不能看到配置更改导致消费错误或者丢失??? 容易出问题, 出什么问题?

还有异步消息队列用的那个产品也不说一下. 让别人盲菜吗?
limbo0
2018-12-19 15:54:53 +08:00
一般用 kafka 或者 mq 可以解决
sudoz
2018-12-19 16:02:56 +08:00
消费者增加 ACK

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/518973

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX