2014-11-25 90 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