वहाँ haproxy को पुनः आरंभ किए बिना haproxy में अधिक बैकेंड सर्वर जोड़ने का एक तरीका है?


17

हम मांग पर अधिक बैकेंड सर्वर जोड़ने में सक्षम होना चाहते हैं। अभी मुझे haproxy को पुनः आरंभ किए बिना config फाइल में अधिक बैकएंड सर्वर जोड़ने का कोई तरीका नहीं दिखता है।

जवाबों:


15

मैंने इस विशिष्ट उपयोग के मामले का परीक्षण नहीं किया है, लेकिन haproxy एक "हॉट रीलोड" का समर्थन करता है:

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)

यदि आपके पास हाइपोक्सि को शुरू करने और रोकने के लिए एक init स्क्रिप्ट है, तो यह संभवत reload: एक फ़ंक्शन के साथ तर्क का समर्थन करता है:

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

1
मैंने यह कोशिश की है, लेकिन मैंने पाया है कि यह मेरे काउंटरों को साफ करता है। शायद मैं कुछ गलत तरीके से कर रहा हूं, या क्या यह अपेक्षित व्यवहार है?
लिएंड्रो लूपेज़

6

मैनुअल से:

> 1.6) प्रक्रिया प्रबंधन में मदद करना

हाप्रोसी अब पिडफाइल की धारणा का समर्थन करता है। यदि '-p' कमांड लाइन तर्क, या फ़ाइल नाम के साथ 'पिडफाइल' वैश्विक विकल्प का पालन किया जाता है, तो यह फ़ाइल हटा दी जाएगी, फिर सभी बच्चों के लिए, एक प्रति लाइन (केवल डेमॉन मोड में) भरी जाएगी। यह फ़ाइल चेरोट के भीतर नहीं है, जो आसानी से चेरोट के साथ काम करने की अनुमति देता है। यह प्रक्रिया शुरू करने वाले उपयोगकर्ता के स्वामित्व में होगी, और इसमें 0644 अनुमतियाँ होंगी।

उदाहरण :

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

अपने HA- ​​प्रॉक्सी संस्करण के आधार पर आप इस पृष्ठ में haproxy.com द्वारा वर्णित HA-Proxy डायनामिक API पर विचार करना चाह सकते हैं: https://www.haproxy.com/blog/dynamic-scaling-for-microservices-with -runtime-api /

हा-प्रॉक्सी डायनेमिक एपीआई एंटरप्राइज संस्करण के साथ आता है।

यदि आपको फ़्लाई पर सर्वर को सामान्य अभ्यास के रूप में जोड़ना है या हटाना है या यदि आपका प्रोजेक्ट इस तरह के उपयोग के मामले में है, तो आपको HA-Proxy डायनामिक API पर विचार करना चाहिए।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.