java - 如何从 Activemq 推送消息

标签 java jms activemq message-queue

我是activemq的新手。我读了一些文章并这样做了。请帮助我解决以下任务。
我从我的java应用程序向activemq生成一条消息,并且我在另一个java应用程序中有该消息的消费者。所以我将从activemq获取消息。每次此消费者(监听器)在 activemq 中查找消息时。我的问题是activemq可以将消息推送给消费者(听众)。

activemq 仅用于存储消息?它会做任何推或拉操作吗? activemq 总是需要生产者(产生消息)和消费者(消费消息)?

谁能帮我

谢谢

最佳答案

ActiveMq、WebLogic、IBM MQ 和任何与 JMS 兼容的提供程序都是基于目标的消息传递系统;目的地或主题是 排队话题 .发送消息时,生产者可以发送消息并立即断开连接; ActiveMq 将消息存储在队列中。接收时,消息消费者可以接收同步或异步,独立于发送者。

enter image description here

发信息

消息生产者向目的地发送消息;它的工作完成了。

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
    }
}

关于java - 如何从 Activemq 推送消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19588041/

相关文章:

java - 在循环中使用 Realm 或插入列表 Android

java - java中main()方法处理垃圾收集的方式是否不同

java - Scanner.nextInt(x) 抛出 PatternSyntaxException

java - ActiveMQ:如何在客户端设置死信策略?

java - 是否有更有效的方法来为 JMS 创建大量消息使用者列表?

java - HornetQ:顺序消费分布式队列

java - JVM maxHeapSize 和 InitialHeapSize 未反射(reflect)在 htop 中

ActiveMQ、STOMP、Java 示例

activemq - JMS 消息优先级不适用于消息

java - Apache Camel-消息重新传递发生在异常 block 执行之前