Nasıl PHP kullanarak bir mantık Yük Dengeleyici tür oluşturabilirim?

3 Cevap php

Ben yararlanmak isteyen benim sınırsız ben işleme boşaltması birkaç küçük hosting hesapları oluşturmak için barındırma paylaştı. Yani bir yük dengeleyici temellerini oluşturmak için PHP bazı mantık oluşturmanız gerekir.

Ben 4 ortak hesapları var, bir ana site ve diğer 3 işleme sunucu hesapları olduğunu. Please see image.

Ben hangi sunucu sonraki işleme işi geçmek için belirlemek nasıl bilmek istiyorum? Ben geçti ve birinden diğerine gitmek son sunucuya bir değişken tutmak mı? vb

En iyi yöntemi nedir?

3 Cevap

Benim KISS Tinpot önerim rastgele bir sunucu seçmek için formu göndermeden üzerine JavaScript kullanmak olacaktır.

Yükleme sayfası kullanmak bir liste mevcut sunucular ana sunucudan bir JS dosyası olarak servis edilmelidir. Bir cron işi sadece hayatta sunucuların seçiminde kadar emin olmak için periyodik olarak bu listeyi güncellemek gerekir.

Basit bir örnek:

servers.js (hosted on main server, auto-generated):

/* 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>

Kanca gidiyor olabilir, ancak, rasgele istekleri bir yöntem kullanılarak / yuvarlak robin / dns Reproduct olabilir?

Lütfen tekrar düşün, sen kırmaya çalışıyoruz bu işler nelerdir? Ne tür işler.

İlk cevap, sen eşit iş bir parametresi temelinde işleri bölünmüş olabilir, gibi her bir parametre işi teslim bir kullanıcı adı alanı ile birlikte geliyor, diyelim. O sunucuları arasında userbase bölünmüş ve belirli bir sunucuya uygun isteği gönderin.

Diğer strateji - daha karmaşık bir - yük dengeleyici o yük dayandırarak işleri dağıtmak yerine, bunların her birinin yükü söylerdim ki, bu 3 işçilerin bazı temel bilgileri tarifesi için olacaktır.

Verilen konu gerektirecektir olsaydı ben personaly tabii, karmaşık yöntemi için gitmek istiyorum.