建议具有缓存支持的消息传递产品,以支持每条消息的最新版本

时间:2011-11-20 05:42:10

标签: java jms messaging activemq

我期待能够满足以下用例的消息传递产品。

  1. Publisher可以通过主题发布消息。
  2. 每当消费者订阅某个主题时,他应该首先收到关于该主题的消息(自发布者开始发布以来)以及之后的消息。
  3. 消息可以有多个版本。例如一条消息与股票的信息有关。当该信息发生变化时,发布者会发布该消息的第2版。在这种情况下,稍后连接的客户端应仅看到消息的版本2而不是版本1.

  4. 这个不是一个严格的要求,但如果发布者想要从代理缓存中删除一些消息,那么如果以后任何客户端连接,他就不会在以前的消息流中得到一些特定的消息。

  5. 我查看了Red Hat MRG和Apache Active MQ产品,但他们似乎确实提供了这项功能。

    Red Hat Mrg Experience -

      

    Red Hat MRG具有初始值交换功能,但仅限缓存   交换时的单个消息。它还提供最后的价值队列   支持版本化消息,但它们需要在其中创建队列   推进消费者。我想要一些动态的东西,如果一个新的   订阅者连接(事先我不知道),它应该   能够发送在其上发布的所有消息的最新版本   话题。非常感谢您对上述用例的输入/解决方案。

3 个答案:

答案 0 :(得分:1)

Hornetq有这个功能。其他选项(所有商业广告)包括Informatica Ultra Messaging,我的频道Nirvana和solace。

答案 1 :(得分:0)

实际上MRG-M会支持您的需求。 MRG-M具有最后一个值队列的概念。最后一个值队列类型导致以前消息的逻辑更新版本显示为覆盖旧消息。

答案 2 :(得分:0)

终于找到了答案 使用RedHat Mrg可以实现这一点。 您必须使用仅浏览队列并创建使用者(不发送确认)以获取初始图像和更新。