Discord Sharding: बड़े बॉट्स अपने सर्वर कैसे बाँटते हैं
Sharding वह तरीका है जिससे एक बड़ा Discord बॉट अपने सर्वरों को कई gateway कनेक्शनों में बाँटता है, जिन्हें shards कहते हैं, ताकि किसी एक कनेक्शन पर बहुत ज़्यादा बोझ न पड़े। एक बॉट के 2,500 सर्वरों में होने पर Discord इसे ज़रूरी कर देता है, और हर सर्वर हमेशा ठीक एक shard का होता है।
Shard क्या है
बॉट का Discord से लाइव कनेक्शन, जिसे gateway कहते हैं, केवल एक सीमा तक ट्रैफ़िक सँभाल सकता है। एक बिंदु के बाद एक कनेक्शन हज़ारों सर्वरों के इवेंट्स के साथ नहीं चल सकता। Discord इसे इस तरह हल करता है कि बॉट कई कनेक्शन खोल सकता है और हर एक को बताता है कि वह कौन से सर्वर का मालिक है। हर कनेक्शन एक shard है।
सर्वर कैसे असाइन होते हैं
किसी सर्वर का shard उसकी ID से आता है, एक सूत्र से जो guild ID को (snowflake के timestamp वाले हिस्से को हटाने के बाद) shards की संख्या से भाग देता है और शेषफल रखता है। तो दिया गया सर्वर हमेशा एक ही shard पर जाता है, जब तक shards की संख्या न बदले। सीधे संदेश (DM) हमेशा shard 0 पर जाते हैं।
बॉट जुड़ते समय संख्याओं की एक जोड़ी भेजता है: उसका shard नंबर और कुल shard संख्या। फिर Discord केवल मेल खाने वाले सर्वरों के इवेंट भेजता है।
यह कब ज़रूरी हो जाता है
- 2,500 सर्वरों से कम: एक कनेक्शन काफ़ी है।
- 2,500 सर्वर: Discord एक कनेक्शन को मना कर देता है, और बॉट को shard करना पड़ता है।
- बड़े बॉट आम तौर पर सीमा से काफ़ी पहले shards जोड़ते हैं, ताकि बोझ और मेमोरी बँटे।
Shards एक ही प्रक्रिया में या अलग मशीनों पर चल सकते हैं। दूसरा विकल्प एक shard को बाकी को गिराए बिना रीस्टार्ट करने देता है।
आपके लिए इसका मतलब
ज़्यादातर कुछ नहीं। सदस्यों को कोई फ़र्क नहीं दिखेगा। व्यावहारिक असर रुकावटों में दिखता है: अगर एक shard offline हो जाए, तो केवल उस पर वाले सर्वर बॉट खोते हैं, बाकी काम करते रहते हैं। अगर आपका बॉट केवल आपके सर्वर में offline है जबकि बाकी ठीक हैं, तो यह shard की समस्या का संकेत हो सकता है, न कि ऐसी चीज़ जो आपने बदली।
Sharding rate limits के साथ भी जुड़ता है। एक साथ बहुत सारे shards शुरू करना सीमित है, इसलिए बड़ा बॉट उन्हें बैच में रीस्टार्ट करता है।
Sharding और Noxyr
Noxyr के लिए आपको कुछ कॉन्फ़िगर नहीं करना होता। स्थिति और ping पेज दिखाता है कि बॉट जवाब दे रहा है या नहीं, और बॉट offline गाइड बताती है कि पहले क्या जाँचना है। अगर आप अपने application के साथ अपना कनेक्शन चलाना चाहते हैं, तो कस्टम बॉट आपके नाम से Noxyr की सुविधाएँ चलाता है, और होस्टिंग नोड्स और uptime लेख समझाता है कि ऐसे बॉट कैसे चालू रखे जाते हैं।
आम सवाल
बॉट को किस सर्वर संख्या पर shard करना पड़ता है?
Discord 2,500 सर्वरों पर sharding को ज़रूरी बनाता है। कई बड़े बॉट बोझ बाँटने के लिए इससे पहले shard करते हैं।
क्या एक सर्वर दो shards पर हो सकता है?
नहीं। सर्वर हमेशा ठीक एक shard का होता है, जो उसकी ID और shard संख्या से चुना जाता है।
क्या sharding मेरे सदस्यों के लिए कुछ बदलता है?
नहीं। यह एक आंतरिक विवरण है। यह केवल रुकावटों के दौरान मायने रखता है, जब एक shard विफल हो सकता है बिना दूसरों पर असर डाले।