सेवा के बारे में
अनुवादितमैं असिंक्रोनस, इवेंट-ड्रिवन बैकएंड डिज़ाइन और बनाता हूँ जो सेवाओं को एक-दूसरे से स्वतंत्र बनाते हैं, विफलताओं के प्रति लचीले होते हैं और बढ़ते लोड के लिए तैयार होते हैं। जब एक अनुरोध सभी डाउनस्ट्रीम चरणों के पूरा होने की प्रतीक्षा नहीं करता है, तो आपका API तेज़ रहता है और बैकग्राउंड कार्य अपनी गति से आगे बढ़ता है। पहले मैं संदेश प्रवाह का मॉडल बनाता हूँ: कौन से इवेंट महत्वपूर्ण हैं, कौन उन्हें प्रकाशित करता है, कौन उन्हें उपभोग करता है और त्रुटि पर क्या होना चाहिए। इस मॉडल का उपयोग करके मैं RabbitMQ या Kafka में वास्तविक टोपोलॉजी बनाता हूँ जिसमें स्पष्ट नाम, विचारशील रूटिंग और प्रत्येक कतार और विषय के लिए स्पष्ट जिम्मेदारी होती है।
RabbitMQ में मैं आपके वास्तविक मार्गों के लिए एक्सचेंज, कतारें और बाइंडिंग्स कॉन्फ़िगर करता हूँ, फिर ऐसे श्रमिक लिखता हूँ जो संदेशों को सही तरीके से स्वीकार करते हैं, समझदारी से प्रीफेच का उपयोग करते हैं और पुनः आरंभ पर डेटा नहीं खोते। मैं एक पुनः प्रयास नीति जोड़ता हूँ जिसमें एक्सपोनेंशियल बैकऑफ, फंसे हुए संदेशों के लिए डेड-लेटर एक्सचेंज और आइडेम्पोटेंट हैंडलर्स होते हैं ताकि पुनः वितरण से डबल चार्जिंग या डुप्लिकेट भेजने की समस्या न हो। उच्च मात्रा के स्ट्रीम के लिए मैं Kafka का उपयोग करता हूँ: विभाजित विषय, उपभोक्ता समूह, ऑफसेट प्रबंधन और इतिहास पुनः चलाना ताकि आप नए फीचर को लागू करने के बाद डेटा को फिर से प्रोसेस कर सकें। किसी भी तरह से मैं बैक-प्रेशर, ऑर्डरिंग गारंटी और लोड के तहत व्यवहार पर ध्यान केंद्रित करता हूँ, केवल आदर्श परिदृश्यों पर नहीं।
आपको बैकग्राउंड प्रोसेसिंग मिलती है जो स्पाइक्स और आउटेज को सहन करती है: भारी कार्य, सूचनाएँ, एकीकरण और डेटा पाइपलाइन्स ब्रोकर के माध्यम से प्रवाहित होते हैं बजाय इसके कि उपयोगकर्ताओं को ब्लॉक करें। मैं स्पष्ट प्रवाह आरेख, परीक्षण किए गए उत्पादक और उपभोक्ता, स्वास्थ्य जांच, मैट्रिक्स और डैशबोर्ड प्रदान करता हूँ, साथ ही ऑन-कॉल के लिए घटना रनबुक। मैं एक मौजूदा प्रणाली को बढ़ा सकता हूँ या एक नई प्रणाली को पूरी दस्तावेज़ीकरण के साथ शुरू कर सकता हूँ ताकि आपकी टीम आत्मविश्वास के साथ समाधान को आगे बढ़ा सके।
— टोपोलॉजी डिज़ाइन: एक्सचेंज, कतारें, विषय, विभाजन
— विश्वसनीय श्रमिक: ack, प्रीफेच, पुनः प्रयास, डेड-लेटर
— आइडेम्पोटेंसी, ऑर्डरिंग और वास्तविक लोड के तहत बैक-प्रेशर
— निगरानी, अलर्ट और उत्पादन रनबुक
RabbitMQ में मैं आपके वास्तविक मार्गों के लिए एक्सचेंज, कतारें और बाइंडिंग्स कॉन्फ़िगर करता हूँ, फिर ऐसे श्रमिक लिखता हूँ जो संदेशों को सही तरीके से स्वीकार करते हैं, समझदारी से प्रीफेच का उपयोग करते हैं और पुनः आरंभ पर डेटा नहीं खोते। मैं एक पुनः प्रयास नीति जोड़ता हूँ जिसमें एक्सपोनेंशियल बैकऑफ, फंसे हुए संदेशों के लिए डेड-लेटर एक्सचेंज और आइडेम्पोटेंट हैंडलर्स होते हैं ताकि पुनः वितरण से डबल चार्जिंग या डुप्लिकेट भेजने की समस्या न हो। उच्च मात्रा के स्ट्रीम के लिए मैं Kafka का उपयोग करता हूँ: विभाजित विषय, उपभोक्ता समूह, ऑफसेट प्रबंधन और इतिहास पुनः चलाना ताकि आप नए फीचर को लागू करने के बाद डेटा को फिर से प्रोसेस कर सकें। किसी भी तरह से मैं बैक-प्रेशर, ऑर्डरिंग गारंटी और लोड के तहत व्यवहार पर ध्यान केंद्रित करता हूँ, केवल आदर्श परिदृश्यों पर नहीं।
आपको बैकग्राउंड प्रोसेसिंग मिलती है जो स्पाइक्स और आउटेज को सहन करती है: भारी कार्य, सूचनाएँ, एकीकरण और डेटा पाइपलाइन्स ब्रोकर के माध्यम से प्रवाहित होते हैं बजाय इसके कि उपयोगकर्ताओं को ब्लॉक करें। मैं स्पष्ट प्रवाह आरेख, परीक्षण किए गए उत्पादक और उपभोक्ता, स्वास्थ्य जांच, मैट्रिक्स और डैशबोर्ड प्रदान करता हूँ, साथ ही ऑन-कॉल के लिए घटना रनबुक। मैं एक मौजूदा प्रणाली को बढ़ा सकता हूँ या एक नई प्रणाली को पूरी दस्तावेज़ीकरण के साथ शुरू कर सकता हूँ ताकि आपकी टीम आत्मविश्वास के साथ समाधान को आगे बढ़ा सके।
— टोपोलॉजी डिज़ाइन: एक्सचेंज, कतारें, विषय, विभाजन
— विश्वसनीय श्रमिक: ack, प्रीफेच, पुनः प्रयास, डेड-लेटर
— आइडेम्पोटेंसी, ऑर्डरिंग और वास्तविक लोड के तहत बैक-प्रेशर
— निगरानी, अलर्ट और उत्पादन रनबुक