Activemq 实施";“消息分组”;安慰?

Activemq 实施";“消息分组”;安慰?,activemq,message-queue,messaging,solace,Activemq,Message Queue,Messaging,Solace,任何人都可以使用Solace设置“消息分组”(re-ActiveMQ)场景 例如考虑大量消息(例如订单),每个订单都有唯一的订单ID。对订单的修改/更改具有相同的订单ID。 我想对不同的订单id使用循环调度,但需要确保相同订单id的消息“按顺序”处理 消息组专门解决了这个问题,但我不知道如何在Solace中实现同样的功能 --附加上下文 我正在研究如何使用主题结构,如: TOPIC/orders/,它为我提供了组。 然后通过TOPIC/orders/* 从文档中,似乎所有组件都可用:通过主题名称

任何人都可以使用Solace设置“消息分组”(re-ActiveMQ)场景

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

消息组专门解决了这个问题,但我不知道如何在Solace中实现同样的功能

--附加上下文

我正在研究如何使用主题结构,如: TOPIC/orders/,它为我提供了组。 然后通过TOPIC/orders/*

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


谢谢。

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

下面是两个常用选项,用于模拟ActiveMQ的
JMSXGroupID
的行为

  • 使用多个排他队列,并根据主题在队列之间散列顺序

  • 使用请求-应答模型

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

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

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

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


  • 谢谢你罗素的详尽回答。目前将使用选项1,但选项2将提供更好的可扩展性。干杯,布拉德。