【发布时间】:2021-07-08 22:44:41
【问题描述】:
问题:
- 生产者以某种方式将事件发送到“ActiveMQ.Advisory.Producer.Queue.Queue”而不是“Queue”
主题部分中的 Active-MQ 管理控制台 带有生产者队列的屏幕截图:(不确定为什么它有队列和 0 个消费者以及排队的消息数 = 38)
队列部分中的 Active-MQ 管理控制台 带有消费者队列的屏幕截图:(它显示消费者 = 1 但排队的消息数 = 0)
附加生产者、消费者和配置代码。
制片人
public void sendMessage(WorkflowRun message){
var queue = "Queue";
try{
log.info("Attempting Send message to queue: "+ queue);
jmsTemplate.convertAndSend(queue, message);
} catch(Exception e){
log.error("Recieved Exception during send Message: ", e);
}
}
听众
@JmsListener(destination = "Queue")
public void messageListener(SystemMessage systemMessage) {
LOGGER.info("Message received! {}", systemMessage);
}
配置
@Value("${spring.active-mq.broker-url}")
private String brokerUrl;
@Bean
public ConnectionFactory connectionFactory() throws JMSException {
ActiveMQConnectionFactory activeMQConnectionFactory = new ActiveMQConnectionFactory();
activeMQConnectionFactory.setBrokerURL(brokerUrl);
activeMQConnectionFactory.setWatchTopicAdvisories(false);
activeMQConnectionFactory.createQueueConnection(ActiveMQConnectionFactory.DEFAULT_USER,
ActiveMQConnectionFactory.DEFAULT_PASSWORD);
return activeMQConnectionFactory;
}
【问题讨论】:
-
我已禁用 'activeMQConnectionFactory.setWatchTopicAdvisories(false);'如上面的文档链接中所述。但它不起作用,您有其他解决方案吗?
标签: java spring-boot activemq