[英]Spring Boot RabbitMQ - How to make sure multiple consumers consume messages one at a time
我正在使用Spring Boot + RabbitMQ服务器,对于我的一个队列,我希望多个使用者连续使用消息,即
Expexted Behaviour consumer1: message1 xxxxxxxx message3 xxxxxxxx consumer2: xxxxxxxx message2 xxxxxxxx message4
现在,我正在使用以下方法来实现排他性:
@RabbitListener(queues = Constants.QUEUE_TOPIC, exclusive = true)
但这一次只允许一个活跃的使用者,因此我的功能没有中断,但可伸缩性却没有。
请提出正确的方法。 谢谢!
请按照下列步骤,它可能会帮助您:(pseudocode)
Sender.java:-
集体寄件者{
void main(String [] argv){
建立连接。
声明队列。
=> channel.queueDeclare(QUEUE_NAME,true,false,false,null);
在同一队列中发布多个消息:
=>整数计数; //用户输入的扫描仪无消息
=>在while循环的channel.basicPublish()中使用i ++发布[“ message” + i]以获得计数时间
关闭通道连接。
}
}
MessageConsumer.java:-
MessageConsumer类{
void main(String [] argv){
建立连接。
声明队列。
=> channel.queueDeclare(QUEUE_NAME,true,false,false,null);
使用channel.basicQos(1); //消费者预取。
使用最终消费者消费者=新的Defaultconsumer()来消费消息
{public void handleDelivery {...}};
channel.basicConsume(QUEUE_NAME,真实,消费者);)
}
}
运行2个或更多MessagerConsumer.java实例以检查消息的串行使用
然后使用相应的用户输入运行Sender.java。
看看您是否以此得到了预期的结果。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.