【问题标题】:JMS MessageConsumer's messageListener makes push or pull?JMS MessageConsumer 的messageListener 是推还是拉?
【发布时间】:2012-04-11 23:52:05
【问题描述】:

当我在队列 MessageConsumer 对象上设置 messageListener 时,真正发生了什么。 MessageConsumer 对象是在后台进行某种轮询还是由 JMS 服务器进行的真正推送?

Java 消息服务(O'Reilly Java 系列),David A. Chappell、Richard Monson-Haefel 和 Mark Richards,第 10 页第 1 章:点对点

点对点消息传递模型传统上是基于拉取或基于轮询的模型,其中消息从队列中请求而不是自动推送到客户端

http://docs.oracle.com/javaee/1.4/tutorial/doc/JMS4.html#wp79175

消息传递开始时,JMS 提供者会在消息传递时自动调用消息侦听器的 onMessage 方法。

谢谢, 科德

【问题讨论】:

    标签: java jms


    【解决方案1】:

    这两者并不矛盾。 P2P 本质上是基于拉的,因为一旦消息由生产者发送,接收者就有责任读取消息。您在第二次引用中提到的 onMessage() 方法是用于启动拉取的 通知 机制。这些变体也称为接收 JMS 消息的同步与异步模式,例如在this chapter in Java Tutorial 中。

    【讨论】:

      猜你喜欢
      • 2014-10-23
      • 2018-05-08
      • 1970-01-01
      • 1970-01-01
      • 2017-12-23
      • 2010-12-07
      • 2012-03-30
      • 2019-03-13
      • 2014-02-02
      相关资源
      最近更新 更多