1

我希望利用我的无限共享主机来创建几个小型共享主机帐户,我可以将处理卸载到这些帐户。所以我需要在 PHP 中创建一些逻辑来创建负载均衡器的基础知识。

我有 4 个共享帐户,一个是主站点,另一个是处理服务器帐户。请看图片

我想知道如何确定将下一个处理作业传递给哪个服务器?我是否保留了我传递到的最后一个服务器的变量并从一个服务器转到另一个服务器?等等

最好的方法是什么?

4

3 回答 3

3

我的 KISS Tinpot 建议是在提交表单时使用 JavaScript 随机选择服务器。

上传页面将使用的可用服务器列表应作为主服务器的 JS 文件提供。cron 作业应定期更新此列表,以确保只有活动的服务器可供选择。

简单的例子:

servers.js(托管在主服务器上,自动生成):

/* Auto Generated 01/01/2009 01:01:01 */
var Servers = new Array();
    Servers[0] = "42.81.240.101";
    Servers[1] = "42.81.240.120";
    Servers[2] = "42.81.240.199";

function LoadBalancer_GetIP()
{
    return Servers[Math.floor(Math.random() * Servers.length)];
}

上传.html:

<html>
    <head>
        <script type="text/javascript" src="servers.js"></script>
    </head>
    <body>
        <script type="text/javascript">
            function DoUpload() {
                TestForm.action = "http://"+LoadBalancer_GetIP()+"/upload.php";
                TestForm.submit();
            }
        </script>
        <form id="TestForm" method="POST" action="">
            <input type=button value="Upload" onclick="DoUpload()">
        </form>
    </body>
</html>
于 2009-06-07T21:30:17.237 回答
0

可能会摆脱困境,但是,您可以使用随机请求的方法复制循环/ dns / 吗?

于 2009-06-07T20:27:51.230 回答
0

请重新考虑一下,您要分手的工作是什么?什么样的工作。

首先对于答案,您可以根据作业的某些参数平均拆分作业,例如,每个参数都带有一个提交作业的用户名字段。您在这些服务器之间拆分用户群并将适当的请求发送到指定的服务器。

其他策略 - 更复杂的策略 - 是负载均衡器从这 3 个工作人员那里接收一些基本信息,这将告诉他们每个人的负载,而不是根据该负载分配工作。

我个人会选择复杂的方法,当然如果给定的主题需要的话。

于 2009-06-07T21:37:45.490 回答