社区
Linux/Unix社区
帖子详情
RabbitMQ怎样能实现多个队列由一个消费者来接收消息?
笑天居士
2014-03-12 07:57:53
RabbitMQ怎样能实现多个队列由一个消费者来接收消息?
多个队列M,由N个消费者来处理,M>N,这种情况也就是怎样实现多个队列由一个消费者来接收消息
consume这是阻塞读,同一时刻只能阻塞读一个队列的消息,轮旬也不是办法啊
就象Gearman任务分发一样
...全文
4247
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
学习第二节--WorkQueue工作
队列
每个
消费者
都会收到不同的
消息
文章目录1.WorkQueue工作
队列
2.案例说明2.1 模拟
一个
生产者,
一个
消费者
2.1.1 生产者--订单系统2.1.2
消费者
--短信
接收
者2.1.3 短信
消息
实体2.1.4 运行结果2.2 模拟
一个
生产者,
多个
消费者
2.1.1 生产者--订单系统2.1.2
消费者
1--模拟部署在第一台服务器2.1.3
消费者
2--模拟部署在第二台服务器2.1.4
消费者
3--模拟部署在第三台服务器2.1.5 ...
php ampq 检查
多个
队列
,
RabbitMQ
/ AMQP:单个
队列
,
多个
消费者
相同的
消息
?
我可以让每个
消费者
收到相同的
消息
吗? 也就是说,两个
消费者
都得到
消息
1,2,3,4,5,6? 在AMQP /
RabbitMQ
中,这个叫什么? 它是如何configuration的?不,如果
消费者
在同一
队列
中,则不行。 来自
RabbitMQ
的AMQP概念指南:重要的是要明白,在AMQP 0-9-1中,
消息
之间的
消息
负载均衡。这似乎意味着
队列
中的循环行为是给定的 ,而不是可configurat...
rabbitmq
集群保证顺序消费_
RabbitMQ
的
一个
队列
多个
消费者
消费,如何保证
消息
不重复消费...
刚在stackoverflow找到答案了“you can't, the way you have things set up.
RabbitMQ
will round-robin the messages to the consumers, but only one consumer will receive the message from the queue. This is by desig...
springboot整合
rabbitMQ
系列(二)
一个
队列
里面的信息,让
多个
消费者
进行消费
之前讲解了第
一个
模型,直接
队列
模型,现在开始讲解工作模型 也就是有
多个
消费者
要消费
队列
里面的信息,还是没有涉及到交换机。 之前已经讲过,这个模型是
rabbitmq
默认使用轮询的方式将
队列
里面的信息发给
多个
消费者
。 那么在springboot项目里面如何使用第二个模型呢? 发送者 这个和第
一个
模型是一样的,发送者还是往
队列
里面发送
消息
。 往work
队列
里面发送
消息
消费者
既然有了发送者,现在开始写
消费者
@Component public class WorkCustomer { @Rabbi
RabbitMQ
——
消息
发布订阅
消息
订阅发布
一个
生产者,
多个
消费者
每个
消费者
都有自己的
队列
生产者,没有直接把
消息
发送到
队列
,而是先发送到交换机 每个
队列
都要绑定到交换机 生产者发送的
消息
经过交换机,到达
队列
,就能
实现
一个
消息
被
多个
消费者
消费 话不多说,直接撸代码: 老套路,首先还是生产者: public class Send { private static final String EXCHANGE_...
Linux/Unix社区
18,828
社区成员
11,489
社区内容
发帖
与我相关
我的任务
Linux/Unix社区
Linux/Unix社区 专题技术讨论区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 专题技术讨论区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章