java - JMS 动态消息选择
问题描述
我有一个包含客户 ID 和他们的一些数据的消息队列。为了提高性能,这些消息将由多个线程处理。我的问题是我需要找到一种方法来确保单个客户的消息顺序。
举个例子,以一个具有交易队列的金融系统为例:
- Message1:客户:1,存款:10,取款:0
- Message2:客户:2,存款:10,取款:0
- Message3:客户:1,存款:0,取款:5
- Message4:客户:1,存款:0,取款:5
消息 1 和 2 可以并行处理,但在消息 1 完成之前不应处理消息 3,而在消息 3 完成之前不应处理消息 4。
我觉得理想的情况是消息只有在可处理后才出队?有谁知道这是否可能?值得注意的是,我目前正在使用 RabbitMQ,但这很灵活。
解决方案
ActiveMQ Artemis的消息分组功能听起来很适合这个用例。
据我了解,RabbitMQ 不支持这种功能。
推荐阅读
- javascript - jQuery删除具有相同html的重复项
- python - Python Flask:从数据库中检索 id(将元组转换为 int)
- python-3.x - 协程每次交替迭代都返回 None
- javascript - 在 Typescript 或 JavaScript 中使用类似于 @VisibleForTesting 注释的任何东西?
- javascript - 隐藏“按'ESC'隐藏全屏”消息或在退出全屏之前给予确认
- php - PHP 中的唯一会话值
- jenkins - Jenkins Jobs Builder 的 Groovy DSL Pipeline 中的每个循环都失败
- flutter - 如何检测图像结束抖动
- ios - 在 SpriteKit 中允许触摸传播
- reactjs - 如何修复:“错误:超出最大更新深度”