我有一个以非常高的速率(> 100,000/sec)填充的 JMS 队列。
每秒也可能有多条与同一实体有关的消息。(对 entity 的多次更新,每次更新都作为不同的消息。)
另一方面,我有一个消费者处理此消息并将其发送到其他应用程序。
现在,由于消费者无法应对传入消息的速度,整个设置正在放缓。
因为,消费者处理消息的速率有一个 SLA,所以我一直在玩弄让多个消费者并行行动以加快流程的想法。
所以,我想做的是
- 多个消费者在队列上独立行动。
- 每个消费者都可以自由地获取任何消息。
- 抓取消息后,确保它是实体的最新版本。为此,我可以检查处理该实体的应用程序。
- 如果它不是最新的,请升级版本并重试。
到目前为止,我一直在查找集成模式和 JMS 文档,但没有成功。
我欢迎以更优雅的方式解决这个问题的想法以及 Java 世界中任何已知的 API、模式。