1

(完全ではありませんが) ActiveMQ を実行し、アプリケーションの展開モデルを理解しようとしました。私はそれについて少し混乱しています。システムを高可用性にしたいので、以下を使用することにしました。何か間違っているか、モデルの欠点がある場合は、私を修正してください。

展開モデル:

  1. M1 と M2 にそれぞれブローカーをデプロイします。
  2. ハードウェア ロード バランサー (F5 または Zeus) を使用して、負荷に基づいてブローカー (M1 または M2) のいずれかに接続します。
  3. ロードバランサー URL を使用してメッセージを発行したい。

私はブローカーのネットワークを通過しましたが、いくつかのトポロジーを維持する必要があります。システムが水平方向に成長すると、システムがより複雑になります。そのため、負荷を分散するロード バランサーを 1 つ用意することをお勧めします。

質問

  1. この上記のモデルは、ブローカーのいずれかにメッセージを送信しますか?
  2. コンシューマーは Tomcat にデプロイされます (M1 または M2 のいずれかを構成するには、組み込みブローカーを使用する必要があると思います)。M1やM2の代わりにロードバランサーのURLを使用することはできますか?
  3. 単一の Web コンソール管理者で M1 と M2 の両方を監視することは可能ですか。
  4. Spring の機能を使用してメッセージを消費するパフォーマンスの問題はありますか?

たくさん質問してすみません。展開モデルを修正するのを手伝ってください。

4

2 に答える 2

1

そこにはたくさんの質問があります。

最初にすることは、簡単に始めることです。アプリケーションの負荷が1つのブローカーだけで処理されている場合は、マスタースレーブセットアップを使用して高可用性をセットアップすることを検討してください。このため、ロードバランサーは必要ありません。ActiveMQクライアントライブラリには、クライアントが接続を試行する必要のあるブローカーのセットへのURLを定義できるフェイルオーバーメカニズムがあります。

1つのブローカーがメッセージの負荷を処理できないインフラストラクチャのセットアップを検討している場合(パフォーマンスモジュールを使用してブローカーの最大スループットをテストできます)、ブローカーのネットワークがどのようになっているのかを確認することをお勧めします仕事。この道を進む場合は、ActiveMQを本当に理解する必要があります。

監視では、Webコンソールは単一のブローカーの内部のみを表示できます。一連のブローカーの周りで何が起こっているかについての洞察を得るには、多数のボックスからJMX情報を集約できるFuseHQ /Hypericなどの監視ツールが必要になります。

Springを正しく構成する限り、Springでのパフォーマンスは問題になりません(のセクションを参照PooledConnectionFactory)。

あなたは新しいユーザーだと思いますので、これがあなたの質問に答えるなら、それをチェックしてください。

于 2012-07-11T09:55:32.570 に答える
1

一部のactivemqサーバーで負荷分散を行う最良の方法は 、ブローカーのネットワークと、 (Webアプリケーション内の) コンシューマー/プロデューサーがフェイルオーバーを使用する必要があることだと思います

したがって、プロデューサー p1 がブローカー 1 のキューでメッセージを送信すると、コンシューマー c1 はブローカー 2 のメッセージを読み取ることができます。

[編集] activemq プロトコル フェイルオーバーの代わりにハードウェア バランサーを追加しようとしたことは一度もありません。動作するはずです: 試してみて、教えてください。

3- 1 つの Web コンソールだけで両方のブローカーを監視することはできないと思います。

4- 私に関する限り、Spring 構成にパフォーマンスの問題はありません。

于 2012-07-04T11:22:31.310 に答える