Domanda

Mi sto chiedendo se c'è un modo per fare il bilanciamento del carico elastico.Ho letto su Haproxy ma sembra che io abbia bisogno di abbattere l'aproxy per riconfigurarlo per lavorare con più o meno macchine.

Per rendere la foto più chiara: ho un cluster di backend web (diciamo Apache + Mod_rails).Posso monitorare l'utilizzo dei backend e far apparire un'altra macchina con lo stesso contenuto molto rapidamente (nell'ordine dei secondi) se il traffico diventa molto alto.Tuttavia, non so come rendere Haproxy utilizzare i backend aggiuntivi senza riavviarlo (danneggia disponibilità).C'è un modo usando Haproxy o qualche altro bilanciatore di carico per farlo?

Stavo pensando che potrebbe esserci un modo per avere due bilanciatori di carico per la ridondanza.Allora potrei abbattermi, aggiornare la sua configurazione, riportalo indietro e poi abbatti l'altro.Ma non ho una buona idea su come farlo.

È stato utile?

Soluzione

Se è necessario aggiungere nuovi server, devi riavviarlo, anche se è quasi inosservabile quando si avvia il nuovo processo con "-SF $ OldPid", poiché il nuovo e vecchio processo funziona in Parallelo.

Se è necessario disabilitare temporaneamente un server, hai diverse opzioni:

1) (il preferito): abilitare "opzione http-on-on-404" e manipolare la risposta di controllo del server per il ritorno 404. Ciò disabiliterà nuove connessioni ma consentirà comunque gli utenti esistenti di completare la loro sessione. Quindi organizzi per restituire 500 e puoi fermare il tuo processo. Il vantaggio di questo metodo è che non è mai necessario toccare il LB, tutto è controllato dal server su cui stai funzionando. È così che la maggior parte delle infrastrutture sensibili lo fa.

2) Easy One: Uso di SOCAT, connettersi alla presa Statistiche e disabilitare il server che intendi lavorare su:

printf "disable server 1\n" | socat stdio unix-connect:/var/state/haproxy.stat
.

Quindi abilitalo una volta terminato:

printf "enable server 1\n" | socat stdio unix-connect:/var/state/haproxy.stat
.

Finché non stai modificando la configurazione, non c'è motivo di riavvio, anche se rimane non rilevato.

Altri suggerimenti

Se hai un budget per questo, quindi guarda www.zeus.com.La nuova versione, in poche settimane offre questo fuori dagli schemi, ma è anche possibile utilizzare la versione esistente per fornire il monitoraggio del livello di servizio e quindi utilizzare un linguaggio di scripting e API per creare la funzionalità Auto-Provisioning per i server back-end.

Gli evas gratuiti sono disponibili come una licenza per sviluppatori in modo da poter modellare ciò che stai cercando di raggiungere il costo.

Il software Zeus è disponibile anche da un certo numero di provider cloud se si desidera scendere a quella rotta ad un certo punto.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top