我正在使用 Java EE 和 ActiveMQ。我想实现一个 JMS 队列,我可以在其中向我的 QUEUE 发送消息,并且 Consumer + MessageListener 应该读取这些消息。
我的消费者的代码如下:
private void initializeActiveMq() throws JMSException {
// Create a ConnectionFactory
ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory(brokerUrl);
// Create a Connection
connection = connectionFactory.createConnection();
connection.start();
// Create a Session
session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
// Create the destination (Queue)
Queue queue = session.createQueue(queueName);
// Create a MessageConsumer from the Session to the Queue
consumer = session.createConsumer(queue);
consumer.setMessageListener(this);
}
但问题是,每次我运行这段代码时,它都会向我的队列添加一个新的消费者,然后我有一些奇怪的行为,消费者没有正确传递消息。如果我只有一个消费者,那就完美了。
那么如何确保我的队列中只有一个消费者呢?