2014-05-12 11 views
5

मेरी परियोजना के लिए मुझे क्लाउड के बाहर कई उपकरणों के साथ संवाद करने की आवश्यकता है। यदि सफल हो, तो इसका मतलब लाखों डिवाइस हैं। ये डिवाइस एंड्रॉइड या आईओएस नहीं चलेंगे, और राउटर & फ़ायरवॉल के पीछे चलेंगे (मुझे लगता है कि उनके पास बाहरी आईपी नहीं है)।अमेज़ॅन एसक्यूएस कतार सीमा

मैं क्लाउड के बाहर अपने उपयोगकर्ताओं को संदेश भेजने के लिए एसक्यूएस का उपयोग करना चाहता हूं। सर्वर को व्यक्तिगत उपयोगकर्ताओं को संदेश भेजने की अनुमति देने के लिए, मैं प्रति क्लाइंट एक कतार रखने के लिए सिस्टम को डिज़ाइन कर रहा हूं। इसका संभावित रूप से लाखों (अरबों) कतारों का अर्थ हो सकता है। हालांकि यह कहता है कि एसक्यूएस असीमित कतारों का समर्थन कर सकता है, मैं यह सुनिश्चित करना चाहता हूं कि मैं सिस्टम का दुरुपयोग नहीं कर रहा हूं। यदि सफल हो, तो लाखों उपयोगकर्ताओं की संभावना बहुत अधिक है।

  • मुझे पता है कि एसक्यूएस महंगा हो सकता है, लेकिन मैं प्रशासन की आसानी के लिए इस चरण पर इसका उपयोग कर रहा हूं।
  • जहां तक ​​मैं एसएनएस को बता सकता हूं या तो आईओएस/एंड्रॉइड क्लाइंट, या उपभोक्ता पर चल रहे HTTP सर्वर की आवश्यकता है। यही कारण है कि मैंने एसएनएस का उपयोग करके एसएनएस से इंकार कर दिया, और मैं हूँ।
  • मैं क्लाइंट कनेक्शन को संभालने के लिए एसक्यूएस पर वितरित क्लाउड फ्रंट-एंड बनाने जा रहा हूं। यह फ्रंट-एंड सिर्फ एक रैपर होगा, जो
    ग्राहकों को प्रमाणीकृत करेगा, और उन्हें एसक्यूएस कतारों में रिले करेगा।

क्या मैं एसक्यूएस "असीमित कतार" नीति का दुरुपयोग कर रहा हूं (एसक्यूएस प्रदर्शन ड्रॉप होगा)? क्या प्रति डिवाइस मैसेजिंग के लिए कोई आसान डिज़ाइन है? ,

Am I abusing the SQS "unlimited queues" policy? 

एडब्ल्यूएस सेवाओं दुरुपयोग रोकने के लिए तैयार कर रहे हैं और आप वास्तव में आपको क्या उपयोग करने के लिए भुगतान करेंगे:

अपने सवाल के बारे में:

+0

यह समस्या एक बहुत आम हो गया है, IOT आम हो जाता है, esp के रूप में होने की संभावना है। एसक्यूएस को संभालने के बाद प्रत्येक आईओटी यातायात बहुत ही आकर्षक मूल्य प्रस्ताव है, लेकिन आपके द्वारा हाइलाइट किए गए लाखों/अरबों कतार की समस्या के साथ समाप्त हो जाएगा। –

उत्तर

3

मुझे अपने प्रश्न के कुछ हिस्सों से जवाब तोड़ने चलो इसलिए यदि आपको लगता है कि यह सही दृष्टिकोण है, तो इसके लिए जाएं। अनिश्चितता को दूर करने के लिए, मैं एक प्रारंभिक "अवधारणा के सबूत" कार्यान्वयन की सलाह दूंगा।

Is there a simpler design for per device messaging? 

शायद हां, एसएनएस और अन्य संदेश प्रणाली पर दोबारा विचार करें।

अपने बयान के बारे में:

मुझे पता है कि SQS महंगा हो सकता है कर रहा हूँ, लेकिन मैं इसे इस स्तर में उपयोग कर रहा हूँ प्रशासन में आसानी के लिए।

"महंगा" एक बहुत ही संदर्भ-निर्भर वर्गीकरण है, इस पर विचार करते हुए कि एक एसक्यूएस संदेश $ 0.00000005 खर्च कर सकता है।

जहां तक ​​मैं एसएनएस को बता सकता हूं कि या तो आईओएस/एंड्रॉइड क्लाइंट, या उपभोक्ता पर चल रहे HTTP सर्वर की आवश्यकता है। यही कारण है कि मैंने एसएनएस से इंकार कर दिया, और मैं एसक्यूएस का उपयोग कर रहा हूं।

एसएनएस एक धक्का आधारित संदेश प्रणाली है कि सदस्यता के 5 प्रकार संभाल कर सकते हैं (SQS लगाकर है): smtp, एसएमएस, http, मोबाइल धक्का और SQS, तो वे परस्पर अनन्य नहीं हैं।

मैं क्लाइंट कनेक्शन को संभालने के लिए एसक्यूएस पर एक वितरित क्लाउड फ्रंट एंड बनाने जा रहा हूं। यह सामने के अंत सिर्फ एक आवरण, कि ग्राहकों को प्रमाणित होगा, और उन्हें SQS कतारों को रिले किया जाएगा।

लाखों कतारों का प्रबंधन आपके "वितरित क्लाउड फ्रंट एंड एसक्यूएस" के लिए एक भारी काम हो सकता है। जब तक आपकी परियोजना कतार प्रबंधन के बारे में बिल्कुल नहीं है, यह संभवत: अविभाजित भारी भारोत्तोलन है।

यह सब कुछ है जो मैं आपके मामले को जानने के बिना कह सकता हूं, लेकिन इस बात पर विचार करें कि आप एक दूसरे के साथ और अन्य मैसेजिंग सॉफ़्टवेयर जैसे अपाचे कैमल और अन्य के साथ एसएनएस/एसक्यूएस का उपयोग कर सकते हैं, जो आपको अपना समाधान बनाने में मदद कर सकता है या अवधारणा के सुबूत।

+1

मेरा दुरुपयोग करके मेरा मतलब है: क्या एसक्यूएस ठीक से काम करना बंद कर देगा (उच्च विलंबता, कम थ्रूपुट)? एसएनएस डिवाइस के लिए बिल्कुल धक्का नहीं है, क्योंकि Google और Apple आपके लिए क्लाइंट साइड मतदान लागू करते हैं। (एसएनएस बस इसे जी एंड ए को धक्का देता है)। क्या मैं गैर एंड्रॉइड एम्बेडेड उपकरणों के लिए एसएनएस पर पुनर्विचार कर सकता हूं? परियोजना कई उपकरणों को संदेश भेजने के बारे में है। फ्रंटडेंड एडब्ल्यूएस-बीनस्टॉक पर स्केल करना आसान होना चाहिए, क्योंकि मुझे एसक्यूएस को मेरे लिए डेटा स्केलिंग करने की उम्मीद है। मुझे बस इतना करना है कि अधिक HTTP अंतराल जोड़ें जो ग्राहकों को मेरे लिए एसक्यूएस मतदान करने की अनुमति देगा। – eshalev

+0

एसएनएस गैर एंड्रॉयड उपकरणों का समर्थन करता है, तो आप उपयोग कर सकते हैं एप्पल पुश सूचना सेवा (APNs), एंड्रॉयड (GCM) और अमेज़न डिवाइस पर संदेश (ADM) के लिए Google क्लाउड संदेश सेवा (देखें: http://docs.aws.amazon.com/sns /latest/dg/SNSMobilePush.html)। –

+0

एसक्यूएस ठीक काम करेगा, लेकिन यह एक पूर्ण आवेदन के लिए बहुत आसान हो सकता है। आप अधिक कार्यक्षमता, विशेष रूप से घटना प्रसंस्करण इंजन के साथ एकीकरण की जरूरत है, मैं भी एडब्ल्यूएस Kinesis एप्पल/Kindle पर विचार करेंगे ... –

1

मुझे लगता है कि SQS (या एसएनएस यदि आप अंत में उन्हें इस्तेमाल कर सकते हैं) अभी भी अपने सबसे अच्छे शर्त कर रहे हैं, खास तौर पर यदि आप "त्वरित प्रतिक्रिया" या "वास्तविक समय के पास" की जरूरत है; तथापि, "विकल्प" बस ताकि आप तुलना कर सकते हैं होने की खातिर ... के लिए

  1. आप एक विशाल dynamoDB, प्रत्येक डिवाइस/ग्राहक होने के अपने "युक्ति-आईडी" और शायद "संदेश के साथ विचार कर सकते हैं आईडी "कुंजी के रूप में। इस तरह, आपके डिवाइस संदेशों के लिए अपनी कुंजी पूछ सकते हैं। डायनेमो डीबी अरबों पंक्तियों को संभालने के लिए है, इसलिए इससे ज्यादा तनाव नहीं पड़ेगा। पूछताछ भाग, आपको सावधान रहना चाहिए, क्योंकि आप प्रावधान किए गए प्रश्नों का उपयोग कर सकते हैं, हालांकि कुल स्तर पर, आपके डिवाइस एक ही समय में सभी प्रतिक्रिया/क्वेरी नहीं कर सकते हैं, इसलिए आप अभी भी ठीक हो सकते हैं।

  2. आप एक विशाल एस 3 बाल्टी रखने पर भी विचार कर सकते हैं, प्रत्येक फ़ोल्डर डिवाइस आईडी के लिए कुंजी है और आगे संदेश-आईडी फ़ोल्डर में कुंजी है। यह एक गरीब व्यक्ति का एसक्यूएस है, लेकिन संदेश मात्रा और पहुंच की संख्या दोनों में स्केल करने की गारंटी है।

में दोनों # 1 और # 2, यदि आपका उपकरणों क्रेडेंशियल के लिए cognito के साथ पंजीकृत हैं, वहाँ नीतियों करने के लिए एक सरल तरीके से है, तो उपकरणों केवल अपने "स्वयं" सामान पहुँच सकते हैं। हालांकि, दोनों विकल्प # 1 और # 2 की संभावना SQS की तुलना में धीमी है, खास तौर पर अगर आप का उपयोग SQS लंबे समय से जनमत - लंबे सर्वेक्षण में, आप प्रतिक्रियाओं SQS संदेश का पता लगाता है के रूप में मिलता है, के रूप में जल्द से हटा दिया गया है ... ये विकल्प होगा आपको अगले चक्र-चुनाव की प्रतीक्षा करने की आवश्यकता है।

+0

में रेडिस पब/सब भी जांचें डायनेमो अंततः संगत है। प्रश्नों के लिए छोटे कोरम का उपयोग करते समय यह सबसे अच्छा काम करता है। हालांकि यह केवल अंतिम स्थिरता को और भी खराब बनाता है। इस प्रकार परिणामस्वरूप देरी (2 चक्र) होती है। एसक्यूएस के संबंध में – eshalev

+0

। हाँ, यह बहुत आकर्षक है। मैं लंबे मतदान का उपयोग कर रहा हूं, और प्रतिक्रिया समय बहुत अच्छा है। हालांकि, क्या यह 1 अरब कतारों के साथ अच्छा रहेगा? – eshalev

संबंधित मुद्दे