【问题标题】:Implementing "message grouping" in Solace?在 Solace 中实现“消息分组”?
【发布时间】:2016-06-15 15:40:20
【问题描述】:

是否有人使用 Solace 设置了“消息分组”(重新 ActiveMQ)场景。

例如考虑大量消息(例如订单),每个订单都有一个唯一的订单 ID。对订单的修改/更改具有相同的订单 ID。 我想对不同的订单 ID 使用循环调度,但需要确保“按顺序”处理相同订单 ID 的消息。

Message Groups 专门解决了这个问题,但我看不到如何在 Solace 中实现。

-- 附加上下文

我正在考虑使用以下主题结构: TOPIC/orders/ ,它给了我组。 然后通过 TOPIC/orders/* 订阅 ...

从文档看来,似乎所有组件都可用:通过主题名称分组、保证消息、应用程序确认、通过非独占队列进行循环调度......但我没有看到一个具体的例子来说明如何将这些组合在一起以解决“消息组”问题。

谢谢。

【问题讨论】:

    标签: activemq message-queue messaging solace


    【解决方案1】:

    在 Solace 设备/VMR 上,JMSXGroupID 可以由应用程序写入/读取,但它对消息传递没有影响。

    这里有两个常用的选项来模拟 ActiveMQ 的JMSXGroupID 的行为。

    1. 使用多个独占队列并根据它们的主题散列它们之间的订单。

    2. 使用请求-回复模型。

      a) 为初始订单建立一个众所周知的主题 - TOPIC/INITIAL

      b) 创建一个非独占队列 - INITIAL_QUEUE,该队列配置为接收发送到 TOPIC/INITIAL 的所有消息

      c) 没有新通信目的地的发布者会将第一条消息发送到TOPIC/INITIAL。 这会将初始消息负载平衡到多个消费者。

      d) 当消息由消费者处理时,消费者向发布者发送回复,其中包含另一个已知主题/队列,以供同一消费者处理进一步的订单更新。 然后,发布者将进一步向该目的地发送更新,以确保所有消息都发送给同一消费者。 这可以通过 Solace API 轻松处理,通过回复目的地和点对点收件箱主题等功能。

    【讨论】:

    • 感谢 Russell 的详尽回答。目前将使用选项 1,但选项 2 将提供更好的可扩展性。干杯布拉德。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-21
    相关资源
    最近更新 更多