【问题标题】:ActiveMQ message grouping performanceActiveMQ 消息分组性能
【发布时间】:2010-10-16 18:17:49
【问题描述】:

有人用过 ActiveMQ 的消息分组功能吗?

http://activemq.apache.org/message-groups.html

对于我正在从事的项目来说,这将是一个非常有用的功能,但我很好奇这个功能的扩展性和性能如何。在我们的系统中,我们需要将消息分组为大约 3-5 条消息的组,因此我们将在进程运行时不断添加组。在这种情况下,我们似乎最终会在尝试存储所有组时耗尽内存。

我对任何经验/想法/优点/缺点都感兴趣。

【问题讨论】:

    标签: jms message-queue messaging activemq


    【解决方案1】:

    我在许多项目中都使用过消息组,效果很好。尽管为了全面披露,我是推动消息组的人之一,并完成了大部分初始实施工作。

    消息组的用例来自划分大型主题层次结构;比如处理金融股票代码之类的。我们希望消息组能够使用非常精细的相关表达式(JMSXGroupID 字符串)——因此您可以使用日期、股票代码和产品类型作为 groupID——或者客户或业务交易 ID 或其他任何内容。

    为了避免必须将每个组 ID 字符串保存在内存中,默认提供程序使用哈希桶 - 因此我们只存储哈希桶到消费者的映射 - 而不是单独的字符串。因此,它可以扩展到您想要使用的任意数量的组 ID!这也意味着我们不必“清理”旧的消息组 ID 等

    【讨论】:

    • 假设 JMSXGroupID 等于某个 no 即 3345。那么所有 JMSXGroupID = 3345 的消息将发送到同一个消费者。但是假设我动态添加了一个新的消费者,而不是 activeMq 确保将 3345 消息发送给同一个旧消费者(正如你告诉它存储 id 的哈希值)。谢谢。
    • 我不太明白为什么使用哈希替换每个 GroupID 字符串会有效?哈希值很小吗?但是如果我每天有一百万个新的 GroupID 呢?
    猜你喜欢
    • 1970-01-01
    • 2015-02-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-22
    • 2020-07-06
    • 2016-01-27
    相关资源
    最近更新 更多