简介h5>
<代码> MQ> 代码是开发中很平常的中间件,本文讲述的是怎么在一个<代码>春季> 代码引导项目中配置多源的<代码> RabbitMQ> 代码,这里不过多的讲解RabbitMQ <代码> 代码>的相关知识点。如果你也有遇到需要往多个RabbitMQ <代码> 代码>中发送消息的需求,希望本文可以帮助到你。
环境h5>
<李> rabbitmq 3.7.12李>
<李>弹簧引导2.1.6.RELEASE李>
当然软件的版本不是硬性要求,只是我使用的环境而已,唯一的要求是需要启动两个<代码> RabbitMQ> 代码,我这边是在<代码> kubernetes> 代码集群中使用helm <代码> 代码>官方提供的<代码>图表> 代码包快速启动的两个<代码> rabbitmq-ha 代码>高可用<代码> RabbitMQ> 代码集群。
想要了解<代码> kubernetes> 代码或者<代码>执掌> 代码,可以参看以下github仓库:
-
<李> kubernetes: & lt; https://github.com/kubernetes/kubernetes>李>
<李>舵:& lt; https://github.com/helm/helm>李>
<李>图表:& lt; https://github.com/helm/charts>李>
SpringBoot中配置两个RabbitMQ源h5>
在springboot中配置单个RabbitMQ是极其简单的,我们只需要使用springboot为我们自动装配的RabbitMQ相关的配置就可以了。但是需要配置多个源时,第二个及其以上的就需要单独配置了,这里我使用的都是单独配置的。
<编辑>代码:编辑><=坝镅詊ava代码类>/* * * @author innerpeacez * @since 2019/3/11 */@ data 公共抽象类AbstractRabbitConfiguration { 保护字符串主机; 保护int端口; 保护字符串的用户名; 保护字符串密码; 保护ConnectionFactory ConnectionFactory () { CachingConnectionFactory connectionFactory=new CachingConnectionFactory (); connectionFactory.setHost(主机); connectionFactory.setPort(港口); connectionFactory.setUsername(用户名); connectionFactory.setPassword(密码); 返回connectionFactory; } }代码>
<强>第一个源的配置代码强>
<代码类="语言java ">包com.zhw.study.springbootmultirabbitmq.config; 进口org.springframework.amqp.rabbit.config.SimpleRabbitListenerContainerFactory; 进口org.springframework.amqp.rabbit.connection.ConnectionFactory; 进口org.springframework.amqp.rabbit.core.RabbitAdmin; 进口org.springframework.amqp.rabbit.core.RabbitTemplate; 进口org.springframework.beans.factory.annotation.Qualifier; 进口org.springframework.boot.autoconfigure.amqp.SimpleRabbitListenerContainerFactoryConfigurer; 进口org.springframework.boot.context.properties.ConfigurationProperties; 进口org.springframework.context.annotation.Bean; 进口org.springframework.context.annotation.Configuration; 进口org.springframework.context.annotation.Primary;/* * * @author innerpeacez * @since 2019/3/8 */@ configuration @ConfigurationProperties (“spring.rabbitmq.first”) 公开课FirstRabbitConfiguration延伸AbstractRabbitConfiguration { @ bean (name=" firstConnectionFactory ") @Primary 公共ConnectionFactory firstConnectionFactory () { 返回super.connectionFactory (); } @ bean (name=" firstRabbitTemplate ") @Primary 公共RabbitTemplate firstRabbitTemplate (@ qualifier (firstConnectionFactory) ConnectionFactory ConnectionFactory) { 返回新RabbitTemplate (connectionFactory); } @ bean (name=" firstFactory ") 公共SimpleRabbitListenerContainerFactory firstFactory (SimpleRabbitListenerContainerFactoryConfigurer配置, @ qualifier (“firstConnectionFactory”) ConnectionFactory ConnectionFactory) { SimpleRabbitListenerContainerFactory工厂=new SimpleRabbitListenerContainerFactory (); 配置。配置(工厂,connectionFactory); 返回工厂; } @ bean (value=" https://www.yisu.com/zixun/firstRabbitAdmin ") 公共RabbitAdmin firstRabbitAdmin (@ qualifier (firstConnectionFactory) ConnectionFactory ConnectionFactory) { 返回新RabbitAdmin (connectionFactory); } }代码>
<强>第二个源的配置代码强>
<代码类="语言java ">包com.zhw.study.springbootmultirabbitmq.config; 进口org.springframework.amqp.rabbit.config.SimpleRabbitListenerContainerFactory; 进口org.springframework.amqp.rabbit.connection.ConnectionFactory; 进口org.springframework.amqp.rabbit.core.RabbitAdmin; 进口org.springframework.amqp.rabbit.core.RabbitTemplate; 进口org.springframework.beans.factory.annotation.Qualifier; 进口org.springframework.boot.autoconfigure.amqp.SimpleRabbitListenerContainerFactoryConfigurer; 进口org.springframework.boot.context.properties.ConfigurationProperties; 进口org.springframework.context.annotation.Bean; 进口org.springframework.context.annotation.Configuration;/* * * @author innerpeacez * @since 2019/3/8 */@ configuration @ConfigurationProperties (“spring.rabbitmq.second”) 公开课SecondRabbitConfiguration延伸AbstractRabbitConfiguration { @ bean (name=" secondConnectionFactory ") 公共ConnectionFactory secondConnectionFactory () { 返回super.connectionFactory (); } @ bean (name=" secondRabbitTemplate ") 公共RabbitTemplate secondRabbitTemplate (@ qualifier (secondConnectionFactory) ConnectionFactory ConnectionFactory) { 返回新RabbitTemplate (connectionFactory); } @ bean (name=" secondFactory ") 公共SimpleRabbitListenerContainerFactory secondFactory (SimpleRabbitListenerContainerFactoryConfigurer配置, @ qualifier (“secondConnectionFactory”) ConnectionFactory ConnectionFactory) { null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null弹簧引导配置多源的RabbitMQ