在ActiveMQ / HornetQ中使用(spring或ejb)消息侦听器容器接收消息时,场景背后会发生什么?
p2p消息传递模型传统上一直是拉动式的 基于轮询的模型,从队列中请求消息 而不是自动推送到客户端。 ( JMS 规范没有具体说明p2p和pub / sub的方式 必须实施模型。任何一方都可以使用推或拉,但是 至少概念上pub / sub是push而p2p是pull)。
答案 0 :(得分:3)
您没有说明协议,因为ActiveMQ和HornetQ是多协议代理,确切的实现可能会有所不同。但是,除了基于HTTP / REST的协议之外,大多数协议都会将消息推送到客户端。如果没有线路协议级别的推送策略,则无法实现高吞吐量。
应用程序级API允许“轮询”,即JMS MessageConsumer.receive,但这实际上只是“在推送消息之前休眠”机制。