2013-04-24 57 views
0

使用JMS實現Pub/Sub模型。我從Pub發送消息給所有訂戶。我希望訂閱者應該根據實際郵件正文中的某個字符串來獲取過濾的郵件。根據正文內容在JMS中過濾

例如,用戶訂閱主題「體育」,並且應該只接收那些在消息文本正文中包含關鍵字「板球」的帖子。

p.s.我不想使用消息選擇器。

我該如何實現這一點。

感謝和問候。

回答

1

根據郵件正文內容,您可以不使用任何機制來過濾主題上的郵件。通常一個JMS選擇用於過濾的消息,但即使這並不對正文內容的工作:

The Java EE 6 Tutorial

一個 消息選擇不能的內容的基礎上,選擇郵件郵件正文。

這裏的問題是,你必須首先接收(即消耗)的消息,然後提取內容這就排除了任何一種身體過濾的情況下。

1

看看Apache的駱駝。它提供了一種路由和過濾消息的方式,並與Active MQ很好地集成。

0

你不能用JMS本身來做到這一點。

您通常所做的是根據消息類型(訂單,客戶前景,發票,狀態報告或什麼)使發送應用程序使用不同的隊列。如果您不想使用單獨的隊列,那麼至少可以使發送應用程序標記具有可使用選擇器進行篩選的某些屬性的消息。

在某些情況下,如果您仍然需要根據消息的實際內容進行路由和/或過濾,那麼您可以爲這類事情量身定製軟件。 Apache CamelMule ESB是兩個選項。

+0

謝謝佩特,這肯定會有幫助。我只是想知道JMS是否可以這樣做,並且你已經回答了這個問題。我會嘗試你所建議的選項。 – NGoyal 2013-04-29 05:11:20