嵌入式ActiveMQ是一种轻量级的消息中间件,它可以在Spring Boot应用程序中使用。在不同的Spring Boot应用程序的不同端口上启动两个嵌入式ActiveMQ实例的方法如下:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-activemq</artifactId>
</dependency>
# 第一个ActiveMQ实例的配置
spring.activemq.broker-url=vm://localhost:61616
spring.activemq.user=admin
spring.activemq.password=admin
# 第二个ActiveMQ实例的配置
spring.activemq.broker-url2=vm://localhost:61617
spring.activemq.user2=admin
spring.activemq.password2=admin
@Configuration
public class ActiveMQConfig {
@Value("${spring.activemq.broker-url}")
private String brokerUrl;
@Value("${spring.activemq.user}")
private String username;
@Value("${spring.activemq.password}")
private String password;
@Bean
public ConnectionFactory connectionFactory() {
ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory();
connectionFactory.setBrokerURL(brokerUrl);
connectionFactory.setUserName(username);
connectionFactory.setPassword(password);
return connectionFactory;
}
@Bean
public JmsTemplate jmsTemplate(ConnectionFactory connectionFactory) {
JmsTemplate jmsTemplate = new JmsTemplate();
jmsTemplate.setConnectionFactory(connectionFactory);
return jmsTemplate;
}
@Value("${spring.activemq.broker-url2}")
private String brokerUrl2;
@Value("${spring.activemq.user2}")
private String username2;
@Value("${spring.activemq.password2}")
private String password2;
@Bean
public ConnectionFactory connectionFactory2() {
ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory();
connectionFactory.setBrokerURL(brokerUrl2);
connectionFactory.setUserName(username2);
connectionFactory.setPassword(password2);
return connectionFactory;
}
@Bean
public JmsTemplate jmsTemplate2(ConnectionFactory connectionFactory2) {
JmsTemplate jmsTemplate = new JmsTemplate();
jmsTemplate.setConnectionFactory(connectionFactory2);
return jmsTemplate;
}
}
@Autowired
private JmsTemplate jmsTemplate;
@Autowired
private JmsTemplate jmsTemplate2;
public void sendMessage(String message) {
jmsTemplate.convertAndSend("queueName", message);
}
public String receiveMessage() {
return (String) jmsTemplate.receiveAndConvert("queueName");
}
public void sendMessage2(String message) {
jmsTemplate2.convertAndSend("queueName2", message);
}
public String receiveMessage2() {
return (String) jmsTemplate2.receiveAndConvert("queueName2");
}
这样,你就可以在不同的Spring Boot应用程序的不同端口上启动两个嵌入式ActiveMQ实例了。每个实例都有自己独立的配置和连接工厂,可以通过对应的JmsTemplate实例发送和接收消息。这种方式适用于需要在同一台机器上运行多个Spring Boot应用程序,并且每个应用程序都需要使用独立的消息队列的场景。
腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云