使用 Spring Boot 和 Spring AMQP 尽早创建 RabbitMQ 连接

Create RabbitMQ connection early-on with Spring Boot and Spring AMQP

我正在使用 Spring Boot 1.3.2 和 Spring AMQP(大部分为默认配置)来实现一组微服务之间的通信,我注意到第一个 "request" 每个微服务启动后需要 "long" 时间,因为这是创建与 RabbitMQ 的连接的时间。

有没有办法强制在早期(在启动阶段)创建连接,而不是在第一个 "request" 时延迟创建?

如果您正在使用消息,则侦听器容器将在启动时建立连接。

如果您只是生成消息,那么您将看到您所描述的行为。

解决它;创建一个实现 SmartLifecycle 的 class; @Autowire 连接工厂;在 start() 方法中,执行 this.connectionFactory.createConnection() 并在上下文中添加一个 @Bean

不需要 "close" 连接(但不会造成伤害),它是一个用于所有频道的连接(默认情况下)。