Rabbitmq 只允许一个并发消费者

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

是否有一个备用消费者,仅在主要消费者出现故障时才使用?

如果我有同一应用程序的两个实例,并且该应用程序具有侦听“queue1”的侦听器,那么当前的行为是,如果一个消费者忙碌,则另一个消费者获取数据并读取它。但我不想那样。

我只需要consumer1可以读取队列,consumer2处于空闲状态,直到consumer1宕机。

我也尝试过exclusive,但它不能满足我的要求。

有人可以帮我解决这个问题吗?

java rabbitmq spring-framework-beans
1个回答
0
投票

这不是 RabbitMQ 或 Spring 框架的功能。您必须自己在消费者中实施故障转移。一种选择是“主”消费者将心跳消息发布到故障转移消费者可以读取的众所周知的队列。如果故障转移消费者在一定时间段内没有从该队列接收到一定数量的心跳消息,它可以进行额外的检查以查看主消费者是否还活着,如果不存在,则接管该角色。

这只是一个建议 - 有很多方法可以实现这一点。

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