gpt4 book ai didi

erlang - 使用 Erlang,我应该如何在集群之间分配负载?

转载 作者:行者123 更新时间:2023-12-02 04:23:02 25 4
gpt4 key购买 nike

我正在查看从属/池模块,它看起来与我的类似想要,但似乎我的系统中存在单点故障应用程序(如果主节点出现故障)。

客户端有一个网关列表(为了后备 - 全部都做相同的东西)接受连接,并且从其中选择一个由客户随机。当客户端连接所有节点时检查哪个负载最少,然后查看负载最少的 IP加载的服务器被转发回客户端。那么客户连接到该服务器,一切都在那里执行。

总之,我希望所有节点都充当网关并且实际上处理客户请求。仅当以下情况时才进行负载平衡客户端最初连接 - 所有实际数据包并在客户端的“主”节点。

我该怎么做?

最佳答案

我不知道是否已经实现了这个模块,但我可以说,负载平衡被高估了。我可以说的是,随机分配工作是最好的选择,除非您知道更多信息,了解 future 的负载情况,而在大多数情况下,您确实不知道。你写的:

When the client connects all nodes are examined to see which has the least load and then the IP of the least- loaded server is forwarded back to the client.

你怎么知道所有那些负载最少的节点不会在下一个毫秒内负载最高?您如何知道您不会包含在列表中的所有高负载节点不会在下一个毫秒内降低负载?除非你遇到非常罕见的情况,否则你真的无法知道这一点。

只需测量(或计算)节点的性能并根据它设置节点被选择的概率。无论当前负载如何,随机选择节点。将此作为初始方法。当你设置好之后,你就可以尝试编写一些更复杂的算法。我敢打赌,要打败这个最初的方法将是非常困难的工作。相信我,非常难。

编辑:为了在一个微妙的细节上更清楚,我强烈认为您无法根据当前和历史负载预测 future 负载,但您应该使用有关任务持续时间概率和当前分解的知识任务的生命周期。这项工作很难实现。

关于erlang - 使用 Erlang,我应该如何在集群之间分配负载?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/662131/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com