在hornetq中实现自定义客户端负载均衡策略

时间:2011-09-15 11:29:30

标签: java hornetq

我想在HornetQ中实现一个依赖于节点IP地址的负载均衡策略。例如,如果指定的节点可用,请将其连接到它,否则连接到随机节点。 但是,ConnectionLoadBalancingPolicy接口仅将输入作为数字

int select (int max);

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

在HornetQ文档的那一节中写道:

  

工厂负载均衡的服务器集合   以两种方式之一确定:

Specifying servers explicitly

Using discovery.

那么如何让他们使用发现并将它们与我从ConnectionLoadBalancingPolicy获得的最大数量相匹配?

谢谢, 萨米

1 个答案:

答案 0 :(得分:1)

您可以通过

在客户端的ServerLocator上指定自定义负载均衡器
ServerLocator locator = ....

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

但是,当前版本不允许您在拓扑数组中访问。

我们应该更改我们的实现,以将topologyArray发送到select方法。如果您打开JIRA,我们将负责处理。