Sun Java System Message Queue 3.7 UR1 技術摘要

發佈/訂閱訊息傳送

在發佈/訂閱網域中,訊息產生器稱為發佈者,而訊息用戶則稱為訂閱者。他們會藉由稱為主題的目標來交換訊息:發佈者會產生主題相關的訊息,而訂閱者則會訂閱主題,並使用主題所提供的訊息。

圖 2–3 所示是發佈/訂閱網域中的簡易訊息傳送作業。MyTopicPublisherMsg1 發佈到目標 MyTopic 上。然後,MyTopicSubscriber1MyTopicSubscriber2 各自從 MyTopic 接收一份 Msg1

圖 2–3 簡易的發佈/訂閱訊息傳送

附圖所示是某發佈者透過主題目標將相同的訊息傳送給兩名訂閱者。下圖將以文字說明。

發佈/訂閱模型中不一定要有多位訂閱者;此圖中之所以顯示兩名訂閱者,是為了強調此網域可讓您廣播訊息。某項主題的所有訂閱者皆可收到任何發佈到該主題的訊息。

訂閱者可以是非長期或長期的訂閱者。代理程式會保留所有使用中訂閱者的訊息,但對於非使用中的訂閱者,便只會為長期訂閱者保留訊息。

圖 2–4 所示圖片,是較為複雜的發佈/訂閱訊息傳送,說明此式樣中可能發生的情況。數個產生器發佈訊息到 Topic1 目標。數名訂閱者使用 Topic1 目標上的訊息。除非訂閱者利用選擇器來篩選訊息,否則每位訂閱者都會取得所有發佈到所選主題的訊息。在圖 2–4 中,MyTSubscriber2 已將 Msg2 篩選掉。

圖 2–4 複雜的發佈/訂閱訊息傳送

附圖所示是三位發佈者透過一個主題目標將訊息傳送給三名訂閱者。下圖將以文字說明。

這個較複雜的圖片解釋了許多有關發佈/訂閱訊息傳送的其他資訊。

發佈/訂閱模型主要的優點在於可以將訊息廣播給多名訂閱者。