1

ノードのIPアドレスに依存する負荷分散ポリシーをHornetQに実装したいと思います。たとえば、指定されたノードが使用可能な場合はそのノードに接続し、そうでない場合はランダムノードに接続します。ただし、ConnectionLoadBalancingPolicyインターフェースは、入力を数値としてのみ提供します

int select (int max);

最大値が3であると仮定します。ノードを選択する前に、0、1、2のIPアドレスを知りたいと思います。それは可能ですか?

HornetQドキュメントのそのセクションに書かれています。

工場出荷時の負荷分散を行うサーバーのセットは、次の2つの方法のいずれかで決定できます。

Specifying servers explicitly

Using discovery.

では、ディスカバリーを使用してそれらを取得し、ConnectionLoadBalancingPolicyから取得する最大数と一致させるにはどうすればよいですか?

ありがとう、サーミ人

4

1 に答える 1

1

クライアントのServerLocatorでカスタムロードバランサーを指定するには、次のようにします。

ServerLocator locator = ....

locator.setConnectionLoadBalancingPolicyClassName("YOUR-CLASS-NAME);

ただし、現在のバージョンでは、トポロジアレイにアクセスできません。

実装を変更して、topologyArrayをselectメソッドに送信する必要があります。JIRAを開くと、その処理が行われます。

于 2011-09-15T15:55:09.977 に答える