<强>闲话强>
好久没有写博客了,6月份毕业,因为工作原因,公司上网受限,一直没能把学到的知识点写下来,工作了半年,其实学到的东西也不少,但是现在回忆起来的东西少之又少,有时甚至能在同个问题中踩了几次,越来越觉得及时记录一下学到的东西很重要。
好了,闲话少说,写下这段时间学习的东西,先记录一下用弹簧引导配置多个RabbitMQ的情况…
最近公司新启动一个新平台的项目,需要用微服务这个这几年很火的概念来做,所以就学习了弹簧引导方面的知识,给同事展示弹簧引导的一些小事例的时候,同事提出了可不可以配置多个RabbitMQ ?下面就是在春天引导配置多个RabbitMQ的例子。是自己摸索搭建的,也不知道对不对,有其他好的实现方法的网友可以互相交流一下。
<强>项目代码构造强>
关注点在红框的代码…
<强>代码强>
下面就把项目的代码展示下来
application.properties
配置文件
spring.application.name=rabbitmq-hello # RabbitMQ spring.rabbitmq.first.host=node9 spring.rabbitmq.first.port=5670 spring.rabbitmq.first.username=客人 spring.rabbitmq.first.password=客人 spring.rabbitmq.second.host=localhost spring.rabbitmq.second.port=5672 spring.rabbitmq.second.username=客人 spring.rabbitmq.second.password=客人 # MySQL spring.datasource。url=jdbc: mysql://localhost: 3306/cloudtest spring.datasource。用户名=根 spring.datasource。密码=根 spring.datasource。driverClassName=com.mysql.jdbc.Driver >之前HelloApplication.java
程序入口
包com.paas.springboot.demo01; 进口org.springframework.boot.SpringApplication; 进口org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication 公开课HelloApplication { 公共静态void main (String [] args) { SpringApplication.run (HelloApplication.class, args); } } >之前RabbitConfig.java
RabbitMQ配置类
包com.paas.springboot.demo01; 进口org.springframework.amqp.core.Queue; 进口org.springframework.amqp.rabbit.config.SimpleRabbitListenerContainerFactory; 进口org.springframework.amqp.rabbit.connection.CachingConnectionFactory; 进口org.springframework.amqp.rabbit.connection.ConnectionFactory; 进口org.springframework.amqp.rabbit.core.RabbitTemplate; 进口org.springframework.beans.factory.annotation.Qualifier; 进口org.springframework.beans.factory.annotation.Value; 进口org.springframework.boot.autoconfigure.amqp.SimpleRabbitListenerContainerFactoryConfigurer; 进口org.springframework.context.annotation.Bean; 进口org.springframework.context.annotation.Configuration; 进口org.springframework.context.annotation.Primary; @ configuration 公开课RabbitConfig { @ bean (name=" firstConnectionFactory ") @Primary 公共ConnectionFactory firstConnectionFactory ( @ value (" $ {spring.rabbitmq.first.host} ")字符串主机, @ value (" $ {spring.rabbitmq.first.port} ") int港口, @ value (" $ {spring.rabbitmq.first.username} ")字符串的用户名, @ value (" $ {spring.rabbitmq.first.password} ")字符串密码 ){ CachingConnectionFactory connectionFactory=new CachingConnectionFactory (); connectionFactory.setHost(主机); connectionFactory.setPort(港口); connectionFactory.setUsername(用户名); connectionFactory.setPassword(密码); 返回connectionFactory; } @ bean (name=" secondConnectionFactory ") 公共ConnectionFactory secondConnectionFactory ( @ value (" $ {spring.rabbitmq.second.host} ")字符串主机, @ value (" $ {spring.rabbitmq.second.port} ") int港口, @ value (" $ {spring.rabbitmq.second.username} ")字符串的用户名, @ value (" $ {spring.rabbitmq.second.password} ")字符串密码 ){ CachingConnectionFactory connectionFactory=new CachingConnectionFactory (); connectionFactory.setHost(主机); connectionFactory.setPort(港口); connectionFactory.setUsername(用户名); connectionFactory.setPassword(密码); 返回connectionFactory; } @ bean (name=" firstRabbitTemplate ") @Primary 公共RabbitTemplate firstRabbitTemplate ( @ qualifier ConnectionFactory ConnectionFactory (“firstConnectionFactory”) ){ RabbitTemplate firstRabbitTemplate=new RabbitTemplate (connectionFactory); 返回firstRabbitTemplate; } @ bean (name=" secondRabbitTemplate ") 公共RabbitTemplate secondRabbitTemplate ( @ qualifier ConnectionFactory ConnectionFactory (“secondConnectionFactory”) ){ RabbitTemplate secondRabbitTemplate=new RabbitTemplate (connectionFactory); 返回secondRabbitTemplate; } @ bean (name=" firstFactory ") 公共SimpleRabbitListenerContainerFactory firstFactory ( SimpleRabbitListenerContainerFactoryConfigurer配置, @ qualifier ConnectionFactory ConnectionFactory (“firstConnectionFactory”) ) { SimpleRabbitListenerContainerFactory工厂=new SimpleRabbitListenerContainerFactory (); 配置。配置(工厂,connectionFactory); 返回工厂; } @ bean (name=" secondFactory ") 公共SimpleRabbitListenerContainerFactory secondFactory ( SimpleRabbitListenerContainerFactoryConfigurer配置, @ qualifier ConnectionFactory ConnectionFactory (“secondConnectionFactory”) ) { SimpleRabbitListenerContainerFactory工厂=new SimpleRabbitListenerContainerFactory (); 配置。配置(工厂,connectionFactory); 返回工厂; } @ bean 公共队列firstQueue () { system . out。println(“配置firstQueue ........................”); 返回新队列(“hello1”); } @ bean 公共对象secondQueue () { system . out。null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null 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