需要写jmsTemplate.setExplicitQosEnabled(true);
@Bean
public JmsTemplate jmsTemplate(ActiveMQConnectionFactory connectionFactory) {
JmsTemplate jmsTemplate = new JmsTemplate();
jmsTemplate.setConnectionFactory(connectionFactory);
//deliveryMode, priority, timeToLive 的开关,要生效,必须配置为true,默认false
jmsTemplate.setExplicitQosEnabled(true);
// 持久化消息
jmsTemplate.setDeliveryMode(DeliveryMode.NON_PERSISTENT);
// 是否开启事务
jmsTemplate.setSessionTransacted(false);
// 消费者receive消息后必须手动的调用acknowledge()方法进行签收
jmsTemplate.setSessionAcknowledgeMode(Session.CLIENT_ACKNOWLEDGE);
return jmsTemplate;
}
该博客介绍了如何使用JmsTemplate配置ActiveMQ连接,并启用deliveryMode、priority和timeToLive的显式QoS设置。通过设置`setExplicitQosEnabled(true)`确保这些参数生效。同时,设置了消息为非持久化,不开启事务,并指定消费者需手动acknowledge签收消息。
275

被折叠的 条评论
为什么被折叠?



