Spring boot Spring RabbitMQ使用者-多个实例

Spring boot Spring RabbitMQ使用者-多个实例,spring-boot,rabbitmq,Spring Boot,Rabbitmq,我创建了一个Spring引导应用程序,该应用程序创建了一个从RabbitMQ主题交换中使用的队列。现在,我希望能够运行此应用程序的多个实例,以实现高可用性和负载平衡。但是,我注意到,当我在队列上发布消息时,两个应用程序都在处理该消息。是否有办法配置队列/应用程序,使消息仅由一个相同的应用程序使用 请在下面找到我的配置: @Bean public TopicExchange dLQExchange() { return ExchangeBuilder.topicExchange("q

我创建了一个Spring引导应用程序,该应用程序创建了一个从RabbitMQ主题交换中使用的队列。现在,我希望能够运行此应用程序的多个实例,以实现高可用性和负载平衡。但是,我注意到,当我在队列上发布消息时,两个应用程序都在处理该消息。是否有办法配置队列/应用程序,使消息仅由一个相同的应用程序使用

请在下面找到我的配置:

 @Bean
  public TopicExchange dLQExchange() {
    return ExchangeBuilder.topicExchange("queue.dlq").build();
  }

  @Bean
  Queue dlq() {
    return QueueBuilder.durable("queue.dlq").build();
  }

  @Bean
  Queue queue() {
    return QueueBuilder.durable("queue")
            .deadLetterExchange("queue.dlq")
            .build();
  }

  @Bean
  public Binding dlqBinding(TopicExchange dLQExchange, Queue dlq) {
    return BindingBuilder.bind(dlq).to(dLQExchange).with("#");
  }

  @Bean
  public TopicExchange producerExchange() {
    return ExchangeBuilder.topicExchange("producer.exchange").build();
  }

  @Bean
  public Binding producer(
          TopicExchange producerExchange, Queue queue) {
    return BindingBuilder.bind(queue)
            .to(producerExchange)
            .with("queue.updated");
  }

  @Bean
  public RabbitTemplate rabbitTemplate(ConnectionFactory connectionFactory) {
    RabbitTemplate rabbitTemplate = new RabbitTemplate(connectionFactory);
    rabbitTemplate.setMessageConverter(producerJackson2MessageConverter());
    return rabbitTemplate;
  }

  @Bean
  public Jackson2JsonMessageConverter producerJackson2MessageConverter() {
    return new Jackson2JsonMessageConverter();
  }

这听起来有点奇怪或出乎意料。一旦某个进程使用JMS队列上的消息,它就应该被删除,其他任何人都无法读取。我刚刚意识到生产者正在发送两条理想的消息。我花了一整天的时间来讨论这件事,我显然在发帖后立即意识到了这一点,典型的:/