rabbitmq 使用问题

2020-09-08 14:08:35 +08:00
 liangxiangdong
rabbitmq 使用了 topic 模式后发现多个消费者是轮询的方式消费的,有大佬知道在不改变 topic 模式下这么让队列分发不同消费者而且不重复消费呢
1429 次点击
所在节点    问与答
10 条回复
QINFENGXULAI
2020-09-08 14:22:06 +08:00
引入缓存机制解决重复消费问题
liangxiangdong
2020-09-08 14:25:06 +08:00
@QINFENGXULAI 有什么办法解决多个消费者同时消费呢,用 topic 模式 我发现 c1 和 c2 进行消费的时候是轮询的 不能同时消费
TtTtTtT
2020-09-08 14:38:55 +08:00
给每个消费者弄一个 Queue 就行了。
miscnote
2020-09-08 14:44:12 +08:00
同时消费你需要 fanout exchange.
miscnote
2020-09-08 14:44:32 +08:00
重复消费问题一般通过 message id 来解决。
QINFENGXULAI
2020-09-08 14:59:19 +08:00
@liangxiangdong RabbitMQ 不支持队列层面的广播消费,可以通过绑定多个队列实现
jtwor
2020-09-08 15:24:54 +08:00
最近也在看 rabbitmq 但不太理解 mq 加入后 客户端到数据访问层是怎样的逻辑 例如以前是直接调接口 现在加入了 mq 是先 客户端->mq 服务端->各种接口->数据库 这样吗? 如果是这样 mq 服务端是不断通过建立 Channel 来区分具体业务?
liangxiangdong
2020-09-10 15:42:02 +08:00
@QINFENGXULAI @TtTtTtT @miscnote 感谢各位的解答
liangxiangdong
2020-09-10 15:50:39 +08:00
@jtwor rabbitmmq 的几种工作模式其实 exchanges 到 queue.包括最简答的 helloworld 模式都是用的 amqp 默认交换到队列的。
我觉得区分应该使用的 exchanges 因为 exchanges 可以绑定队列
liangxiangdong
2020-09-10 15:52:35 +08:00
@jtwor 如果我有说的不对欢迎指正 毕竟我不是开发 只是个运维。生产中看到代码全是指定的 exchanges 通过路由 key 来指定那个业务区消费

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

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

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

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

© 2021 V2EX