簡體   English   中英

如何使用PHP創建Load Balancer邏輯?

[英]How do I create a Load Balancer sort of logic using PHP?

我希望利用我的無限共享托管來創建幾個小型共享托管帳戶,以便將處理工作卸載到這些帳戶。 因此,我需要在PHP中創建一些邏輯以創建負載均衡器的基礎。

我有4個共享帳戶,一個是主站點,另一個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)];
}

upload.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>

可能會擺脫困境,但是,您可以使用隨機請求的方法來復制循環/ dns /嗎?

請重新考慮,您要分手的工作是什么? 什么樣的工作。

首先,您可以根據作業的某些參數平均分割作業,例如,每個參數都帶有一個提交作業的用戶名字段。 您在這些服務器之間划分了用戶群,並將適當的請求發送到指定的服務器。

另一種策略(更復雜的一種策略)是讓負載均衡器從這3個工作人員那里獲取一些基本信息,這些信息可以告訴每個工作人員的負載,而不是根據該負載分配工作。

我個人會選擇復雜的方法,當然,如果給定的主題需要這樣做的話。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM