调用MQ接口
//获取bean
@Resource(name="psyRabbitTemplate")
private AmqpTemplate psyRabbitTemplate;
//获取bean
@Resource(name="deviceRabbitTemplate")
private AmqpTemplate deviceRabbitTemplate;
RabbitMQConfig.java
/*
定义连接
*/
@Bean(name = "deviceConnectionFactory")
public ConnectionFactory daHuaConnectionFactory(
@Value("${spring.rabbitmq.second.host}") String host,
@Value("${spring.rabbitmq.second.port}") int port,
@Value("${spring.rabbitmq.second.username}") String username,
@Value("${spring.rabbitmq.second.password}") String password,
@Value("${spring.rabbitmq.second.virtual-host}") String virtual
) {
return connectionFactory(host, port, username, password,virtual);
}
public CachingConnectionFactory connectionFactory(String host, int port, String username, String password,String virtual){
CachingConnectionFactory connectionFactory = new CachingConnectionFactory();
connectionFactory.setHost(host);
connectionFactory.setPort(port);
connectionFactory.setUsername(username);
connectionFactory.setPassword(password);
connectionFactory.setVirtualHost(virtual);
// connectionFactory.setVirtualHost(virtual_host);
return connectionFactory;
}
@Bean(name = "psyRabbitTemplate")
@Primary
public RabbitTemplate myRabbitTemplate(
@Qualifier("psyConnectionFactory") ConnectionFactory connectionFactory
) {
RabbitTemplate psyRabbitTemplate = new RabbitTemplate(connectionFactory);
return psyRabbitTemplate;
}
@Bean(name = "deviceRabbitTemplate")
public RabbitTemplate secondRabbitTemplate(
@Qualifier("deviceConnectionFactory") ConnectionFactory connectionFactory
) {
RabbitTemplate deviceRabbitTemplate = new RabbitTemplate(connectionFactory);
return deviceRabbitTemplate;
}
@Bean(name = "psyFactory")
@Primary
public SimpleRabbitListenerContainerFactory myFactory(
SimpleRabbitListenerContainerFactoryConfigurer configurer,
@Qualifier("psyConnectionFactory") ConnectionFactory connectionFactory
) {
SimpleRabbitListenerContainerFactory factory = new SimpleRabbitListenerContainerFactory();
configurer.configure(factory, connectionFactory);
return factory;
}
@Bean(name = "deviceFactory")
public SimpleRabbitListenerContainerFactory secondFactory(
SimpleRabbitListenerContainerFactoryConfigurer configurer,
@Qualifier("deviceConnectionFactory") ConnectionFactory connectionFactory
) {
SimpleRabbitListenerContainerFactory factory = new SimpleRabbitListenerContainerFactory();
configurer.configure(factory, connectionFactory);
return factory;
}
/*
声明交换机 amq.topic topic类型的,其他类型的直接改TopicExchange
*/
@Bean
public TopicExchange basicExchange(){
return new TopicExchange("amq.topic", true,false);
}
/*
声明消息队列 启动创建,停止自动删除
*/
@Bean(name = "basicQueue")
public Queue basicQueue(){
return new Queue("acquire-alarm-volume", false,true,true);
}
/*
队列绑定交换机 *.*.*.*.*.*为rountingkey
*/
@Bean
public Binding basicBinding(){
return BindingBuilder.bind(basicQueue()).to(basicExchange()).with("*.*.*.*.*.*");}
application.yml
rabbitmq:
first:
host: 192.168.0.134
port: 5672
username: admin
password: admin
virtual-host: /psy
second:
host: 192.168.0.160
port: 5672
username: admin
password: pl,okm123
virtual-host: /