弹簧引导配置多源的RabbitMQ

  
简介h5> <代码> MQ> 春季> RabbitMQ> 的相关知识点。如果你也有遇到需要往多个RabbitMQ <代码> 中发送消息的需求,希望本文可以帮助到你。

  
环境h5>   <李> rabbitmq 3.7.12李   <李>弹簧引导2.1.6.RELEASE李      

当然软件的版本不是硬性要求,只是我使用的环境而已,唯一的要求是需要启动两个<代码> RabbitMQ> kubernetes> 官方提供的<代码>图表> rabbitmq-ha 高可用<代码> RabbitMQ>   

春天引导配置多源的RabbitMQ

  

想要了解<代码> kubernetes> 执掌>   

      <李> 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