有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java删除“ActiveMQ.Advisory.Producer.x”前缀

问题:

  • 不知何故,生产者正在将事件发送到“ActiveMQ.Advisory.producer.Queue.Queue”而不是“Queue”

主题部分中的活动MQ管理控制台与生产者队列的屏幕截图:(不确定为什么它有队列和0个消费者,消息排队数=38) enter image description here

队列中的活动MQ管理控制台部分消费者队列屏幕截图:(显示消费者=1,但排队的消息数=0) enter image description here

附加生产者、消费者和配置代码

制作人

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) 个答案

  1. # 1 楼答案

    当生产者启动时,ActiveMQ代理会生成一条“建议消息”,并将其发送到该主题。计数表示为该项目创建了多少生产商queue://Queuee在这种情况下,已经创建了38个生产商

    由于没有生成消息,因此在Spring连接中,似乎创建了连接、会话和生产者对象,但没有发送消息

    另外,如果你正在展示queue://ActiveMQ.Advisory..出现在应用程序的其他部分(或监控工具?)可能有漏洞应该配置为从topic://ActiveMQ.Advisory..而不是队列://