2012-04-11 80 views
5

當我在我的隊列MessageConsumer對象上設置messageListener時,真正發生了什麼。 MessageConsumer對象是否在場景後面進行某種輪詢,或者這是由JMS服務器進行的真正推送?JMS MessageConsumer的messageListener使推或拉?

Java消息服務(Java的奧賴利系列)由David A. Chappell的,理查德·蒙森-Haefel的和馬克·理查茲,P10第一章:點至點

點至點的通訊模型傳統上一直是pullbased或輪詢爲基礎的模型,其中消息從隊列請求,而不是被傳遞到客戶端自動

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

當消息傳遞開始時,JMS提供者自動調用噸無論何時傳遞消息,他都會收到消息監聽器的onMessage方法。

感謝, KOD

回答

1

這兩個不互相矛盾。 P2P基本上是基於拉的,因爲一旦製作者發送消息,接收者有責任閱讀消息。您在第二個報價單中提到的onMessage()方法是通知用於啓動拉動的機制。這些變化也稱爲接收JMS消息的同步與異步模式,例如在this chapter in Java Tutorial中。

相關問題