我正在使用Spring Boot 1.3.2和Spring AMQP(主要是默认配置)来实现一组微服务之间的通信,我注意到每个微服务启动后的第一个“请求”需要“长”时间,因为它是在创建与RabbitMQ的连接时。
有没有办法强制在早期(在启动阶段)创建连接,而不是在第一个“请求”上懒惰地创建?
答案 0 :(得分:2)
如果您正在使用消息,则侦听器容器将在启动时建立连接。
如果您只是制作消息,那么您将看到您描述的行为。
解决它;创建一个实现SmartLifecycle
的类; @Autowire
连接工厂;在start()
方法中,执行this.connectionFactory.createConnection()
并在上下文中添加@Bean
。
没有必要"关闭"连接(但它不会受到伤害),它是一个用于所有通道的单一连接(默认情况下)。