【问题标题】:ActiveMQ/HornetQ p2p is polling-based or pushing-based modelActiveMQ/HornetQ p2p 是基于轮询或基于推送的模型
【发布时间】:2015-11-28 02:06:54
【问题描述】:

在 ActiveMQ/HornetQ 中使用(spring 或 ejb)消息侦听器容器接收消息时,幕后会发生什么?

  1. 代理是否将消息推送给消费者?如果是这样,消费者如何注册 自己去经纪人?
  2. 还是消费者轮询队列中的消息?如果是这样,为什么每个队列(在管理控制台中)都有一个消费者编号字段来显示队列的注册消费者数量?

This linkO'Reilly 的书说:

p2p 消息传递模型传统上是一个拉或 基于轮询的模型,从队列中请求消息 而不是自动推送到客户端。 (JMS 规范没有具体说明 p2p 和 pub/sub 如何 模型必须实现。 任何一个都可以使用推或拉,但在 至少在概念上 pub/sub 是 push 而 p2p 是 pull)。

【问题讨论】:

    标签: java jms activemq hornetq


    【解决方案1】:

    您没有说明协议,因为 ActiveMQ 和 HornetQ 是多协议代理,具体实现可能会有所不同。但是,除了基于 HTTP/REST 的协议之外,大多数协议都将消息推送到客户端。如果没有在线协议级别的推送策略,就不可能实现高吞吐量。

    应用程序级 API 允许“轮询”,即 JMS MessageConsumer.receive,但这实际上只是一种“休眠直到推送消息”机制。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-03-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-10
      • 2017-07-30
      • 2022-11-22
      • 2017-01-27
      相关资源
      最近更新 更多