2014-11-25 78 views
0

我是JMS和HornetQ的新手。 我想知道是否有一種方法來實現消息轉換器模式,使用HornetQ將數據從一組較小的數據中的消息中分離出來併發送出去。我探索了Bridge和Divert解決方案,但我無法使用org.hornetq.core.server.cluster.Transformerorg.hornetq.core.server.ServerMessage。我在哪裏可以找到關於它的一些文檔?我正朝着正確的方向看嗎?HornetQ消息拆分器

+0

那麼你是說你想要分裂/分裂數據併發送到相同的隊列或每個塊到不同的隊列? – 2014-12-02 19:27:17

+0

@KarthikPrasad我想逐行讀取JMS消息體塊,並將每行發送到一個隊列(或另一個隊列,它可能取決於行內容)。 – Francesco 2014-12-02 22:08:47

+0

@KarthikPrasad我想用apache駱駝做路由。 – Francesco 2014-12-03 07:33:49

回答

0

總之沒有(我沒有駱駝想法)。你不能修改一次發送的jms體,直到它被客戶端使用(body不可變)。但是,您可以更改郵件標題和郵件屬性。 org.hornetq.core.server.cluster.Transformer接口用於修改標題/屬性。因此你有兩個選擇。

  1. 消耗該消息,根據您的算法對消息進行塊化併發送到其他隊列或放回隊列(但要小心避免通過具有合適的選擇器的循環)。
  2. 其他的方法是塊消息然後發送消息屬性來區分消息。並根據消息屬性使用帶有過濾器的轉向器(您可以使用排他/非排他策略僅向其他隊列發送/發送消息副本。)
+0

感謝您的回覆。我在哪裏可以找到一些關於使用變形金剛消耗塊和發送消息的文檔?你能提出一些建議嗎? – Francesco 2014-12-04 11:53:41

+0

你可以去扔HornetQ文檔,並提取Hornetq壓縮文件,你可以找到示例目錄,在這裏你可以找到每個概念的Maven示例項目。在這種情況下你可以使用examples/jms/divert項目。如果你需要解釋和代碼,你可以參考書「hornetq消息開發者指南」 – 2014-12-04 14:10:56