java删除“ActiveMQ.Advisory.Producer.x”前缀
问题:
- 不知何故,生产者正在将事件发送到“ActiveMQ.Advisory.producer.Queue.Queue”而不是“Queue”
主题部分中的活动MQ管理控制台与生产者队列的屏幕截图:(不确定为什么它有队列和0个消费者,消息排队数=38)
队列中的活动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;
}
# 1 楼答案
当生产者启动时,ActiveMQ代理会生成一条“建议消息”,并将其发送到该主题。计数表示为该项目创建了多少生产商queue://Queuee在这种情况下,已经创建了38个生产商
由于没有生成消息,因此在Spring连接中,似乎创建了连接、会话和生产者对象,但没有发送消息
另外,如果你正在展示queue://ActiveMQ.Advisory..出现在应用程序的其他部分(或监控工具?)可能有漏洞应该配置为从topic://ActiveMQ.Advisory..而不是队列://