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