第四章 java客户端 -work模型

本文介绍了如何在Java中使用RabbitMQ实现工作队列,并讨论了轮询模式和性能接收模式的区别。作者指出,RabbitMQ3.8及以上版本默认使用性能接收模式,能更好地平衡不同消费者的能力,提高系统吞吐量。
摘要由CSDN通过智能技术生成

Work queues

java代码如何实现

第一步 应该在rabbitmq控制台上创建队列

第二步 然后创建MqWorkTest 生命这是消费者,并且有2个消费者

第三部 创建发送者SpringAmqpWorkTest类 这是发送者

相当于循环发送50次消息

启动之后是这样的

这样不好看出来我们可以这样

System.err.println("消费者1收到消息:"+mes);

System.out.println("消费这2收到消息:"+mes);

消费者1是err 消费者2用黑色

这种只是好区分没有其他意思

结论

1 :”第一个消费者和第二个消费者总和是队列中消息的总和

相当于第一个消费者消费玩消息后,第二个消费者不能再次消费第一个消费者消费的消息

2 :当我们像队列投递很多消息,并且有很多消费者监听这个队列时,会有一种轮询的机制

     像这种情况是有问题,如果2个消费者的消费能力不一样,还会出来一样的结果吗?

 从 RabbitMQ 3.8 版本开始,广播模式(fanout exchange)默认使用基于性能的接收模式(performant mode)而不是轮询模式(round-robin mode)。

 在轮询模式中,每个消费者会按照顺序接收到消息,即使其中有些消费者的处理能力强于其他消 费者。这可能导致消息在某些消费者上积压,而其他消费者没有得到充分利用。

 而在基于性能的接收模式中,RabbitMQ 会尽量将消息发送给处理能力较强的消费者,以实现更   好  的负载均衡和性能利用。这种模式可以让消息更快地被处理,提高整体系统的吞吐量。

3  

  • 8
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值