Redis और RabbitMQ दोनों के मूल्यांकन के बाद मैंने निम्नलिखित कारणों के लिए RabbitMQ को अपना ब्रोकर चुना:
- RabbitMQ आपको ब्रोकर को भेजने वाले डेटा को एन्क्रिप्ट करने के लिए SSL प्रमाणपत्रों का उपयोग करके सुरक्षा की एक अंतर्निहित परत का उपयोग करने की अनुमति देता है और इसका मतलब है कि कोई भी आपके डेटा को सूँघ नहीं पाएगा और आपके महत्वपूर्ण संगठनात्मक डेटा तक पहुँच प्राप्त कर सकता है।
- RabbitMQ एक बहुत ही स्थिर उत्पाद है जो बड़ी मात्रा में घटनाओं को प्रति सेकंड और कई कनेक्शनों को बोतल की गर्दन के बिना संभाल सकता है।
- हमारे संगठन में हमने पहले से ही RabbitMQ का उपयोग किया था और इसे उपयोग करने के बारे में अच्छा आंतरिक ज्ञान था और शेफ के साथ पहले से तैयार एकीकरण था।
स्केलिंग के बारे में, RabbitMQ में एक बिल्ट इन क्लस्टर कार्यान्वयन है जिसे आप एक निरर्थक ब्रोकर वातावरण को लागू करने के लिए लोड बैलेंसर के अतिरिक्त उपयोग कर सकते हैं।
क्या मेरा RabbitMQ क्लस्टर एक्टिव या एक्टिव पैसिव है?
अब RabbitMQ का उपयोग करने के कमजोर बिंदु पर:
- अधिकांश लोगस्टैश शिप्स RabbitMQ का समर्थन नहीं करते हैं, लेकिन दूसरी ओर, बेवर नाम के सर्वश्रेष्ठ व्यक्ति का एक कार्यान्वयन है, जो एक समस्या के बिना RabbitMQ को डेटा भेजेगा।
- बीवर ने अपने वर्तमान संस्करण में RabbitMQ के साथ जो कार्यान्वयन किया है, वह प्रदर्शन (मेरे उद्देश्यों के लिए) पर थोड़ा धीमा है और एक सर्वर से 3000 घटनाओं / सेकंड की दर को संभालने में सक्षम नहीं था और समय-समय पर सेवा दुर्घटनाग्रस्त हो गई।
- अभी मैं एक फिक्स पर काम कर रहा हूं, जो रैबिटक्यू के लिए प्रदर्शन की समस्या को हल करेगा और बीवर शिपर को और अधिक स्थिर बना देगा। पहला समाधान अधिक प्रक्रियाओं को जोड़ना है जो एक साथ चल सकते हैं और शिपर को अधिक शक्ति देंगे। दूसरा उपाय यह है कि बीवर को खरगोशों को डेटा भेजने के लिए बदलकर अतुल्यकालिक रूप से किया जाए जो सैद्धांतिक रूप से बहुत तेज होना चाहिए। मुझे उम्मीद है कि मैं इस सप्ताह के अंत तक दोनों समाधानों को लागू करना समाप्त कर दूंगा।
आप इस मुद्दे का अनुसरण कर सकते हैं:
https://github.com/josegonzalez/python-beaver/issues/33
और यहाँ पुल अनुरोध की जाँच करें:
https://github.com/josegonzalez/python-beaver/pull/624
यदि आपके पास अधिक प्रश्न हैं तो टिप्पणी छोड़ने के लिए स्वतंत्र महसूस करें।