2010-03-13 25 views
2

JMS和消息驅動Bean的常見用途和有用用途是什麼?JMS - 常見用途

+0

我讀了一本SCBCD學習指南,並明白我從來沒有使用它。 – 2010-03-13 17:16:34

+1

荒謬的評論。消息是許多大企業(例如金融)的基礎。 – 2010-03-13 17:44:02

+0

謝謝)我還沒有在finace工作。但在未來誰知道...(= – 2010-03-13 18:08:24

回答

10

異步通信:調用者快速返回,並且可以繼續工作(無需創建新線程),並且可以稍後處理該消息。消息可以存儲,即使服務器出現故障,一旦服務器再次啓動,它們仍可以繼續處理。消息可以分發給多臺機器(可選地基於規則)。

調用者和被調用者可以分離(調用者不必知道誰將使用該消息以及有多少消息使用者)。

與同步通信相比,它可以具有巨大的性能優勢。這種消息中間件對於每秒處理大量消息的服務來說至關重要(例如,考慮Twitter)。但它不限於人類可讀的消息。

+0

非常好的答案!+1 – Pindatjuh 2010-03-13 17:27:19

+0

你認爲JMS和MDB的使用是笨重的嗎?或者這只是我的意見。 – 2010-03-13 17:34:53

+0

這真的取決於你想要什麼/需要做什麼。與功能差異相比,大量使用可能是一個小的因素,無論如何,JMS(有或沒有MDB)當然不是默認的選擇,這完全取決於你是否需要這些功能。提供了一個可選的API,這是一個不那麼「笨重」。 – 2010-03-13 17:42:05

5

選擇JMS和MDB的另一個原因是保證交付。如果接收器不可用,則同步的點對點呼叫失敗,但可以設置隊列以保證傳送,處理重試或事務失敗,對「毒藥」消息使用錯誤隊列等。

有內置於JMS中的兩種傳輸模型:使用隊列的點對點和使用主題的發佈/訂閱。每個人都有自己的優勢。

JMS和MDB的缺點是響應速度。你可能會喜歡解耦,但是如果你阻塞並等待響應,它肯定會比直接的遠程方法調用慢,因爲有兩個網絡跳閘而不是一個。