1.配置文件
- 前置条件是Maven导包!
- MQ的配置文件如下,主要是地址和密码。其他的参数根据自己需要配置
#ActiveMQ
spring.activemq.broker-url=tcp://127.0.0.1:61616?wireFormat.cacheSize=2048&connectionTimeout=6000&soTimeout=3000&tcpNoDelay=true
spring.activemq.user=test
spring.activemq.password=xxxxx
#true 表示使用内置的MQ,false则连接服务器
spring.activemq.in-memory=false
#true表示使用连接池;false时,每发送一条数据创建一个连接
spring.activemq.pool.enabled=true
#连接池最大连接数
spring.activemq.pool.max-connections=10
#空闲的连接过期时间,默认为30秒
spring.activemq.pool.idle-timeout=30000
2.Jms配置类
- 创建MQ连接工厂。MQ的重发策略,根据项目实际情况配置
- 消费者策略可省略。根据项目实际情况配置
- Topic工厂类,主要设置了缓存策略以及消费者数量
- Queue工厂类在监听时注意并发行
- 消息发送模版jmsTemplate这个在实际项目中很重要。我这里主要设置了异步参数以及消息持久化
- 创建Topic和Queue实例
@Configuration
@EnableJms
public class JmsConfig {
@Value("${spring.activemq.broker-url}")
private String brokerUrl;
@Value("${spring.activemq.user}")
private String userName;
@Value("${spring.activemq.password}")
private String password;
/**
* ActiveMQ连接工厂,非@Bean创建,配置互不影响
* @return org.apache.activemq.ActiveMQConnectionFactory
*/
public ActiveMQConnectionFactory connectionFactory() {
ActiveMQConnectionFactory factory = new ActiveMQConnectionFactory();
factory.setBrokerURL(brokerUrl);
factory.setUserName(userName);
factory.setPassword(password);
// 重发策略
RedeliveryPolicy queuePolicy = new RedeliveryPolicy();
// 初始重发延迟时间
queuePolicy.setInitialRedeliveryDelay(0);
// 重发延迟时间,当initialRedeliveryDelay=0时生效
que