非常に高速(> 100,000 /秒)で入力されるJMSキューがあります。
同じエンティティに関連する複数のメッセージが毎秒存在する可能性もあります。(エンティティに対するいくつかの更新。更新ごとに異なるメッセージとして表示されます。)
一方、このメッセージを処理して他のアプリケーションに送信するコンシューマーが1つあります。
現在、消費者は着信メッセージの速度に対応できないため、セットアップ全体の速度が低下しています。
コンシューマーがメッセージを処理する速度にはSLAがあるため、プロセスを高速化するために複数のコンシューマーを並行して動作させるというアイデアを検討してきました。
だから、私がやろうと思っているのは
- キューで独立して動作する複数のコンシューマー。
- 各消費者は自由にメッセージを取得できます。
- メッセージを取得したら、エンティティの最新バージョンであることを確認してください。このため、一部、このエンティティを処理するアプリケーションで確認できます。
- 最新でない場合は、バージョンを上げて再試行してください。
私はこれまで統合パターン、JMSドキュメントを調べてきましたが成功しませんでした。
既知のAPI、Javaの世界のパターンとともに、よりエレガントな方法でこの問題に取り組むためのアイデアを歓迎します。