我是activemq的新手。我读了一些文章并这样做了。请帮助我解决以下任务。我从我的java应用程序向activemq生成一条消息,并且我在另一个java应用程序中有该消息的消费者。所以我将从activemq获取消息。每次此消费者(侦听器)在 activemq 中查找消息时。我的问题是activemq可以将消息推送给消费者(听众)。
activemq 仅用于存储消息?它会做任何推或拉操作吗?activemq 总是需要生产者(产生消息)和消费者(消费消息)?
谁能帮我
谢谢
我是activemq的新手。我读了一些文章并这样做了。请帮助我解决以下任务。我从我的java应用程序向activemq生成一条消息,并且我在另一个java应用程序中有该消息的消费者。所以我将从activemq获取消息。每次此消费者(侦听器)在 activemq 中查找消息时。我的问题是activemq可以将消息推送给消费者(听众)。
activemq 仅用于存储消息?它会做任何推或拉操作吗?activemq 总是需要生产者(产生消息)和消费者(消费消息)?
谁能帮我
谢谢
ActiveMq、WebLogic、IBM MQ 和任何与 JMS 兼容的提供程序都是基于目标的消息传递系统;目的地或主题是队列或主题。发送消息时,生产者可以发送消息并立即断开连接;ActiveMq 将消息存储在队列中。接收时,消息消费者可以接收同步或异步,独立于发送者。
消息生产者向目的地发送消息;它的工作完成了。
QueueSender queueSender = queueSession.createSender(myQueue);
queueSender.send(message);
消息消费者可以通过以下两种方式之一接收消息:
同步,这里你receive()
显式调用
QueueReceiver queueReceiver = queueSession.createReceiver(myQueue);
queueConnection.start();
Message m = queueReceiver.receive();
异步,这里你从MessageListener
接口实现回调方法:
class MyQueueReceiver implements javax.jms.MessageListener {
QueueReceiver queueReceiver = queueSession.createReceiver(myQueue);
queueReceiver.setMessageListener(this);
...
public void onMessage(Message msg){
//consume message here
}
}