JMS MessageConsumer's messageListener make push or pull?



当我在我的队列 MessageConsumer 对象上设置 messageListener 时,幕后到底发生了什么。MessageConsumer 对象是在场景中进行某种轮询,还是这是 JMS 服务器进行的真正推动?

Java

Message Service (O'Reilly Java Series) by David A. Chappell, Richard Monson-Haefel 和 Mark Richards, p10 CHAPTER1:点对点

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

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

当消息传递

开始时,每当传递消息时,JMS 提供程序都会自动调用消息侦听器的 onMessage 方法。

谢谢科德

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

最新更新