node.js - कैसे 1000 की टीमों के लिए एक सुस्त बॉट पैमाने पर



websocket autoscaling (1)

सुस्त सॉकेट के साथ, आपके पास स्केल करने के लिए बहुत सी चीज़ें हैं:

  • कुर्सियां ​​की संख्या यह आसान है क्योंकि सस्ते सर्वर भी हजारों सॉकेट्स को संभाल सकते हैं, जैसे 50k से अधिक लेकिन प्रत्येक गर्तिका कुछ अन्य प्रकार के लोड का प्रतिनिधित्व करती है, जो अगला सूचीबद्ध है
  • प्रति टीम में उपयोग की गई स्मृति की मात्रा, जो आपके स्वयं के सर्वर कार्यान्वयन पर निर्भर करती है अगर आप मेमोरी में बड़ी मात्रा में संदेश इतिहास रखने की कोशिश कर रहे हैं, तो आप अपने सर्वर की सीमा को तेज़ी से मारेंगे, अगर आपका संदेश प्रोसेसिंग कोड कुछ हद तक स्टेटलेस है।
  • I / O की मात्रा, जो आपको एक अलग लोड बैलेंसर के लिए किसी भी छवि सेवा को ऑफलोड करना चाहती है।

विचार करने वाली दूसरी बात दोष-सहिष्णुता है मान लें कि आपने चिपचिपा भार संतुलन किया था और आपके एक सर्वर 50 टीमों को संभालना है। यह सर्वर केवल उन 50 टीमों को संभालने वाला है, यदि यह नीचे चला जाता है तो सभी 50 बॉट ऑफ़लाइन हो जाते हैं वैकल्पिक रूप से, आप अलग-अलग सर्वर पर प्रति टीम में एकाधिक सॉकेट खोल सकते हैं और एक संदेश हैंडलिंग कतार का उपयोग कर सकते हैं ताकि प्रत्येक संदेश को केवल एक बार जवाब दिया जाए

इसलिए मैं प्रस्तावित वास्तुकला RTM सॉकेट्स के लिए एक पतली, अनावश्यक लोड बैलेंसर है, और यह एक विश्वसनीय संदेश कतार है जो कि नीचे है।

https://src-bin.com

एक धीमा बोट को कार्यान्वित करने के लिए, मुझे 'रीयल टाइम मैसेजिंग एपीआई' की सुस्तता से निपटने की जरूरत है I यह एक वेबसॉट-आधारित एपीआई है जो आपको वास्तविक समय में सुस्त से ईवेंट प्राप्त करने और उपयोगकर्ता के रूप में संदेश भेजने की अनुमति देता है। अधिक जानकारी: https://api.slack.com/rtm

केवल एक टीम के लिए एक बॉट बनाने के लिए, मुझे एक websocket कनेक्शन खोलने और घटनाओं के लिए इसे सुनने की आवश्यकता है।

किसी अन्य टीम के लिए धीमा बॉट उपलब्ध कराने के लिए मुझे एक नया websocket कनेक्शन खोलने की आवश्यकता है इसलिए,

  • 1 टीम => 1 वेबसाईट कनेक्शन
  • 2 टीमें => 2 वेबसाईट कनेक्शन
  • एन टीमें => एन वेबस्केट कनेक्शन

अंतहीन टीमों के लिए मेरे वेबसॉकेट कनेक्शन को स्केल करने के लिए मुझे क्या करना चाहिए?

किस तरह की वास्तुकला 1000 के वेबकॉकेट कनेक्शन के ऑटोस्केलिंग को संभाल सकता है?





slack