AWS Solutions Architect · पाठ

SQS Standard बनाम FIFO कतारें

अधिकतम थ्रूपुट वाली Standard कतारों की तुलना क्रमबद्ध, बिल्कुल-एक-बार संसाधन वाली FIFO कतारों से कीजिए और सही प्रकार चुनिए।

पाठ 1, कुल 4 में से13 चरण

SQS Standard बनाम FIFO कतारें, CoddyKit पर AWS Solutions Architect का एक निःशुल्क पाठ है। यह 4 में से 1वाँ पाठ है। इस अध्ययन पथ के 3 तक कोई भी पाठ पूरा पढ़ना निःशुल्क है — इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ व्यावहारिक अभ्यास भी उपलब्ध कराता है। यह AWS Solutions Architect सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। AWS Solutions Architect पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

संदेश कतारें क्यों महत्वपूर्ण हैं

संदेश कतारें उत्पादकों को उपभोक्ताओं से अलग करती हैं: उत्पादक किसी उपभोक्ता द्वारा उसे संसाधित किए जाने की प्रतीक्षा किए बिना कतार में संदेश भेज देता है। उपभोक्ता अपनी गति से संदेशों को संसाधित करता है। यह पैटर्न तेज़ उत्पादकों को धीमे उपभोक्ताओं पर अत्यधिक भार डालने से रोकता है, प्रत्येक स्तर को स्वतंत्र रूप से स्केल करने में सक्षम बनाता है और उपभोक्ता के अस्थायी रूप से अनुपलब्ध होने पर एक टिकाऊ बफ़र प्रदान करता है। Amazon SQS, AWS की पूरी तरह प्रबंधित और उच्च उपलब्धता वाली संदेश कतार सेवा है।

SQS Standard कतारों की विशेषताएँ

Standard कतारें असीमित थ्रूपुट प्रदान करती हैं (प्रति सेकंड लगभग असीमित लेन-देन)। ये कम-से-कम एक बार डिलीवरी की गारंटी देती हैं—दुर्लभ मामलों में किसी संदेश की डिलीवरी एक से अधिक बार हो सकती है (वितरित अवसंरचना के कारण)। संदेशों का क्रम सर्वोत्तम प्रयास के आधार पर होता है: संदेश सामान्यतः भेजे गए क्रम में वितरित होते हैं, लेकिन इसकी गारंटी नहीं होती। Standard कतारें तब आदर्श हैं जब थ्रूपुट महत्वपूर्ण हो और आपका उपभोक्ता कभी-कभार मिलने वाले डुप्लिकेट तथा गलत क्रम में हुई डिलीवरी को संभाल सकता हो।

# Create a Standard queue
aws sqs create-queue \
  --queue-name 'OrderProcessingQueue'

# Send a message
aws sqs send-message \
  --queue-url 'https://sqs.us-east-1.amazonaws.com/123456789012/OrderProcessingQueue' \
  --message-body 'OrderId-12345'

SQS FIFO कतारों की विशेषताएँ

FIFO कतारें (पहले अंदर, पहले बाहर) ठीक एक बार संसाधन और सख्त संदेश क्रम की गारंटी देती हैं। संदेश ठीक उसी क्रम में वितरित होते हैं, जिस क्रम में वे भेजे गए हैं। FIFO कतारें प्रति सेकंड 300 लेन-देन तक (बैचिंग के साथ 3,000) समर्थित करती हैं। FIFO कतारों के नाम .fifo पर समाप्त होने चाहिए। FIFO कतारों का उपयोग तब करें जब क्रम और ठीक-एक-बार अर्थविज्ञान महत्वपूर्ण हों—जैसे वित्तीय लेन-देन, ई-कॉमर्स ऑर्डर संसाधन और इन्वेंटरी अपडेट।

# Create a FIFO queue
aws sqs create-queue \
  --queue-name 'OrderProcessingQueue.fifo' \
  --attributes '{
    "FifoQueue": "true",
    "ContentBasedDeduplication": "true"
  }'

FIFO कतारों में संदेश समूह

FIFO कतारें कतार के भीतर क्रम को विभाजित करने के लिए Message Group IDs का उपयोग करती हैं। समान Group ID वाले संदेश क्रम से वितरित होते हैं; अलग-अलग Group ID वाले संदेशों को समानांतर रूप से संसाधित किया जा सकता है। उदाहरण के लिए, Group ID के रूप में customerId का उपयोग करें: प्रत्येक ग्राहक के Orders क्रम से संसाधित होते हैं, लेकिन अलग-अलग ग्राहकों के Orders एक साथ संसाधित होते हैं। इससे उपभोक्ताओं के बीच क्षैतिज स्केलेबिलिटी के साथ FIFO अर्थविज्ञान सक्षम होता है।

aws sqs send-message \
  --queue-url 'https://sqs.us-east-1.amazonaws.com/123456789012/Orders.fifo' \
  --message-body 'Order details here' \
  --message-group-id 'customer-789' \
  --message-deduplication-id 'order-uuid-abc123'

FIFO कतारों में डुप्लिकेट हटाना

FIFO कतारें डुप्लिकेट हटाने वाली ID का उपयोग करके संदेशों के डुप्लिकेट संसाधन को रोकती हैं। यदि 5 मिनट के डुप्लिकेट-हटाने के अंतराल के भीतर समान ID वाले दो संदेश भेजे जाते हैं, तो दूसरे संदेश को बिना किसी सूचना के हटा दिया जाता है। आप डुप्लिकेट हटाने वाली ID स्पष्ट रूप से (MessageDeduplicationId) दे सकते हैं या सामग्री-आधारित डुप्लिकेट हटाना सक्षम कर सकते हैं, जिसमें SQS संदेश के मुख्य भाग का SHA-256 हैश अपने-आप डुप्लिकेट हटाने वाली ID के रूप में निकालता है। सामग्री-आधारित डुप्लिकेट हटाना सरल है, लेकिन इसके लिए संदेश के मुख्य भागों का अद्वितीय होना आवश्यक है।

संदेशों को बनाए रखने और आकार की सीमाएँ

SQS संदेशों को एक कॉन्फ़िगर की गई अवधि तक बनाए रखता है: न्यूनतम 1 मिनट, अधिकतम 14 दिन (डिफ़ॉल्ट 4 दिन)। अवधारण अवधि के भीतर उपभोग न किए गए संदेश अपने-आप हटा दिए जाते हैं। संदेश का अधिकतम आकार 256 KB है। बड़े पेलोड के लिए SQS विस्तारित क्लाइंट लाइब्रेरी का उपयोग करें या पेलोड को S3 में संग्रहीत करके SQS संदेश में केवल S3 ऑब्जेक्ट का संदर्भ भेजें। Standard और FIFO दोनों कतारों पर ये सीमाएँ लागू होती हैं।

संदेश प्राप्त करना और हटाना

उपभोक्ता receive-message का उपयोग करके कतार से संदेश प्राप्त करने के लिए पूछताछ करते हैं। प्राप्त होने के बाद संदेश अदृश्य हो जाता है (अन्य उपभोक्ताओं से छिप जाता है) और यह स्थिति दृश्यता टाइमआउट अवधि तक रहती है। टाइमआउट समाप्त होने से पहले उपभोक्ता को संदेश संसाधित करके रसीद हैंडल का उपयोग करके उसे स्पष्ट रूप से हटाना होता है। यदि उपभोक्ता क्रैश हो जाता है या समय पर संदेश नहीं हटाता, तो संदेश फिर दिखाई देता है और कोई दूसरा उपभोक्ता उसे संसाधित कर सकता है—इससे Standard कतारों में कम-से-कम एक बार डिलीवरी संभव होती है।

RECEIPT=$(aws sqs receive-message \
  --queue-url 'https://...' \
  --query 'Messages[0].ReceiptHandle' --output text)

# Process message, then delete it
aws sqs delete-message \
  --queue-url 'https://...' \
  --receipt-handle "$RECEIPT"

व्यवहार में थ्रूपुट की तुलना

Standard कतारें इन कार्यों के लिए उपयुक्त हैं: छवियों के थंबनेल बनाना, सूचना ईमेल भेजना और लॉग संसाधित करना—ऐसे कार्यभार जिनमें डुप्लिकेट को इडेम्पोटेंट तरीके से संभाला जा सकता है और क्रम महत्वपूर्ण नहीं होता। FIFO कतारें इन कार्यों के लिए आवश्यक हैं: बैंक हस्तांतरण संसाधित करना (क्रेडिट से पहले डेबिट), ई-कॉमर्स कार्ट अपडेट (चेकआउट से पहले आइटम जोड़ना) और ऐसे कार्यप्रवाह के चरण जिनमें चरण 2 का चरण 1 के बाद आना आवश्यक हो। अधिकांश उच्च-थ्रूपुट आर्किटेक्चर के लिए Standard कतारें डिफ़ॉल्ट विकल्प हैं; FIFO पर तभी जाएँ जब क्रम या ठीक-एक-बार डिलीवरी अनिवार्य आवश्यकता हो।

थ्रूपुट और लागत के लिए बैचिंग

SQS प्रत्येक API अनुरोध के लिए शुल्क लेता है। प्रति API कॉल 10 संदेशों तक भेजने, प्राप्त करने और हटाने के लिए बैच कार्रवाइयों का उपयोग करें, जिससे लागत 10 गुना तक कम हो सकती है। FIFO कतारें उच्च-थ्रूपुट मोड (बैचिंग सक्षम करने वाला) समर्थित करती हैं, जिससे 10 संदेशों की बैचिंग के साथ सीमा प्रति सेकंड 3,000 संदेश तक बढ़ जाती है। उत्पादन में API कॉल की लागत कम करने के लिए हमेशा send-message-batch और delete-message-batch का उपयोग करें।

aws sqs send-message-batch \
  --queue-url 'https://...' \
  --entries '[
    {"Id": "msg1", "MessageBody": "Order-001"},
    {"Id": "msg2", "MessageBody": "Order-002"},
    {"Id": "msg3", "MessageBody": "Order-003"}
  ]'

कतार पहुँच नीतियाँ

SQS कतारों को संसाधन-आधारित नीतियों (कतार नीतियों) से सुरक्षित किया जाता है, जो नियंत्रित करती हैं कि कौन कतार में भेज सकता है या उससे प्राप्त कर सकता है। क्रॉस-अकाउंट पहुँच की अनुमति देते समय या SNS द्वारा SQS कतार में प्रकाशित किए जाने पर यह अत्यंत महत्वपूर्ण है। Lambda की SQS तक पहुँच Lambda निष्पादन भूमिका की IAM नीति (sqs:ReceiveMessage, sqs:DeleteMessage, sqs:GetQueueAttributes) से नियंत्रित होती है। हमेशा न्यूनतम विशेषाधिकार लागू करें: किसी उपभोक्ता को प्राप्त करने और हटाने से अधिक अनुमतियाँ न दें।

Standard और FIFO में चयन: निर्णय मार्गदर्शिका

चयन करने के लिए ये प्रश्न पूछें: (1) क्या क्रम महत्वपूर्ण है? यदि हाँ → FIFO। (2) क्या ठीक-एक-बार संसाधन आवश्यक है? यदि हाँ → FIFO। (3) क्या 3,000 TPS से अधिक थ्रूपुट चाहिए? यदि हाँ → Standard (बैचिंग के साथ FIFO की सीमा 3,000 TPS है)। (4) क्या उपभोक्ता डुप्लिकेट संभाल सकते हैं? यदि हाँ → Standard अधिक सरल और सस्ता है। SAA-C03 परीक्षा के लिए FIFO के मुख्य शब्द हैं: 'क्रम', 'ठीक-एक-बार', 'क्रमिक', 'डुप्लिकेट हटाना'। Standard के मुख्य शब्द हैं: 'उच्च थ्रूपुट', 'सर्वोत्तम प्रयास', 'कम-से-कम एक बार'।

त्वरित जाँच

इस पाठ से AWS Solutions Architect (SAA-C03) की अवधारणाओं की अपनी समझ जाँचें।

पाठ का पुनरावलोकन

इस पाठ में आपने सीखा: Standard कतारें कम-से-कम एक बार डिलीवरी और सर्वोत्तम-प्रयास क्रम के साथ असीमित थ्रूपुट प्रदान करती हैं और ऐसे अधिक-मात्रा वाले कार्यभार के लिए उपयुक्त हैं जो डुप्लिकेट सहन कर सकते हैं; FIFO कतारें Message Group IDs और डुप्लिकेट हटाने वाली IDs का उपयोग करके ठीक-एक-बार संसाधन और सख्त संदेश क्रम की गारंटी देती हैं, तथा बैचिंग के साथ 3,000 TPS तक सीमित हैं; और इनके बीच चयन इस बात पर निर्भर करता है कि क्रम और डुप्लिकेट हटाना अनिवार्य आवश्यकताएँ हैं या नहीं। आगे हम दृश्यता टाइमआउट, डेड-लेटर कतारों और लंबी पूछताछ का अध्ययन करेंगे।

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

एआई शिक्षक के साथ AWS Solutions Architect सीखें — निःशुल्क

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

पाठ्यक्रम
30
पाठ
120

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

क्या “SQS Standard बनाम FIFO कतारें” पाठ निःशुल्क है?

हाँ — AWS Solutions Architect अध्ययन पथ के 3 तक कोई भी पाठ, जिसमें “SQS Standard बनाम FIFO कतारें” भी शामिल है, यहाँ वेब पर पूरा पढ़ना निःशुल्क है। इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ इंटरैक्टिव अभ्यास भी उपलब्ध कराता है। AWS Solutions Architect पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

“SQS Standard बनाम FIFO कतारें” में मैं क्या सीखूँगा?

अधिकतम थ्रूपुट वाली Standard कतारों की तुलना क्रमबद्ध, बिल्कुल-एक-बार संसाधन वाली FIFO कतारों से कीजिए और सही प्रकार चुनिए। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ AWS Solutions Architect का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।

क्या AWS Solutions Architect शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?

पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर AWS Solutions Architect शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 1वाँ पाठ है।

“SQS Standard बनाम FIFO कतारें” पाठ पूरा करने में कितना समय लगता है?

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

क्या मैं इस AWS Solutions Architect पाठ में कोड लिख और चला सकता हूँ?

हाँ। हर AWS Solutions Architect पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।

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

  1. SQS Standard बनाम FIFO कतारें
  2. Visibility Timeout, DLQ और लॉन्ग पोलिंग
  3. SNS टॉपिक और फ़ैन-आउट आर्किटेक्चर
  4. SQS संदेश फ़िल्टरिंग और SNS + SQS एकीकरण
← AWS Solutions Architect पर वापस जाएँ