

















这是一个创建于 2079 天前的主题,其中的信息可能已经有所发展或是发生改变。
第 1 条附言 · 2020 年 9 月 16 日
已考虑中解决方案:
1.使用 fanout 模式广播,同时每个消费者单独监听一个队列,将需要的队列全部绑定到 fanout 交换机,每个消费者在自己的队列里拿到消息就直接确认消费。fanout 模式可以保证所有消费者都拿到,目前 topic 方案的问题在于,所有消费者都监听一个队列,同时只有一个消费者可以拿到消息,如果拿到就确认后面的消费者就拿不到消息了,如果不确认无法知道所有消费者都拿到消息了,最终销毁消息无法实现。而 fanout 方案可以保证所有人都拿到消息且所有人都可以拿到消息就确认,实现单条消息向所有消费者都推送一次。缺点是每个消费者都需要一个队列。
第 2 条附言 · 2020 年 9 月 16 日
2.改用 redis 的发布订阅,redis 的发布订阅只会向所有订阅者推送一次随后就自动丢弃。可以实现这个场景。但 redis 的发布订阅问题在于消息可靠性不高。无法持久化,这就得考虑业务对消息丢失的容忍度。以我目前这个场景容忍度是符合要求的
2 zzNaLOGICOP @xiaodoudou rabbitmq 好像是没有类似的方法的,topic 类型虽然是可以实现每个消费者都接受到,但没办法做到每个消费者消费一次就销毁 |
3 npe 2020 年 9 月 16 日 via iPhone只知道 Kafka 有 consumer group |
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。