ActiveMQ接收消息的方式不同

时间:2013-11-15 18:38:35

标签: java jms activemq

您好我遇到过两种方式接收来自ActiveMQ经纪商的消息: (下面提到的所有类别都在javax.jmx package

1)调用返回消息的MessageConsumer.receive()

2)为MessageConsumer注册MessageListener,并且监听器有onMessage()

我可以问这两种方式下真正发生的事情吗?

这与拉/推同步/异步有关吗?

1 个答案:

答案 0 :(得分:2)

你的猜测是正确的。

messageConsumer.receive()本质上是同步。它等待直到从队列中收到消息。所以有时候你不想无限期等待,所以这个方法有超时功能:     messageConsumer.receive(3000)

HERE 3000是超时(以毫秒为单位)。这种与经纪人沟通的方式被称为 request-reply 范例。事实上,消费者

实施MessageListener本质上是异步。消费者推送