rabbitmq防止重复消费 RabbitMQ怎样能实现多个队列由一个消费者来接收消息?
RabbitMQ怎样能实现多个队列由一个消费者来接收消息?
1. 笨拙的方法是循环。消耗的阻塞监视可以设置超时。通过设置较小的超时,可以依次监视多个通道,也可以变相监视多个队列。性能要求不是很高,所以可以采用这种方法
2。另一种方法是先取出一个队列中的消息数,然后在循环中读出消息,然后切换到另一个队列如果所有队列中都没有消息,它们将在此循环中等待
3。有专业人士的回答,但我还没有完全理解:
消费者是业务层的概念,消费或订阅是AMQP,因此,如果你问消费者是否可以订阅多个队列,答案当然是。解决方案也是一种,根据协议的进程,分别向不同的队列进行查询。是使用多线程还是事件驱动(单线程)取决于实现。
如果控制多线程的能力不是很强,建议不要使用此方法。太专业了
4。后来,我仔细考虑了这个问题。也许我可以在应用层重新设计它。我可以将线程池用作只读消息的多个使用者,而不处理它们。然后将它们发布到另一个队列中,并使用一个使用者来处理消息
Rabbitmq从未使用过。在ActiveMQ中,我刚刚测试了可以有多个消费者,消息按顺序分发给不同的消费者,比如消息1到消费者a,消息2到消费者B,消息3到消费者a,消息4到消费者B。。其优点是实现了负载均衡。如果消费者B突然挂断,消费者a可以正常接收。
我明白,如果我说的是错的,我希望有上帝来纠正它。非常感谢你。
rabbitMQ点对点,一个队列可以多个消费者吗?
我很高兴回答您的问题
rabbitmq消费者会造成很多干扰。让我解释一下在我的项目中遇到的问题。
在大数据模式下,一次向发送者发送10000条数据,发送者一次向消费者发送消息。然后消费者程序直接处理终端,检查服务日志,发现只有发送失败。
关闭AMQP连接<0.6265.7>(192.168.1.14:42592-> 192.168.1.14:5672):
{写入程序,发送失败,{错误,超时}。
rabbitmq服务器将在短时间内向使用者发送大量消息。然后,如果您没有时间确认,服务器将积压大量未确认的消息,如果消费者不匆忙处理,他将被挂起(这也可能导致程序崩溃)。
配置不匹配也会导致错误的消费者消费信息,因此我们必须在上线前仔细检查配置信息。
消费者将在一段时间后消失。此时,他们需要检查MQ日志。一般情况下,链接已断开,并将记录在MQ日志中。在这种情况下,他们需要重新连接。
MQ用户存在很多问题,需要根据实际项目解决。
rabbitmq防止重复消费 rabbitmq消费者数量 消息队列多个消费者
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。