次のようなトランザクションを行う Apache Camel に基づくミドルウェアがあります。
from("amq:job-input")
to("inOut:businessInvoker-one") // Into business processor
to("inOut:businessInvoker-two")
to("amq:job-out");
現在、それは完全に機能します。しかし、100 TPS から 500 TPS にスケールアップすることはできません。私はもう
- コンカレント コンシューマ設定を上げ、空の businessProcessor を使用しました
- 構成された JAVA_XMX および PERMGEN
トランザクションを高速化します。
Active MQ Web コンソールによると、シナリオ 500TPS で処理待ちのメッセージが非常に多くあります。解決策の 1 つは、ActiveMQ をスケールアップすることだと思います。そのため、クラスターで複数のブローカーを使用したいと考えています。
http://fuse.fusesource.org/mq/docs/mq-fabric.html (セクション「トポロジー」) によると、クラスタリング モードで ActiveMQ を構成することは、非永続的なメッセージに適しています。私見、実行中のすべてのブローカーが同じストアファイルを使用するため、適切ではないことは事実です。しかし、ストアファイルを分離するのはどうですか?今なら可能ですよね?
誰でもこれを説明できますか?それが不可能な場合、永続メッセージの負荷を分散する最善の方法は何ですか?
ありがとう