Redis के साथ Pub/Sub बैकप्लेन
Redis pub/sub बैकप्लेन से अनेक WebSocket सर्वर इंस्टेंस जोड़ें, ताकि संदेश क्लाइंट तक पहुँचें, चाहे वे किसी भी नोड से जुड़े हों।
Redis के साथ Pub/Sub बैकप्लेन, CoddyKit पर WebSockets और रीयल-टाइम सिस्टम प्रोग्रामिंग का एक निःशुल्क पाठ है। यह 4 में से 4वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह WebSockets और रीयल-टाइम सिस्टम प्रोग्रामिंग सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। WebSockets और रीयल-टाइम सिस्टम प्रोग्रामिंग पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
बहु-इंस्टेंस की समस्या
जब आप क्षैतिज रूप से विस्तार करते हैं, तो क्लाइंट अलग-अलग सर्वर इंस्टेंस से जुड़ते हैं। नोड A पर प्रकाशित संदेश नोड B से जुड़े क्लाइंट तक नहीं पहुँचेगा, जब तक कि दोनों नोड उसे साझा न करें।
बैकप्लेन क्या करता है
बैकप्लेन एक साझा चैनल है, जिसकी सदस्यता हर इंस्टेंस लेता है। जब एक नोड को संदेश मिलता है, तो वह उसे बैकप्लेन पर प्रकाशित करता है और सभी नोड अपने स्थानीय क्लाइंट तक उसे पहुँचाते हैं।
Redis Pub/Sub क्यों
Redis pub/sub तेज़, सरल और व्यापक रूप से उपलब्ध है। प्रकाशक किसी चैनल पर भेजते हैं और सभी सदस्य उसे तुरंत प्राप्त करते हैं, इसलिए यह स्वाभाविक बैकप्लेन है।
दो Redis कनेक्शन
Redis को प्रकाशित करने और सदस्यता लेने के लिए अलग-अलग क्लाइंट चाहिए, क्योंकि सदस्यता वाला कनेक्शन सामान्य कमांड नहीं चला सकता।
const pub = redis.createClient();
const sub = redis.createClient();
await pub.connect();
await sub.connect();स्टार्टअप पर सदस्यता लेना
हर इंस्टेंस शुरू होते समय साझा चैनल की सदस्यता लेता है।
await sub.subscribe('ws-broadcast', (message) => {
deliverLocally(JSON.parse(message));
});नोड्स के बीच प्रकाशित करना
केवल स्थानीय सॉकेट को प्रसारण भेजने के बजाय Redis पर प्रकाशित करें, ताकि हर नोड उसे प्राप्त कर सके।
function broadcast(payload) {
pub.publish('ws-broadcast', JSON.stringify(payload));
}स्थानीय रूप से पहुँचाना
सदस्यता वाला कॉलबैक संदेश को उस विशिष्ट इंस्टेंस से जुड़े क्लाइंट तक बाँट देता है।
function deliverLocally(payload) {
for (const client of localClients) {
if (client.readyState === 1) client.send(JSON.stringify(payload));
}
}प्रतिध्वनि लूप से बचना
प्रकाशित करने वाला नोड भी सदस्यता के माध्यम से अपना संदेश प्राप्त करता है, इसलिए हर संदेश को दो बार भेजने के बजाय केवल बैकप्लेन पथ से एक बार पहुँचाएँ।
कमरे के आधार पर दायरा तय करना
कमरे पर आधारित ऐप में पेलोड के अंदर कमरा शामिल करें और हर नोड को केवल उस कमरे के अपने स्थानीय सदस्यों तक संदेश पहुँचाने दें, ताकि बैकप्लेन चैनलों की संख्या कम रहे।
pub.publish('ws-broadcast', JSON.stringify({ room: 'chat-1', data }));Redis Pub/Sub की सीमाएँ
Redis pub/sub भेजो-और-भूल-जाओ तरीके से काम करता है: ऑफ़लाइन सदस्य संदेश खो देते हैं और कोई स्थायित्व नहीं होता। स्थायित्व या पुनः चलाने के लिए Redis Streams या किसी विशेष संदेश-ब्रोकर पर विचार करें।
सर्वोत्तम अभ्यास
स्वस्थ बैकप्लेन चलाएँ:
- अलग-अलग pub और sub क्लाइंट का उपयोग करें
- सभी प्रसारणों को बैकप्लेन के माध्यम से भेजें
- काम कम करने के लिए संदेशों का दायरा कमरे तक सीमित करें
- जानें कि pub/sub संदेशों को स्थायी रूप से नहीं रखता
त्वरित जाँच
बैकप्लेन से जुड़े अपने ज्ञान की जाँच करें।
पुनरावलोकन
आपने Redis pub/sub बैकप्लेन तैयार किया:
- अलग-अलग प्रकाशन और सदस्यता क्लाइंट का उपयोग करें
- प्रसारणों को साझा चैनल पर प्रकाशित करें
- हर नोड अपने स्थानीय क्लाइंट तक संदेश पहुँचाए
- कमरे के आधार पर दायरा तय करें और भेजो-और-भूल-जाओ सीमाओं को स्वीकार करें
अब आपका WebSocket ऐप कई इंस्टेंस में विस्तार कर सकता है।
एआई शिक्षक के साथ WebSockets और रीयल-टाइम सिस्टम प्रोग्रामिंग सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 12
- पाठ
- 47
अक्सर पूछे जाने वाले प्रश्न
क्या “Redis के साथ Pub/Sub बैकप्लेन” पाठ निःशुल्क है?
हाँ—“Redis के साथ Pub/Sub बैकप्लेन” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और WebSockets और रीयल-टाइम सिस्टम प्रोग्रामिंग पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। WebSockets और रीयल-टाइम सिस्टम प्रोग्रामिंग पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
“Redis के साथ Pub/Sub बैकप्लेन” में मैं क्या सीखूँगा?
Redis pub/sub बैकप्लेन से अनेक WebSocket सर्वर इंस्टेंस जोड़ें, ताकि संदेश क्लाइंट तक पहुँचें, चाहे वे किसी भी नोड से जुड़े हों। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ WebSockets और रीयल-टाइम सिस्टम प्रोग्रामिंग का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या WebSockets और रीयल-टाइम सिस्टम प्रोग्रामिंग शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर WebSockets और रीयल-टाइम सिस्टम प्रोग्रामिंग शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 4वाँ पाठ है।
“Redis के साथ Pub/Sub बैकप्लेन” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस WebSockets और रीयल-टाइम सिस्टम प्रोग्रामिंग पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर WebSockets और रीयल-टाइम सिस्टम प्रोग्रामिंग पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- क्षैतिज स्केलिंग की रणनीतियाँ
- WebSockets का लोड संतुलन
- वितरित स्थिति प्रबंधन
- Redis के साथ Pub/Sub बैकप्लेन