RabbitMQ:限制特定路由密钥的工作者

时间:2016-09-11 12:43:43

标签: java rabbitmq messaging

我正在使用RabbitMQ java API,我有一个注册了*.apple路由密钥的工作人员。我想确保只有一个工作人员可以使用明确的路由密钥。

例如,给队列3个职位:

  • orange.apple
  • green.apple
  • orange.apple

两名工作人员将立即在orange.applegreen.apple开始工作,并且只有在orange.apple确认后,才会启动新的orange.apple工作人员。

1 个答案:

答案 0 :(得分:0)

除了传递消息的队列之外,您无法根据路由密钥限制任何内容。

在您的情况下,您希望按队列限制工作人员,并且您可以通过将消费者设置为" exclusive"来实现此目的。当它连接到/从队列消耗时。

您可能希望使用消费者预取限制为1,以及" auto ack"也是假的。

通过这种方式,您将在队列中拥有一个消费者,它一次只会处理一条消息,并且在您完成下一个消息之前,您将被要求发送消息。消息。