尝试使用Spring从Cloud Foundry上的RabbitMQ队列读取时连接被拒绝

qpgpyjmq  于 2022-11-08  发布在  RabbitMQ
关注(0)|答案(2)|浏览(198)

我正在尝试使用RabbitMQ从一个应用程序发布消息并在另一个应用程序中接收它们。这些应用程序托管在Cloud Foundry上,并且都绑定到RabbitMQ的同一个示例。
我可以从第一个应用程序向队列发送消息,但是在我的第二个应用程序中,它使用@RabbitListener和@RabbitHandler来监听这个队列,我收到了一个Connection Refused错误。
取用者引发了异常,如果连接工厂支持,则可以重新启动处理。异常摘要:org.springframework.amqp.AmqpConnectException:java.net.ConnectException:错误号:111(连接被拒绝),错误:连接被拒绝(本地端口45596到地址127.0.0.1(localhost),远程端口5672到地址127.0.0.1(localhost))
这是完整的日志。
我观察到远程端口仍然是5672,但是本地端口在日志之间不断变化。我不确定这些端口是从哪里获得的,因为我认为Spring应该为我处理这个问题,而且因为我的第一个应用程序也有类似的设置,它似乎工作得很好。
以下是我的配置-

@Bean
        public MessageConverter jsonMessageConverter(){
            return new Jackson2JsonMessageConverter();
        }

        @Bean
        public AmqpAdmin amqpAdmin(ConnectionFactory connectionFactory) {
            return new RabbitAdmin(connectionFactory);
        }

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

        @Bean
        public SimpleMessageListenerContainer messageListenerContainer(ConnectionFactory rabbitConnectionFactory) {
            SimpleMessageListenerContainer container = new SimpleMessageListenerContainer();
            container.setConnectionFactory(rabbitConnectionFactory);
            container.setQueueNames("queue2911");
            container.setAutoStartup(false);
            //container.setMessageListener(exampleListener());
            return container;
        }

任何帮助都将不胜感激。

vuktfyat

vuktfyat1#

操作系统选择本地端口。
您正在尝试连接到localhost这一事实意味着您正在使用具有默认值(localhost:5672)的连接工厂,而不是 Boot 配置的连接工厂。
打开两个应用程序的调试日志记录并比较自动配置报告。

yks3o0rb

yks3o0rb2#

我通过以下方法解决了此问题

<dependency>
  <groupId>io.pivotal.cfenv</groupId>
  <artifactId>java-cfenv-boot</artifactId>
  <version>2.4.0</version>
</dependency>

在我的pom.xml中。我使用的是带有spring-boot-starter-amqp的Sping Boot 2.7.2。

相关问题