在作项目用异步消息队列的时候遇到了两个问题: 第一个:生产上遇到需要修改集群缓存的时候,如何避免错误消费或者消息丢失。 第二个:如果消费者版本更新,在发布的时候队列在这期间容量会增大很多,很容易出事情。
针对以上两种情况,有没有大神可以指点一下。
1
jedrek 2018-12-19 14:35:34 +08:00
可以考虑 Amazon SQS
|
2
UIXX 2018-12-19 15:05:24 +08:00 2
问题不够具体。很难准确地回答。
至少要知道业务类型、消息模型跟消息队列中的消息类型。 针对第一个问题,如果你的业务是 B2C,消息是订单,那你所说的修改集群缓存引起错误就类似于销库存引发的异步问题。那解决方案就可以做得像秒杀系统那样表层响应+批处理+慢反馈。 针对第二个问题,也就是我们所谓的消息积压,更多的是取决于消息的类型(订单之于 B2C 跟状态之于智能硬件,完全是不同的处理方案)。暂时性的资源扩容是必要的,消息超时机制也是必要的,一般都是避开高峰期批处理。不重要的消息甚至可以直接丢弃... |
3
petelin 2018-12-19 15:44:16 +08:00
问题问的, 修改集群缓存, 所以消费者不能看到配置更改导致消费错误或者丢失??? 容易出问题, 出什么问题?
还有异步消息队列用的那个产品也不说一下. 让别人盲菜吗? |
4
limbo0 2018-12-19 15:54:53 +08:00 via Android
一般用 kafka 或者 mq 可以解决
|
5
sudoz 2018-12-19 16:02:56 +08:00
消费者增加 ACK
|