2017-06-01 15 views
7

मेरे पास एक सर्वर है जो हमारे mysql सर्वर को संतुलित करने के लिए हैप्रोक्सी चलाता है। कुछ सर्वर नीचे जा सकते हैं जब हमारे पास व्यापक अवधि के लिए कम औसत भार होता है, लेकिन भविष्य में, यदि लोड फिर से ऊंचा हो जाता है, तो वे सर्वर स्वचालित रूप से ऊपर जाते हैं। समस्या तब होती है जब एक उदाहरण नीचे चला जाता है, हैप्रॉक्स कभी इसे फिर से नहीं देखता है, इसलिए जब इंस्टेंस फिर से होता है, तो इसे अनदेखा किया जाता है। इसे ठीक करने के लिए जब आवश्यक हो तो हम रीबूट करें। हो सकता है कि अगर मैं पुनः एक बड़ी संख्या यह हमारी समस्या का समाधान कर सकता है करने के लिए 2 से बदलनेHAPROXY सर्वर से नीचे आने पर यूपी

global 
    log 127.0.0.1 local0 notice 
    user haproxy 
    group haproxy 

defaults 
    log global 
    retries 2 
    timeout connect 3000 
    timeout server 5000 
    timeout client 5000 

listen mysql-cluster 
     bind 0.0.0.0:3306 
     mode tcp 
     option mysql-check user haproxy_check 
     balance leastconn 
     server mysql-1 ********:3306 check 
     server mysql-2 ********:3306 check 

:

यहाँ हमारे विन्यास फाइल है?

संपादित के रूप में अनुरोध किया है, यहाँ मेरी HAProxy संस्करण है:

$ haproxy -v 
HA-Proxy version 1.4.24 2013/06/17 
Copyright 2000-2013 Willy Tarreau <[email protected]> 

धन्यवाद

+0

बदलना 'retries' कुछ भी नहीं बदलेगा। बैकएंड कनेक्शन स्थापित करने पर यह पैरामीटर रीट्रीज़ को संदर्भित करता है * प्रयास * बैकएंड पर असफल रहता है कि हैप्रोक्सी विचार स्वस्थ था, भले ही यह नहीं है, जो दुर्लभ है। आप कह रहे हैं कि कोई प्रयास नहीं किया गया है, इसलिए यह लागू नहीं है। जब आप कहते हैं कि आपको रीबूट करना है ... आपको * क्या * रीबूट करना होगा? साथ ही, '********: 3306' एक आईपी पता या होस्टनाम है? –

+0

मुझे हैप्रोक्सी को रीबूट करने की आवश्यकता है, इसलिए यह फिर से कॉन्फ़िगरेशन फ़ाइल लोड करता है और दोनों सर्वरों के लिए कनेक्शन स्थापित करने का प्रयास करता है। '********: 3306' एक होस्टनाम है। –

+0

मुझे लगता है कि मुझे पता है कि समस्या क्या होगी। कृपया अपने हैप्रोक्सी संस्करण का जिक्र करें। ('haproxy -v') –

उत्तर

2

हम अपने एडब्ल्यूएस बुनियादी ढांचे में ऐसी ही स्थिति थी: HAProxy आरडीएस प्रतिकृतियां पहुँच के लिए हर मामले पर (हमारे पास 3 प्रतिकृतियां, लेकिन एप्लिकेशन केवल एक होस्टनाम के साथ काम करने में सक्षम)। हम Houtroxy को रूट 53 आंतरिक के साथ एक ही नाम के साथ एकाधिक रिकॉर्ड (उदाहरण के लिए db.example.internal) और वही वज़न (भारित रूट 53 नीति) का उपयोग करके वैश्विक स्तर पर इस मुद्दे को हल करते हैं। इसके अलावा हम प्रत्येक प्रतिकृति (टीसीपी 3306 पोर्ट चेक) के लिए रूट 53 स्वास्थ्य जांच बनाते हैं। हमारे लिए यह समाधान बहुत अच्छा काम करता है और यदि हमें आरडीएस प्रतिकृति को जोड़ने/हटाने की आवश्यकता है - एकमात्र जगह जहां हमें बदलने की जरूरत है - रूट 53 रिकॉर्ड और स्वास्थ्य जांच (हमें हर उदाहरण HAProxy स्थिति/conf को बनाए रखने की आवश्यकता नहीं है)

+0

आपका समाधान ठीक है, लेकिन क्या आपने यह पता लगाया है कि समस्या का कारण क्या है? क्या यह डीएनएस प्रश्नों को विफल करने के मामले में @ मॉरीसियो के सुझाव के रूप में है या कुछ और हैप्पीक्स का अजीब व्यवहार है? – ffeast

+0

@ टिम बिकबाव, इस मामले में, किस उदाहरण का उपयोग करने का निर्णय रूट 53 और हैप्रॉक्स द्वारा निपटाया गया है केवल रूट 53 पर रीडायरेक्ट करता है? अगर ऐसा है, तो हमें हैप्रोक्सी की ज़रूरत नहीं है, है ना? क्या हमारे उदाहरणों के लिए रूट बैलेंसर के रूप में रूट 53 का उपयोग करना संभव है? इस मामले में –

+0

@ मॉरीसिओ गियोरडानो हम एचएप्रोक्सी का उपयोग नहीं करेंगे - इसका मुख्य लाभ !!) सभी भार संतुलन रूट 53 स्तर + स्वास्थ्य जांच पर किया जाएगा –

संबंधित मुद्दे