Haproxy'yi yeniden başlatmadan haproxy'ye daha fazla arka uç sunucusu eklemenin bir yolu var mı?


17

Talep üzerine daha fazla arka uç sunucusu ekleyebilmek istiyoruz. Şu anda haproxy'yi yeniden başlatmadan yapılandırma dosyasına daha fazla arka uç sunucusu eklemenin bir yolunu göremiyorum.

Yanıtlar:


15

Bu özel kullanım durumunu test etmedim ama haproxy "sıcak yeniden yükleme" yi destekliyor:

2.4.1) Hot reconfiguration
--------------------------
The '-st' and '-sf' command line options are used to inform previously running
processes that a configuration is being reloaded. They will receive the SIGTTOU
signal to ask them to temporarily stop listening to the ports so that the new
process can grab them. If anything wrong happens, the new process will send
them a SIGTTIN to tell them to re-listen to the ports and continue their normal
work. Otherwise, it will either ask them to finish (-sf) their work then softly
exit, or immediately terminate (-st), breaking existing sessions. A typical use
of this allows a configuration reload without service interruption :

 # haproxy -p /var/run/haproxy.pid -sf $(cat /var/run/haproxy.pid)

Haproxy'yi başlatmak ve durdurmak için bir init betiğiniz varsa, büyük olasılıkla aşağıdaki reloadgibi bir işlevle argümanı destekler :

haproxy_reload()
{
    $HAPROXY -f "$CONFIG" -p $PIDFILE -D $EXTRAOPTS -sf $(cat $PIDFILE) \
        || return 2
    return 0
}

1
Bunu denedim ama sayaçlarımı temizlediğini gördüm. Belki de yanlış bir şey yapıyorum ya da beklenen bir davranış mı?
Leandro López

6

Kılavuzdan:

> 1.6) Süreç yönetimine yardımcı olma

Haproxy artık pidfile kavramını destekliyor. '-P' komut satırı argümanı veya 'pidfile' global seçeneğinin ardından bir dosya adı gelirse, bu dosya kaldırılır ve her satırda bir tane olmak üzere tüm çocuk pideleriyle doldurulur (yalnızca arka plan modunda). Bu dosya, salt okunur bir krootla çalışmanıza izin veren kroot içinde DEĞİLDİR. İşlemi başlatan kullanıcının sahibi olacak ve 0644 izinlerine sahip olacak.

Misal :

global
    daemon
    quiet
    nbproc  2
    pidfile /var/run/haproxy-private.pid

# to stop only those processes among others :
# kill $(</var/run/haproxy-private.pid)

# to reload a new configuration with minimal service impact and without
# breaking existing sessions :
# haproxy -f haproxy.cfg -p /var/run/haproxy-private.pid -sf $(</var/run/haproxy-private.pid)

1

Ayrıca, HA-proxy sürümünüze bağlı olarak, haproxy.com tarafından bu sayfada açıklandığı gibi HA-Proxy Dinamik API'sini dikkate almak isteyebilirsiniz: https://www.haproxy.com/blog/dynamic-scaling-for-microservices-with -runtime-api /

HA-Proxy Dinamik API'sı Enterprise sürümüyle birlikte gelir.

Her zamanki uygulama olarak sunucuları anında eklemek / kaldırmak istiyorsanız veya projeniz böyle bir kullanım durumunu ima ediyorsa, HA-Proxy Dinamik API'sini göz önünde bulundurmalısınız.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.