2014-02-20 92 views
0

我想構建一個廣播系統。它由幾個小組組成。每個組有一個用戶可以向同一組的其他成員廣播消息。什麼是適合這種系統的JMS體系結構?用於組播的JMS體系結構

我應該使用持久訂閱的主題嗎?我不太瞭解發佈/訂閱消息的風格,主題是否有多個訂閱?如果是這樣,則每個訂閱代表廣播系統中的一個組。如果不是,我應該使用隊列,而每條消息都有一個指定組的頭部,然後使用JMS選擇器過濾消息,以便每個成員只接收來自組中的消息?

此外,我想消費後堅持消息。我決定讓每封郵件在一小時後過期,每個成員都應該檢查數據庫中是否有錯過的每封郵件。但是,如何在消息到期時觸發一個動作?

回答

0

可以使用主題...主題可以有多個訂閱者。每個組可以使用不同的主題。用戶可以將消息發送到該主題,並且所有訂戶都可以收到該消息。

只有當訂戶可以在一段時間內脫機並且用戶的消息不應該丟失時,才需要持久訂戶。

隊列在一對多的情況下並不適合。但是,如果您有一組預定義的接收器,您可以爲每個接收器使用一個隊列,並將消息路由到該接收器。但是這是將消息路由到接收者隊列的開銷。您建議的JMS選擇器想法可行,但對於一個隊列,只有一個客戶端可以收到消息。在分發給所有對該主題感興趣的客戶的主題中。

通常人們會將數據保存到數據庫而不是消息本身。所以你可以堅持數據庫,然後創建交付信息。