JMS 动态消息选择

Posted

技术标签:

【中文标题】JMS 动态消息选择【英文标题】:JMS Dynamic Message Selection 【发布时间】:2021-04-17 08:26:54 【问题描述】:

我有一个包含客户 ID 和他们的一些数据的消息队列。为了提高性能,这些消息将由多个线程处理。我的问题是我需要找到一种方法来确保单个客户的消息顺序。

举个例子,以一个有交易队列的金融系统为例:

消息1:客户:1,存款:10,提款:0 消息2:客户:2,存款:10,提款:0 消息3:客户:1,存款:0,提款:5 消息4:客户:1,存款:0,提款:5

消息 1 和 2 可以并行处理,但在消息 1 完成之前不应处理消息 3,而在消息 3 完成之前不应处理消息 4。

我觉得理想的情况是消息只有在可处理后才出队?有谁知道这是否可能?值得注意的是,我目前正在使用 RabbitMQ,但这很灵活。

【问题讨论】:

【参考方案1】:

message grouping feature of ActiveMQ Artemis 听起来很适合这个用例。

据我了解,RabbitMQ 不支持这种功能。

【讨论】:

以上是关于JMS 动态消息选择的主要内容,如果未能解决你的问题,请参考以下文章

JMS 主题与选择器

JMS 选择器,用于在带有 Camel 和蓝图的一个标头中具有下划线的消息

3,ActiveMQ-入门(基于JMS发布订阅模型)

activemq、jms 主题和带有选择器的订阅者

弹簧集成 jms 选择器表达式

JMS/DDS 集成