Redis कैशिंग और संदेश-विनिमय (Pub/Sub, Streams) · पाठ

लंबित संदेशों और विफलताओं को संभालना

लंबित संदेशों को प्रबंधित करने, उपभोक्ता विफलताओं से उबरने और संदेशों को फिर से संसाधित करने की रणनीतियाँ जानिए।

पाठ 3, कुल 4 में से11 चरण

लंबित संदेशों और विफलताओं को संभालना, CoddyKit पर Redis कैशिंग और संदेश-विनिमय (Pub/Sub, Streams) का एक निःशुल्क पाठ है। यह 4 में से 3वाँ पाठ है। इस अध्ययन पथ के 3 तक कोई भी पाठ पूरा पढ़ना निःशुल्क है — इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ व्यावहारिक अभ्यास भी उपलब्ध कराता है। यह Redis कैशिंग और संदेश-विनिमय (Pub/Sub, Streams) सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Redis कैशिंग और संदेश-विनिमय (Pub/Sub, Streams) पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

लंबित संदेशों को समझना

Redis स्ट्रीम में, एक उपभोक्ता समूह कई उपभोक्ताओं को स्ट्रीम से संदेश संसाधित करने देता है।

जब कोई उपभोक्ता XREADGROUP का उपयोग करके संदेश पढ़ता है, तो वह तुरंत हटाया नहीं जाता। इसके बजाय, उस उपभोक्ता के लिए उसे लंबित चिह्नित कर दिया जाता है।

यदि कोई उपभोक्ता क्रैश हो जाए या XACK का उपयोग करके संदेश की पुष्टि करने में विफल रहे, तो वह संदेश लंबित बना रहता है। इससे डेटा की हानि नहीं होती, लेकिन इसका अर्थ यह भी है कि संदेश पूरी तरह संसाधित नहीं हुआ है।

लंबित संदेशों की जाँच

Redis किसी विशेष उपभोक्ता समूह या उस समूह के किसी विशेष उपभोक्ता के लिए लंबित संदेश देखने हेतु XPENDING कमांड उपलब्ध कराता है।

  • यह उन संदेशों की पहचान करने में सहायता करता है जिनकी पुष्टि नहीं हुई है।
  • आप देख सकते हैं कि किसी संदेश की ज़िम्मेदारी किस उपभोक्ता की है।
  • यह बताता है कि कोई संदेश कितने समय से लंबित है।

आपकी स्ट्रीम के संसाधन की स्थिति और प्रगति पर निगरानी रखने के लिए यह अत्यंत महत्वपूर्ण है।

उदाहरण: `XPENDING` का उपयोग

आइए ऐसी स्थिति का अनुकरण करते हैं जिसमें कोई उपभोक्ता संदेश पढ़ता है, लेकिन उसकी पुष्टि करने में विफल रहता है। फिर हम उसे देखने के लिए XPENDING का उपयोग करेंगे।

पहले एक स्ट्रीम और समूह सेट अप करें, एक संदेश जोड़ें और XACK के बिना उसे पढ़ें:

XGROUP CREATE mystream mygroup 0 MKSTREAM
XADD mystream * sensor-id 1 value 10
XREADGROUP GROUP mygroup myconsumer COUNT 1 STREAMS mystream >
XPENDING mystream mygroup

`XPENDING` के आउटपुट को समझना

XPENDING का आउटपुट प्रत्येक लंबित संदेश के बारे में महत्वपूर्ण जानकारी देता है:

  • संदेश आईडी: लंबित संदेश की विशिष्ट आईडी।
  • उपभोक्ता का नाम: वर्तमान में इस संदेश को सौंपा गया उपभोक्ता।
  • निष्क्रिय समय: संदेश कितने समय से लंबित है, मिलीसेकंड में।
  • वितरण गणना: यह संदेश कितनी बार वितरित किया गया है। अधिक संख्या किसी समस्याग्रस्त संदेश का संकेत हो सकती है।

यह डेटा आपको तय करने में सहायता करता है कि किसी संदेश पर मैन्युअल हस्तक्षेप या दोबारा संसाधन की आवश्यकता है या नहीं।

संदेशों को मैन्युअल रूप से प्राप्त करना (`XCLAIM`)

यदि कोई उपभोक्ता स्थायी रूप से विफल हो जाए, तो उसके लंबित संदेशों की कभी पुष्टि नहीं होगी। इन संदेशों को अटके रहने से रोकने के लिए कोई दूसरा स्वस्थ उपभोक्ता उन्हें प्राप्त कर सकता है।

XCLAIM कमांड एक या अधिक लंबित संदेशों का स्वामित्व किसी "अटके हुए" उपभोक्ता से नए उपभोक्ता को स्थानांतरित करने देती है।

आप स्ट्रीम, समूह, नए स्वामी, न्यूनतम निष्क्रिय समय और प्राप्त किए जाने वाले संदेशों की आईडी निर्धारित करते हैं।

`XCLAIM` का प्रदर्शन

पिछले उदाहरण को आगे बढ़ाते हुए, मान लीजिए कि myconsumer विफल हो गया। हम उसके लंबित संदेश को newconsumer के लिए प्राप्त कर सकते हैं:

(1678881234567-0 को अपने XPENDING आउटपुट में मौजूद वास्तविक संदेश आईडी से बदलें।)

XCLAIM mystream mygroup newconsumer 3600000 1678881234567-0
XACK mystream mygroup 1678881234567-0
XPENDING mystream mygroup

`XAUTOCLAIM` के साथ स्वचालित पुनर्प्राप्ति

संदेशों की मैन्युअल रूप से पहचान करना और उन्हें प्राप्त करना कठिन हो सकता है, विशेषकर जब बहुत सारे उपभोक्ता या संदेश हों। Redis 6.2+ में अधिक स्वचालित तरीके के लिए XAUTOCLAIM प्रस्तुत किया गया।

XAUTOCLAIM उन संदेशों की स्वचालित रूप से पहचान करता है जो निर्धारित निष्क्रिय समय से अधिक समय से लंबित हैं और उन्हें नए उपभोक्ता को स्थानांतरित कर देता है।

यह अलग-अलग संदेश आईडी सूचीबद्ध किए बिना विफल उपभोक्ताओं के संदेशों को तुरंत दोबारा सौंपने के लिए आदर्श है।

`XAUTOCLAIM` का उपयोग

आइए एक और संदेश जोड़ें, उसे myconsumer से पढ़ें और लंबित होने दें। फिर उसे स्थानांतरित करने के लिए XAUTOCLAIM का उपयोग करेंगे:

XADD mystream * sensor-id 2 value 20
XREADGROUP GROUP mygroup myconsumer COUNT 1 STREAMS mystream >
XPENDING mystream mygroup
XAUTOCLAIM mystream mygroup newconsumer 0 COUNT 1
XPENDING mystream mygroup

गारंटीकृत वितरण और आइडेम्पोटेंसी

उपभोक्ता समूहों के साथ Redis स्ट्रीम कम-से-कम एक बार वितरण की गारंटी देती हैं। इसका अर्थ है कि किसी संदेश के वितरित होने की गारंटी है, लेकिन वह एक से अधिक बार वितरित हो सकता है (जैसे, यदि कोई उपभोक्ता पुष्टि करने से पहले विफल हो जाए)।

विश्वसनीय संसाधन के लिए, आपके अनुप्रयोग का तर्क आइडेम्पोटेंट होना चाहिए। आइडेम्पोटेंट प्रक्रिया समान इनपुट के साथ चाहे जितनी बार चलाई जाए, समान परिणाम देती है।

  • नया रिकॉर्ड डालने से पहले जाँच करें कि वह पहले से मौजूद है या नहीं।
  • दोबारा संसाधन रोकने के लिए विशिष्ट लेन-देन आईडी का उपयोग करें।

त्वरित जाँच: संदेश पुनर्प्राप्ति

आपके Redis स्ट्रीम समूह के एक उपभोक्ता ने संदेश संसाधित किया, लेकिन उसकी पुष्टि करने से पहले क्रैश हो गया। इसके क्या परिणाम होंगे और आप इसे कैसे हल कर सकते हैं?

पुनरावलोकन: मज़बूत स्ट्रीम संसाधन

हमने सीखा कि Redis स्ट्रीम में उपभोक्ता विफलताओं के कारण लंबित हो जाने वाले संदेशों को कैसे संभालना है:

  • XPENDING उन संदेशों की पहचान करने में सहायता करता है जिनकी पुष्टि नहीं हुई है।
  • XCLAIM संदेशों का स्वामित्व मैन्युअल रूप से स्थानांतरित करने देता है।
  • XAUTOCLAIM संदेशों को दोबारा सौंपने का स्वचालित तरीका उपलब्ध कराता है।
  • कम-से-कम एक बार वितरण को समझना और आइडेम्पोटेंट उपभोक्ताओं का डिज़ाइन करना विश्वसनीय संसाधन के लिए महत्वपूर्ण है।

ये उपकरण सुनिश्चित करते हैं कि उपभोक्ता विफल होने पर भी आपका स्ट्रीम संसाधन मज़बूत बना रहे।

शुरुआत निःशुल्क

एआई शिक्षक के साथ Redis कैशिंग और संदेश-विनिमय (Pub/Sub, Streams) सीखें — निःशुल्क

अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।

पाठ्यक्रम
12
पाठ
48

अक्सर पूछे जाने वाले प्रश्न

क्या “लंबित संदेशों और विफलताओं को संभालना” पाठ निःशुल्क है?

हाँ — Redis कैशिंग और संदेश-विनिमय (Pub/Sub, Streams) अध्ययन पथ के 3 तक कोई भी पाठ, जिसमें “लंबित संदेशों और विफलताओं को संभालना” भी शामिल है, यहाँ वेब पर पूरा पढ़ना निःशुल्क है। इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ इंटरैक्टिव अभ्यास भी उपलब्ध कराता है। Redis कैशिंग और संदेश-विनिमय (Pub/Sub, Streams) पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

“लंबित संदेशों और विफलताओं को संभालना” में मैं क्या सीखूँगा?

लंबित संदेशों को प्रबंधित करने, उपभोक्ता विफलताओं से उबरने और संदेशों को फिर से संसाधित करने की रणनीतियाँ जानिए। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Redis कैशिंग और संदेश-विनिमय (Pub/Sub, Streams) का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।

क्या Redis कैशिंग और संदेश-विनिमय (Pub/Sub, Streams) शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?

पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Redis कैशिंग और संदेश-विनिमय (Pub/Sub, Streams) शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 3वाँ पाठ है।

“लंबित संदेशों और विफलताओं को संभालना” पाठ पूरा करने में कितना समय लगता है?

CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।

क्या मैं इस Redis कैशिंग और संदेश-विनिमय (Pub/Sub, Streams) पाठ में कोड लिख और चला सकता हूँ?

हाँ। हर Redis कैशिंग और संदेश-विनिमय (Pub/Sub, Streams) पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।

इस पाठ्यक्रम के सभी पाठ

  1. उपभोक्ता समूहों का परिचय
  2. उपभोक्ता समूह तर्क लागू करना
  3. लंबित संदेशों और विफलताओं को संभालना
  4. Consumer group lag की निगरानी
← Redis कैशिंग और संदेश-विनिमय (Pub/Sub, Streams) पर वापस जाएँ