社区
Linux/Unix社区
帖子详情
RabbitMQ怎样能实现多个队列由一个消费者来接收消息?
笑天居士
2014-03-12 07:57:53
RabbitMQ怎样能实现多个队列由一个消费者来接收消息?
多个队列M,由N个消费者来处理,M>N,这种情况也就是怎样实现多个队列由一个消费者来接收消息
consume这是阻塞读,同一时刻只能阻塞读一个队列的消息,轮旬也不是办法啊
就象Gearman任务分发一样
...全文
4071
3
打赏
收藏
RabbitMQ怎样能实现多个队列由一个消费者来接收消息?
RabbitMQ怎样能实现多个队列由一个消费者来接收消息? 多个队列M,由N个消费者来处理,M>N,这种情况也就是怎样实现多个队列由一个消费者来接收消息 consume这是阻塞读,同一时刻只能阻塞读一个队列的消息,轮旬也不是办法啊 就象Gearman任务分发一样
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
笑天居士
2014-05-08
打赏
举报
回复
引用 2 楼 buyejiangshan 的回复:
能说下具体实现方法吗?多线程不是不好管理吗
这个我也请教过别人 1、笨拙点方法,就是轮循,consume的阻塞监听可以设置timeout,通过设置一个较小的timeout,可以轮流监听几个channel,变相实现监听多个queue,对性能要求不是很高,可以使用这种方法 2、还有个办法就是先取出一个队列的消息数,然后循环的都读出后,转去读另一个队列,所有队列如果都没有消息了,就这样循环等待着 3、还有一个专业人士的回答,但是我还没有完全理解: 消费者(consumer)这是个业务层的概念,而消费或者说订阅(也就是 consume)是 AMQP 协议层的东西,所以,你问一个消费者能否订阅多个queue,答案是当然可以。方案也就一种,按照协议的流程分别向不同的 queue 进行 consume。至于是使用多线程方式来处理,还是使用事件驱动的方式(单线程)来处理这就取决于实现了。 如果对多线程控制能力不是很强,建议不要用这种方式,太专业了 4、这个问题后来我仔细想过,也许可以在应用层进行一下重新设计,可以用线程池作为多个consumer只读取出消息,不进行处理,然后publish进另一个队列,然后用由一个consumer来处理消息 希望对你有所帮助
cnhuangxf
2014-05-06
打赏
举报
回复
能说下具体实现方法吗?多线程不是不好管理吗
笑天居士
2014-03-15
打赏
举报
回复
请教了下别人,这种情况只能是利用Topic方式进组合并分发了 要么就建立最详细的多个队列比如1000个,然手consumer利用线程池多线程的监听所有队列
rabbitmq
入门到php实战
消息
队列
消息
队列
rabbitmq
各种模式使用死信
队列
延迟
队列
tp6实战
消息
队列
学会使用
消息
队列
解决,应用解耦,高并发场景,异步
消息
队列
。
如何在
rabbitmq
中
实现
一个
生产者,
多个
消费者
,
多个
消费者
都能收到同一条
消息
如何在
rabbitmq
中
实现
一个
生产者,
多个
消费者
,
多个
消费者
都能收到同一条
消息
场景:用户登录,邀请其它用户进行视频会议,收到邀请的用户进入会议
rabbitmq
实现
思路: 选型:发布订阅模式(Publish/Subscribe)
一个
生产者,
多个
消费者
,每
一个
消费者
都有自己的
一个
队列
,生产者没有将
消息
直接发送到
队列
,而是发送到了交换机,每个
队列
绑定交换机,生产者发送的
消息
经过交换机,到达
队列
,
实现
一个
消息
被
多个
消费者
获取的目的。 这种情况下,我们有四种交换机可供选择,分别是: Direct
Rabbitmq
direct 模式:保证
一个
队列
只对应
一个
消费者
处理方案
总结: 1.
rabbitMQ
生产者生产的
消息
是有序进入任务
队列
的;但
多个
消费者
的情况下无论是否ack,都是无序的,不考虑任务时长; 2.
rabbitMQ
分发
消息
的时候采用round-robin模式,依次分配,并非
一个
一个
分配; 3.
rabbitMQ
为防止重复消费,必须
实现
幂等型,即每个
消费者
必须能够查询到任务的执行状态 4.
rabbitMQ
要想顺序消费,必须
一个
任务
队列
只有
一个
消费者
,必要...
RabbitMQ
中有大批量的
消息
,此时
多个
消费者
同时访问
消息
队列
是怎样取里面的
消息
的?
文章目录
RabbitMQ
中有大批量的
消息
,此时
多个
消费者
同时访问
消息
队列
是怎样取里面的
消息
的?首先写
一个
消费者
模拟出
多个
消费者
线程模拟生产者向
RabbitMQ
消息
队列
里生产大量的
消息
测试
RabbitMQ
中有大批量的
消息
,此时
多个
消费者
同时访问
消息
队列
是怎样取里面的
消息
的? 首先写
一个
消费者
如下图: 模拟出
多个
消费者
线程 因为我们要一次性的模拟
多个
消费者
线程,所以我们要把Worker01
消费者
打开
一个
配置,打开
一个
允许
多个
线程同时运行的配置,如下图: 启动
多个
消费者
线程如下图: 现在已经模拟出来了
RabbitMq
实现
多
队列
消息
生产
RabbitMq
实现
多
队列
消息
生产 1、业务
消息
传递,mq创建对列在config中配置交换机、
队列
、路由键等,组装成
一个
完整的
消息
生成者。单独的
一个
消息
传递的
队列
。 2、如何在
多个
业务场景下通过mq的配置建立
多个
队列
和
多个
与
队列
匹配的路由键。实习由配置文件进行
多个
队列
的建立 package com.sgcc.base.service.config; import com.
rabbitmq
.client.*; import org.springframework.amqp.core.*; import o
Linux/Unix社区
18,777
社区成员
11,465
社区内容
发帖
与我相关
我的任务
Linux/Unix社区
Linux/Unix社区 专题技术讨论区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 专题技术讨论区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章