在 Solace 中实施 "message grouping"?

Implementing "message grouping" in Solace?

是否有人使用 Solace 设置了 'message grouping'(re ActiveMQ)场景。

例如考虑大量消息(例如订单),每个订单都有一个唯一的订单 ID。 Amendments/changes 到订单具有相同的订单 ID。 我想对不同的订单 ID 使用循环调度,但需要确保处理相同订单 ID 的消息 'in order'.

消息组专门解决了这个问题,但我看不出如何在 Solace 中实现相同的功能。

-- 附加上下文

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

订阅

从文档看来,似乎所有组件都可用:通过主题名称分组、有保证的消息、应用程序确认、通过非独占队列进行循环调度……但我没有看到具体示例展示如何将这些结合起来解决 'message groups' 问题。

谢谢。

在 Solace appliance/VMR 上,应用程序可以 JMSXGroupID written/read,但它对消息传递没有影响。

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

  1. 使用多个独占队列并根据主题在它们之间散列顺序。

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

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

    b) 创建一个非独占队列 - INITIAL_QUEUE 配置为接收发送到 TOPIC/INITIAL

    的所有消息

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

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