我想在HornetQ中实现一个依赖于节点IP地址的负载均衡策略。例如,如果指定的节点可用,请将其连接到它,否则连接到随机节点。 但是,ConnectionLoadBalancingPolicy接口仅将输入作为数字
int select (int max);
假设最大值为3,我想在选择节点之前知道IP地址0,1,2。这可能吗?
在HornetQ文档的那一节中写道:
工厂负载均衡的服务器集合 以两种方式之一确定:
Specifying servers explicitly Using discovery.
那么如何让他们使用发现并将它们与我从ConnectionLoadBalancingPolicy获得的最大数量相匹配?
谢谢, 萨米
答案 0 :(得分:1)
您可以通过
在客户端的ServerLocator上指定自定义负载均衡器ServerLocator locator = ....
locator.setConnectionLoadBalancingPolicyClassName("YOUR-CLASS-NAME);
但是,当前版本不允许您在拓扑数组中访问。
我们应该更改我们的实现,以将topologyArray发送到select方法。如果您打开JIRA,我们将负责处理。