改变RabbitMQ的消费者权重

问题描述 投票:0回答:1

据我所知,在 rabbitmq 文档中,被查询的消息是以一种 循环往复 时尚的连接消费者。然而,我希望我的一个消费者只接受,比方说1%的信息,以备不时之需。试点 的目的。

有可能实现吗?任何想法都会有帮助。

谅谅

java rabbitmq load-balancing
1个回答
0
投票

我想你要找的是 消费者优先.

RabbitMQ会比低优先级消费者更频繁地发送消息给高优先级消费者。只有当高优先级消费者被阻止时,才会将消息发送给低优先级消费者。当一个消费者达到最大的未确认消息数量时,它就会被阻止。这可以通过玩 basic.qos 为消费者。

消费者的优先级可以通过以下方式设置。

设置... x-priority 中的论点 basic.consume 方法的一个整数值。未指定值的消费者的优先级为0,数字越大表示优先级越高,正数和负数都可以使用。

因此,您可以为您的测试消费者和其他消费者定义优先级.这里是RabbitMQ文档提供的示例。

Channel channel = ...;
Consumer consumer = ...;
Map<String, Object> args = new HashMap<String, Object>();
args.put("x-priority", 10);
channel.basicConsume("my-queue", false, args, consumer);

如果您想严格控制消息在客户端的分发,您可能需要编写一个自定义插件来修改以下行为 消费者.

© www.soinside.com 2019 - 2024. All rights reserved.