मैंने एसक्यूएस पर पुट ऑब्जेक्ट पर एक ईवेंट उत्सर्जित करने के लिए एक एस 3 बाल्टी सेट की है, और मैं एक ईबी कार्यकर्ता स्तर में एसक्यूएस कतार को संभालने में कामयाब रहा हूं।क्या एसक्यूएस वास्तव में प्रति संदेश एकाधिक एस 3 पुट ऑब्जेक्ट रिकॉर्ड भेजता है?
संदेश SQS भेजता है के लिए स्कीमा यहाँ है: http://docs.aws.amazon.com/AmazonS3/latest/dev/notification-content-structure.html
रिकॉर्ड्स, एक सरणी है जिसका अर्थ है कि वहाँ मेरे कार्यकर्ता समाप्ति बिंदु को एक पोस्ट में भेजे जाने वाले अनेक रिकॉर्ड हो सकता है। क्या यह वास्तव में होता है? या क्या मेरे कार्यकर्ता को प्रति संदेश केवल एक रिकॉर्ड प्राप्त होगा?
कर्मचारी केवल एक प्रतिक्रिया वापस कर सकता है, या तो 200 (संदेश सफलतापूर्वक संभाला गया है) या गैर-200 (संदेश सफलतापूर्वक संभाला नहीं गया है, जो इसे कतार में वापस रखता है), इस पर ध्यान दिए बिना कि संदेश में कितने रिकॉर्ड प्राप्त होते हैं।
तो यदि मेरे कार्यकर्ता को किसी संदेश में एकाधिक रिकॉर्ड प्राप्त होते हैं, और यह कुछ सफलतापूर्वक प्रबंधित करता है (डेटाबेस में डालने जैसे साइड इफेक्ट्स के साथ कुछ करने के द्वारा कहें) लेकिन एक या अधिक में विफल रहता है, तो मुझे इसे कैसे संभालना चाहिए? अगर मैं 200 लौटाता हूं, तो जो असफल हो जाते हैं उन्हें पुनः प्रयास नहीं किया जाएगा। लेकिन अगर मैं गैर-200 लौटाता हूं, तो सफलतापूर्वक संभाले गए लोगों को अनावश्यक रूप से पुनः प्रयास किया जाएगा, और संभवतः फिर से डाला जाएगा। इसलिए मुझे अपने कार्यकर्ता को केवल असफल लोगों को पुनः प्रयास करने के लिए पर्याप्त स्मार्ट बनाना होगा - जो कि तर्क है जिसे मैं लिखना पसंद नहीं करता।
यह बहुत आसान होगा अगर प्रति संदेश केवल एक रिकॉर्ड भेजा गया हो। तो यदि अभ्यास में यह मामला है, रिकॉर्ड के बावजूद रिकॉर्ड, मैं वास्तव में जानना चाहता हूं!
धन्यवाद, यह सहायक था। मुझे अब के लिए कई रिकॉर्ड्स केस को संभालने का आपका दृष्टिकोण पसंद नहीं है, और आपको "कम से कम एक बार" कॉल करने की सराहना करते हैं। – sandinmyjoints
_ "एसक्यूएस जैसी किसी भी बड़े पैमाने पर और वितरित प्रणाली में पूरी तरह से गारंटी देना बेहद मुश्किल है कि यह कभी नहीं हो सकता" _ - बस स्पष्ट करने के लिए - यह केवल "बेहद मुश्किल" नहीं है, बल्कि सेवा की वितरित प्रकृति के कारण असंभव है। डुप्लिकेशन पर कुछ जानकारी के लिए [यह] (http://stackoverflow.com/a/38290017/836214) देखें। – Krease
@ मेरी टिप्पणी वास्तव में सेवा के डिजाइन पर बाधाओं के संदर्भ में थी - - सेवा के उपभोक्ताओं नहीं। किसी भी डुप्लीकेट की गारंटी के लिए सिस्टम * जैसे * एसक्यूएस को डिजाइन करना बेहद मुश्किल है, लेकिन यह असंभव नहीं है ... हालांकि, ऐसी स्थिरता गारंटी का मतलब उपलब्धता और/या विभाजन सहिष्णुता के मामले में एक व्यापारिक होगा, और इसकी संभावना होगी सेवा घटकों के बीच संचार/समन्वय में वृद्धि के कारण प्रदर्शन जुर्माना। दूसरी तरफ, यह गारंटी देना असंभव है कि एक एसक्यूएस उपभोक्ता के लिए डुप्लिकेट डिलीवरी कभी नहीं होगी। –