ज़ूकीपर के पुर्ज़ों को इस तरह से डिज़ाइन किया गया है कि वे हर तरह से काम करते रहें और डेटा खोने के बावजूद भी काम करते रहें एक या ज़्यादा ZooKeeper नोड. इस बदलाव का इस्तेमाल, बेहतर रखरखाव करने के लिए किया जा सकता है बिना सिस्टम डाउनटाइम वाले ZooKeeper नोड.
ZooKeeper और Edge के बारे में जानकारी
Edge में, ZooKeeper नोड में, इसकी जगह और कॉन्फ़िगरेशन के बारे में कॉन्फ़िगरेशन डेटा होता है अलग-अलग एज कॉम्पोनेंट को पढ़ सकता है. साथ ही, कॉन्फ़िगरेशन के बदलावों के अलग-अलग कॉम्पोनेंट की सूचना देता है. सभी प्रोडक्शन सिस्टम के लिए इस्तेमाल की जा सकने वाली Edge टोपोलॉजी, कम से कम तीन ZooKeeper का इस्तेमाल करती है नोड.
इसमें ZK_HOSTS
और ZK_CLIENT_HOSTS
प्रॉपर्टी का इस्तेमाल करें
ZooKeeper नोड की जानकारी देने के लिए Edge कॉन्फ़िगरेशन फ़ाइल. उदाहरण के लिए:
ZK_HOSTS="$IP1 $IP2 $IP3" ZK_CLIENT_HOSTS="$IP1 $IP2 $IP3"
कहां:
ZK_HOSTS
, ZooKeeper नोड के आईपी पते के बारे में बताता है. आईपी पते सभी ZooKeeper नोड पर इसी क्रम में सूचीबद्ध होने चाहिए.मल्टी-डेटा सेंटर एनवायरमेंट में, सभी डेटा सेंटर के सभी ZooKeeper नोड की सूची बनाएं.
ZK_CLIENT_HOSTS
इसके ज़रिए इस्तेमाल किए जाने वाले ZooKeeper नोड के आईपी पते के बारे में बताता है सिर्फ़ डेटा सेंटर. आईपी पते, डेटा सेंटर.किसी एक डेटा सेंटर इंस्टॉलेशन में, ये वही नोड होते हैं जिन्हें ZK_HostS ने तय किया है. में मल्टी-डेटा सेंटर एनवायरमेंट में है, तो हर डेटा सेंटर के लिए Edge कॉन्फ़िगरेशन फ़ाइल में सिर्फ़ उस डेटा सेंटर के लिए ZooKeeper नोड.
डिफ़ॉल्ट रूप से, सभी ZooKeeper नोड, वोटर नोड के तौर पर तय होते हैं. इसका मतलब है कि नोड
वे सभी लोग ZooKeeper में लीडर चुनने के लिए इस मुहिम में हिस्सा लेते हैं. आप
यह दिखाने के लिए ZK_HOSTS
के साथ :observer
मॉडिफ़ायर
यह नोड ऑब्ज़र्वर नोड है, न कि वोटर. ऑब्ज़र्वर नोड इसमें शामिल नहीं होता है
नेता का चुनाव.
आम तौर पर, एक से ज़्यादा Edge डेटा बनाते समय आप :observer
मॉडिफ़ायर तय करते हैं
सेंटर या जब एक डेटा सेंटर में बड़ी संख्या में ZooKeeper नोड हों. उदाहरण के लिए,
दो डेटा सेंटर के साथ 12-होस्ट एज इंस्टॉलेशन, डेटा सेंटर 2 में नोड 9 पर Zoo Keeper है
ऑब्ज़र्वर:
इसके बाद, डेटा सेंटर 1 के लिए, अपनी कॉन्फ़िगरेशन फ़ाइल में इन सेटिंग का इस्तेमाल करें:
ZK_HOSTS="$IP1 $IP2 $IP3 $IP7 $IP8 $IP9:observer" ZK_CLIENT_HOSTS="$IP1 $IP2 $IP3"
और डेटा सेंटर 2 के लिए:
ZK_HOSTS="$IP1 $IP2 $IP3 $IP7 $IP8 $IP9:observer" ZK_CLIENT_HOSTS="$IP7 $IP8 $IP9"
नीचे दिए गए सेक्शन में नेता, मतदाता, और ऑब्ज़र्वर नोड जोड़ना और वोटर और ऑब्ज़र्वर नोड जोड़ने से जुड़े विचारों के बारे में बताना.
लीडर, फ़ॉलोअर, वोटर, और ऑब्ज़र्वर
कई नोड वाले ZooKeeper इंस्टॉलेशन में, किसी एक नोड को लीडर के तौर पर तय किया जाता है. बाकी सभी ZooKeeper नोड, फ़ॉलोअर के तौर पर तय किए जाते हैं. हालांकि, किसी भी डिवाइस से पढ़ा जा सकता है ZooKeeper नोड में लिखने के सभी अनुरोध लीडर को फ़ॉरवर्ड किए जाते हैं. उदाहरण के लिए, एक नया संदेश प्रोसेसर को Edge में जोड़ा गया है. यह जानकारी ZooKeeper लीडर को दी जाती है. सभी अनुसरणकर्ता फिर डेटा को कॉपी कर सकते हैं.
Edge इंस्टॉल करते समय, हर ZooKeeper नोड को वोटर या ऑब्ज़र्वर के तौर पर तय किया जाता है. कॉन्टेंट बनाने इसके बाद, ZooKeeper नोडल वोटर के लिए, सभी वोटर चुने जाते हैं. किसी के चुनाव के लिए एक ज़रूरी शर्त लीडर का मानना है कि ZooKeeper में वोटर नोड की ज़रूरी संख्या कोरुम करने की सुविधा ज़रूर उपलब्ध होनी चाहिए. ऐप्लिकेशन कोरम का मतलब है कि सभी डेटा सेंटर में, सभी वोटर ज़ूकीपर नोड में से आधे से ज़्यादा काम करते हों.
अगर वोटरों के लिए तय की गई संख्या के हिसाब से कोरीम उपलब्ध नहीं है, तो किसी नेता को नहीं चुना जा सकता. इस स्थिति में, ज़ूकीपर अनुरोधों को पूरा नहीं कर सकता. इसका मतलब है कि Edge मैनेजमेंट को अनुरोध नहीं किया जा सकता सर्वर, Management API के अनुरोधों को प्रोसेस करें या कोरोम के वापस आने तक Edge यूज़र इंटरफ़ेस (यूआई) में लॉग इन करें.
उदाहरण के लिए, किसी एक डेटा सेंटर इंस्टॉलेशन में:
- आपने तीन ZooKeeper नोड इंस्टॉल किए हैं
- सभी ZooKeeper नोड, वोटर होते हैं
- कोरम में दो काम करने वाले मतदाता केंद्र शामिल हैं
- अगर सिर्फ़ एक वोटर नोड उपलब्ध होता है, तो ZooKeeper एन्सेम्बल काम नहीं करता
दो डेटा सेंटर वाले इंस्टॉलेशन में:
- आपने कुल छह नोड के लिए, हर डेटा सेंटर में तीन ZooKeeper नोड इंस्टॉल किए हैं
- डेटा सेंटर 1 में तीन वोटर नोड हैं
- डेटा सेंटर 2 में दो वोटर नोड और एक ऑब्ज़र्वर नोड है
- कोरम, दोनों डेटा सेंटर पर मौजूद पांच मतदाताओं के वोटों की संख्या पर आधारित होता है. इसलिए, तीन काम करने वाले मतदाता नोड
- अगर सिर्फ़ दो या उससे कम वोटर नोड उपलब्ध हैं, तो ZooKeeper ग्रुप, फ़ंक्शन
वोटर के तौर पर नोड जोड़ने या ऑब्ज़र्वर
सिस्टम से जुड़ी ज़रूरतों के लिए, आपको Edge में अतिरिक्त ZooKeeper नोड जोड़ने होंगे इंस्टॉल करना. ZooKeeper नोड जोड़ना दस्तावेज़ बताया गया है कि Edge में अतिरिक्त ZooKeeper नोड कैसे जोड़े जाते हैं. ZooKeeper नोड जोड़ते समय, आपको ये काम करने होंगे जोड़ने के लिए नोड के टाइप पर ध्यान दें: वोटर या ऑब्ज़र्वर.
आप यह पक्का करना चाहते हैं कि पर्याप्त वोटर नोड उपलब्ध हों, ताकि एक या एक से ज़्यादा वोटर नोड बंद हो सकें के उपलब्ध हैं. वोटर नोड जोड़ने पर, कोरम बढ़ाई जा सकती है. इससे आपको यह काम करने में आसानी होगी ज़्यादा से ज़्यादा वोटर नोड को बर्दाश्त किए जा सकेंगे.
हालांकि, अतिरिक्त वोटर नोड जोड़ने से, लिखने की परफ़ॉर्मेंस पर बुरा असर पड़ सकता है, क्योंकि लीडर की सहमति के लिए, ज़रूरी कार्रवाइयों को पूरा करना ज़रूरी है. लीडर तय करने में लगने वाला समय यह संख्या, वोटर नोड की संख्या पर आधारित होती है. यह संख्या बढ़ने पर बढ़ती है. इसलिए, आप सभी नोड को मतदाता नहीं बनाना चाहते.
वोटर नोड जोड़ने के बजाय, ऑब्ज़र्वर नोड जोड़े जा सकते हैं. ऑब्ज़र्वर नोड जोड़ने से बढ़ोतरी होती है सिस्टम, लीडर चुने जाने के काम में कोई जोड़े बिना परफ़ॉर्मेंस को पढ़ता है. इसकी वजह यह है कि ऑब्ज़र्वर नोड वोट नहीं करते हैं और इससे कोरम के साइज़ पर कोई असर नहीं पड़ता है. इसलिए, अगर कोई ऑब्ज़र्वर नोड जाता है नहीं, तो इसका कोई नेता चुनने के लिए ग्रुप के लोगों की क्षमता पर कोई असर नहीं पड़ेगा. हालांकि, ऑब्ज़र्वर से नोड के ज़रिए सेवा डेटा के अनुरोधों के लिए कम नोड उपलब्ध हैं.
किसी एक डेटा सेंटर में, Apigee के पास यह सुझाव होता है कि आपके पास पांच से ज़्यादा मतदाता न हों ऑब्ज़र्वर नोड की संख्या का पता लगाता है. दो डेटा सेंटर में, Apigee का सुझाव है कि आप नौ से ज़्यादा मतदाता (एक डेटा सेंटर में पांच और दूसरे में चार). फिर आप जितने चाहें उतने जोड़ सकते हैं ऑब्ज़र्वर नोड डालें.
ज़ूकीपर नोड हटाना
ज़ूकीपर नोड को हटाने की कई वजहें हो सकती हैं; उदाहरण के लिए, नोड ने गड़बड़ी है या इसे गलत एनवायरमेंट में जोड़ दिया गया है.
इस सेक्शन में बताया गया है कि नोड के बंद होने और न होने पर, ज़ूकीपर नोड को कैसे हटाया जाए पहुंच सकते हैं.
ज़ूकीपर नोड हटाने के लिए:
- अपनी साइलेंट कॉन्फ़िगरेशन फ़ाइल में बदलाव करें और उस Zookeeper नोड का आईपी पता हटा दें को हटाना है.
- बाकी के ZooKeeper को फिर से कॉन्फ़िगर करें, इसके लिए Zookeeper के लिए
setup
कमांड फिर से चलाएं नोड:/opt/apigee/apigee-service/bin/apigee-service apigee-zookeeper setup -f updated_config_file
- सभी ज़ूकीपर नोड रीस्टार्ट करें:
/opt/apigee/apigee-service/bin/apigee-service apigee-zookeeper restart
- मैनेजमेंट सर्वर नोड को फिर से कॉन्फ़िगर करें:
/opt/apigee/apigee-service/bin/apigee-service edge-management-server setup -f updated_config_file
/opt/apigee/apigee-service/bin/apigee-service edge-management-server restart
- सभी राऊटर को फिर से कॉन्फ़िगर करें:
/opt/apigee/apigee-service/bin/apigee-service edge-router setup -f updated_config_file
/opt/apigee/apigee-service/bin/apigee-service edge-router restart
- सभी मैसेज प्रोसेसर को फिर से कॉन्फ़िगर करें:
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor setup -f updated_config_file
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
- सभी Qpid नोड फिर से कॉन्फ़िगर करें:
/opt/apigee/apigee-service/bin/apigee-service edge-qpid-server setup -f updated_config_file
/opt/apigee/apigee-service/bin/apigee-service edge-qpid-server restart
- सभी Postgres नोड फिर से कॉन्फ़िगर करें:
/opt/apigee/apigee-service/bin/apigee-service edge-postgres-server setup -f updated_config_file
/opt/apigee/apigee-service/bin/apigee-service edge-postgres-server restart
रखरखाव से जुड़ी ज़रूरी बातें
अगर आपको किसी डाउनटाइम के बिना पूरी तरह से काम कर रहे ग्रुप में ZooKeeper का रखरखाव करना होता है, तो इसे एक बार में एक नोड पर किया. यह पक्का करके कि सिर्फ़ एक ZooKeeper नोड नीचे दिया गया है किसी भी एक बार, आप यह सुनिश्चित कर सकते हैं कि लीडर.
पूरे डेटा का रखरखाव एक से ज़्यादा डेटा सेंटर
एक से ज़्यादा डेटा सेंटर के साथ काम करते समय, याद रखें कि ZooKeeper एन्सेम्बल और डेटा सेंटर के बीच अंतर कर सकते हैं. ZooKeeper के असेंबली मोड में, सभी ZooKeeper नोड दिखते हैं डेटा सेंटर, एक तरह के कलेक्शन के तौर पर.
जब ZooKeeper अपना काम करता है, तब किसी डेटा सेंटर में वोटर नोड की जगह की जानकारी का इस्तेमाल नहीं किया जाता कोरुम कैलकुलेशन. अलग-अलग नोड सभी डेटा सेंटर में नीचे जा सकते हैं, लेकिन जब तक कोरम पूरे संग्रह में संरक्षित, ज़ूकीपर काम करता है.
रखरखाव के लिए ज़रूरी बातें
कई बार, आपको रखरखाव के लिए ZooKeeper नोड या वोटर हटाना पड़ता है नोड या ऑब्ज़र्वर नोड डालें. उदाहरण के लिए, आपको नोड पर Edge का वर्शन अपग्रेड करना पड़ सकता है, ऐसा हो सकता है कि ZooKeeper होस्ट करने वाली मशीन काम न करे या नोड किसी अन्य प्लैटफ़ॉर्म के लिए उपलब्ध न हो जैसे कि नेटवर्क की गड़बड़ी.
अगर नीचे जाने वाला नोड एक ऑब्ज़र्वर नोड है, तो आप नोड को पहले जैसा किए जाने तक, ZooKeeper एनसंबल की परफ़ॉर्मेंस देखी जा सकती है. अगर नोड वोटर है नोड के नुकसान की वजह से, नेता के तौर पर चुनाव की प्रक्रिया में हिस्सा लेती हैं. मतदाता नोड के जाने की वजह चाहे जो भी हो साथ ही, उपलब्ध वोटर नोड की संख्या को बनाए रखना ज़रूरी है.
रखरखाव की प्रक्रिया
रखरखाव प्रक्रिया पूरी करने के बाद ही यह पक्का करें कि ZooKeeper एन्सेम्बल काम कर रहा है. इसके तहत यह माना जाता है कि ऑब्ज़र्वर नोड काम करते हैं और कोरम बरकरार रखने के लिए, रखरखाव के दौरान वोटर नोड उपलब्ध रहेंगे.
ये शर्तें पूरी होने पर, ज़ूकीपर का आर्बिट्रेरी ग्रुप, डेटा की हानि या परफ़ॉर्मेंस पर कोई अहम असर न डाले बिना, किसी भी नोड का खोना. यह इसका मतलब है कि एन्सेंबल में किसी भी नोड का रखरखाव किया जा सकता है, बशर्ते वह एक पर हो नोड पर जाएं.
रखरखाव के दौरान, नीचे दी गई प्रोसेस का इस्तेमाल करके, ज़ूकीपर नोड (लीडर, वोटर या ऑब्ज़र्वर):
- अगर इसे ZooKeeper नोड पर इंस्टॉल नहीं किया जाता है, तो
nc
इंस्टॉल करें:sudo yum install nc
- नोड पर यहां दिया गया
nc
कमांड चलाएं, जहां 2181 ZooKeeper पोर्ट है:echo stat | nc localhost 2181
आपको इस फ़ॉर्म में आउटपुट दिखेगा:
Zookeeper version: 3.4.5-1392090, built on 09/30/2012 17:52 GMT Clients: /a.b.c.d:xxxx[0](queued=0,recved=1,sent=0) Latency min/avg/max: 0/0/0 Received: 1 Sent: 0 Connections: 1 Outstanding: 0 Zxid: 0xc00000044 Mode: follower Node count: 653
नोड के आउटपुट की
Mode
लाइन में, आपकोobserver
दिखना चाहिए.leader
याfollower
(एक ऐसा मतदाता जो नेता नहीं है) नोड कॉन्फ़िगरेशन के हिसाब से. - हर ZooKeeper नोड पर पहले और दूसरे चरण को दोहराएं.
खास जानकारी
ZooKeeper एन्सेम्बल पर रखरखाव करने का सबसे अच्छा तरीका यह है कि उसे एक समय. ध्यान दें:
- आपको एन्सेम्बल हमेशा काम करता रहता है.
- ऑब्ज़र्वर नोड हटाने से कोरमेंस या लीडर चुनने की क्षमता पर कोई असर नहीं पड़ता.
- सभी डेटा सेंटर में सभी ZooKeeper नोड में कोरम की गिनती होती है.
- पहले वाले सर्वर के काम करने के बाद, अगले सर्वर के रखरखाव के लिए आगे बढ़ें.
- ZooKeeper नोड की जांच करने के लिए,
nc
कमांड का इस्तेमाल करें.