删除 "ActiveMQ.Advisory.Producer.x" 前缀

Remove "ActiveMQ.Advisory.Producer.x" prefix

问题:

主题部分中的 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;
    }

当您的生产者启动时,ActiveMQ 代理会生成一个 'Advisory Message' 并将其发送到该主题。计数表示为queue://Queuee创建了多少个生产者--本例中创建了38个生产者。

由于未生成消息,因此在您的 Spring 连接中,您创建了连接、会话和生成器对象——但未发送消息。

此外,如果您正在显示 queue://ActiveMQ.Advisory.. 显示,您可能在应用程序的其他部分(或监控工具?)中存在错误,应该配置为使用主题://ActiveMQ.Advisory.. 而不是队列://