1

我想在 HornetQ 中实现一个取决于节点 IP 地址的负载平衡策略。例如,如果指定的节点可用,则将其连接到该节点,否则连接到随机节点。但是,ConnectionLoadBalancingPolicy 接口只给我输入数字

int select (int max);

假设最大值为3,我想在选择节点之前知道0,1,2的IP地址。那可能吗?

它写在 HornetQ 文档的那部分:

可以通过以下两种方式之一确定工厂负载平衡所在的服务器集:

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 回答