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

发布于 2024-12-05 06:22:24 字数 443 浏览 0 评论 0原文

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

int select (int max);

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

HornetQ 文档的该部分写道:

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

显式指定服务器

使用发现。

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

谢谢, 萨米人

I want to implement a load balancing policy in HornetQ that depends on the IP Addresses of the nodes. For example, if a specified node is available connect it to it, otherwise connect to a random node.
However, the ConnectionLoadBalancingPolicy interface only gives me the input as a number

int select (int max);

Let's assume that the max is three, I want to know the IP Address of 0,1,2 before selecting the node. Is that possible?

It is written in that section in HornetQ documentation:

The set of servers over which the factory load balances can be
determined in one of two ways:

Specifying servers explicitly

Using discovery.

So how can I get them using discovery and match them to the max number I get from ConnectionLoadBalancingPolicy ?

Thanks,
Sami

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

旧人 2024-12-12 06:22:24

您可以通过执行以下操作在客户端的 ServerLocator 上指定自定义负载均衡器,

ServerLocator locator = ....

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

但是当前版本不允许您访问拓扑阵列。

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

You can specify a custom Load Balancer at the Client's ServerLocator by doing

ServerLocator locator = ....

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

However the current version doesn't allow you access at the topology array.

We should change our implementation to send the topologyArray to the select method. If you open a JIRA we will take care of that.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文