如何使用 spring-rabbit 配置 RabbitMQ 连接?

Posted

技术标签:

【中文标题】如何使用 spring-rabbit 配置 RabbitMQ 连接?【英文标题】:How to configure RabbitMQ connection with spring-rabbit? 【发布时间】:2017-07-01 05:13:45 【问题描述】:

我正在关注 this guide 以了解如何将 spring-rabbit 与 RabbitMQ 一起使用。但是在本指南中,RabbitMQ 配置是默认的(本地主机服务器和凭据作为访客/访客)。如果我想使用 ip 地址和凭据连接到远程 RabbitMQ,我该怎么办?我不知道在我的应用程序中的何处设置这些信息。

【问题讨论】:

【参考方案1】:

该指南的应用程序是 Spring Boot 应用程序。

将文件application.properties 添加到src/main/resources

然后您可以根据Spring Boot Documentation 配置rabbitmq 属性 - 向下滚动到rabbitmq 属性...

...
spring.rabbitmq.host=localhost # RabbitMQ host.
...
spring.rabbitmq.password= # Login to authenticate against the broker.
spring.rabbitmq.port=5672 # RabbitMQ port.
...
spring.rabbitmq.username= # Login user to authenticate to the broker.
...

要连接到集群,请使用

spring.rabbitmq.addresses= # Comma-separated list of addresses to which the client should connect.

例如server1:5672,server2:5672.

如果您不想使用引导自动配置,请自行声明 CachingConnectionFactory @Bean 并根据需要进行配置。

【讨论】:

这很奇怪,我按照你的建议将这些属性添加到application.properties 中。但是,这些属性似乎尚未加载到正在运行的应用程序中。我错过了什么? 我刚刚下载了指南,将application.properties 添加到src/main/resources 以获取complete 版本并将其指向远程rabbitmq 实例,它工作得很好——我看到在rabbit 上创建了队列实例和输出消息。您如何运行指南? 我的错,对不起,你的解决方案就像一个魅力。它在这里不起作用,因为我在我的配置类中添加了@Bean MessageListenerAdapter listenerAdapter(Receiver receiver) return new MessageListenerAdapter(receiver, "receiveMessage"); 您如何以编程方式实现这一目标? 不清楚你的意思;见the documentation 和samples。最好提出一个全新的问题,而不是在对旧问题的评论中提出新问题。

以上是关于如何使用 spring-rabbit 配置 RabbitMQ 连接?的主要内容,如果未能解决你的问题,请参考以下文章

每日打卡5

如何在一台机器上配置多个RabbitMQ

RabbitMQ与Spring集成配置

5G核心网技术基础自学系列 | MR-DC:签约QoS流E-RAB和MR-DC承载

Spring Boot 整合 RabbitMQ

私有云Rabbitmq 集群部署