【问题标题】:qpid Producer and Consumer on the same Session/Topic?同一会话/主题上的 qpid 生产者和消费者?
【发布时间】:2026-01-12 23:45:02
【问题描述】:

Brocker C++,客户端 java jms

向主题发送消息并在此主题上创建消费者后是否正确?

connection = connectionFactory.createConnection();
connection.start();
session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
topic = (Destination) context.lookup("topicSend");
Destination tempTopic = (Destination) context.lookup("topicSend");
MessageProducer messageProducer = session.createProducer(topic);
messageProducer.send(messageToSend);

... 然后在相同的会话和主题上创建一个消费者(topicSend 等于 tempTopic

MessageConsumer messageConsumer = session.createConsumer(tempTopic, MESSAGE_SELECTOR);

【问题讨论】:

    标签: jms qpid


    【解决方案1】:

    是的。那应该没问题。如果你完成了,请务必关闭你的制作人。

    【讨论】:

    • 好的,但是发送的消息会被接收者和当前正在发送的客户端接收到吗?
    • 主题订阅者在创建订阅之前不会收到发送到该主题的消息,这在您的示例中似乎就是这种情况。换句话说,这里创建的消费者不会收到发送的消息。
    【解决方案2】:

    我会建议为生产者和消费者使用单独的会话以避免任何问题。

    【讨论】:

      最近更新 更多