يعتمد وقت تشغيل بوت Discord المخصص المستضاف كليًا على البنية التحتية التي تقف خلفه، وفي البوت المخصص الخاص بـ Noxyr، فهي مجموعة من عُقد الاستضافة تختار مضيفًا لبوتك تلقائيًا، وتواصل فحصه كل بضع ثوانٍ، وتنقله دون أن تلمس أي خادم بنفسك. تلصق الرمز المميز (Token) فقط؛ لا تجهّز شيئًا ولا تحدّثه ولا تعيد تشغيله.
أنت لا تدير خادمًا، بل عُقد Noxyr هي من تديره
كل عُقدة هي عملية واحدة تستضيف كل بوت مخصص مُسنَد إليها، وتتحقق من حالتها على دورة قصيرة لتشغيل البوتات التي يجب أن تعمل، وإيقاف تلك التي لا يجب أن تعمل، وتسجيل نبضة (heartbeat) يقرؤها الموقع. هذا هو العمل كله الذي تقوم به البنية التحتية، والذي كان عليك أن تفعله بنفسك على VPS: إبقاء العملية حيّة، ومراقبة توقفها، وإعادة تسجيل الدخول عندما يقطع Discord الاتصال لسبب لا علاقة لك به.
كيف يُختار المضيف عند الإعداد
الخيار التلقائي هو الافتراضي، وهو الخيار الذي ينبغي أن يُبقيه معظم الناس محددًا. يتجه دائمًا إلى أي عُقدة فيها مساحة متاحة حاليًا، وتُملأ العُقد بترتيب ثابت، إذ تُستنفد عُقدة قبل أن تبدأ التي تليها باستقبال بوتات جديدة، بدلًا من توزيع الحمل بالتساوي وترك كل عُقدة نصف فارغة. أما اختيار مضيف محدد يدويًا فيوجّهك أيضًا إلى عُقدة حقيقية وعاملة خلف الكواليس: إذا كانت العُقدة التي اخترتها غير متصلة أو ممتلئة في تلك اللحظة، تُستخدم أفضل عُقدة متاحة بدلًا من أن يفشل الإعداد ببساطة.
ما الذي يجعل العُقدة “ممتلئة”؟
يحسم الأمر فحصان، لا فحص واحد. تتوقف العُقدة عن استقبال بوتات جديدة بمجرد بلوغها حد عدد البوتات الخاص بها، وبشكل منفصل، بمجرد أن يدفع بوت إضافي استهلاك الذاكرة المقاس فيها إلى قرب سقفها. وجود الفحص الثاني لأن حد عدد البوتات وحده لا يأخذ في الحسبان أن السيرفرات الأكثر نشاطًا تستهلك ذاكرة أكبر لكل بوت من الهادئة؛ فقد تبدو العُقدة قادرة على استيعاب المزيد استنادًا إلى عدد البوتات، لكنها قد تكون قريبة جدًا من نفاد الذاكرة بحيث لا يمكنها استقبال بوت آخر بأمان. وأيًّا كان الحد الذي يُبلغ أولًا، تنتقل الإعدادات الجديدة إلى العُقدة التالية تلقائيًا.
نقل بوتك إلى مضيف آخر
خيار Change Node في صفحة البوت المخصص ينقل بوتًا يعمل بالفعل إلى مكان آخر. كل عملية نقل تعني تسجيل دخول جديدًا إلى Discord، ويحدّ Discord من عدد مرات قيام أي بوت بذلك، لذلك توجد فترة انتظار مدتها خمس دقائق بين عمليات النقل. تُعيد عملية النقل الفعلية تشغيل البوت لفترة وجيزة أثناء إعادة اتصاله في العُقدة الجديدة، أما إعداداتك وتذاكرك والكتالوج وكل شيء آخر فلا يتأثر، لأن كل ذلك موجود في قاعدة البيانات المشتركة، لا على العُقدة التي تشغّل العملية في تلك اللحظة.
ماذا يحدث إذا واجهت عُقدة مشكلة؟
إذا توقفت نبضة البوت عن التحديث، أي أن العُقدة توقفت عن تلقي ردّ منه، يتدخل بوت Noxyr الرئيسي تلقائيًا ليغطي ذلك السيرفر من جديد، فلا يُترك الأعضاء أبدًا دون أي بوت يجيب. وبمجرد أن تتعافى العُقدة أو تسجيل الدخول، يستعيد البوت المخصص السيرفر من تلقاء نفسه في الفحص التالي. لا يحتاج هذا في الحالة العادية إلى تذكرة دعم؛ إنها حلقة الإصلاح الذاتي نفسها التي تشغّل بوتك في المرة الأولى التي تعده فيها.
لماذا تُملأ العُقد بترتيب ثابت بدلًا من التوزيع؟
قد يبدو من السهل افتراض أن الحمل يتوزع بالتساوي على كل العُقد، قليل على هذه وقليل على تلك. لكن Noxyr يفعل العكس عمدًا: تمتلئ عُقدة بالكامل قبل أن تستقبل الأخرى بوتًا جديدًا واحدًا. وهذا يُبقي عدد العُقد العاملة فعليًا في أي لحظة أصغر ما يمكن للحمل الحالي، بدلًا من تحميل عدة عُقد بشكل خفيف في وقت واحد، وهو أمر يهم لكفاءة استخدام البنية التحتية الأساسية. ولا يؤثر ذلك في سلوك بوتك بأي حال؛ فحلقة المزامنة والنبضة تعملان بالطريقة نفسها أيًّا كانت العُقدة التي تشغّله.
ما الذي تعنيه الأرقام في لوحة التحكم فعليًا؟
قيمة Ping المعروضة لكل مضيف قياس حقيقي وليست تخمينًا؛ إذ تقيس كل عُقدة بشكل دوري زمن طلب إلى نقطة Gateway الخاصة بـ Discord، وتُبلغ عن المتوسط. وتستند حالة الاتصال أو الانقطاع لكل عُقدة إلى مدى حداثة آخر تسجيل حضور لها؛ فالعُقدة التي تصمت لفترة قصيرة تُعامَل كغير متاحة بدلًا من افتراض أنها ما زالت بخير، وهذا أيضًا ما يحفّز بوت Noxyr الرئيسي على التدخل وتغطية السيرفر الذي صمت بوته المخصص.
وقت التشغيل مقابل VPS مدفوع
تشغيل VPS خاص بك يمنحك تحكمًا كاملًا في الجهاز، ومسؤولية كاملة عن ملاحظة توقفه. أما البوت المخصص المستضاف فيقايض هذا التحكم بأن تكون مهمة شخص آخر أن يلاحظ التوقف أولًا. ولا يتفوق أحدهما على الآخر في كل الحالات؛ راجع المقارنة الكاملة في البوت المخصص مقابل الاستضافة الذاتية على VPS إن كنت تفاضل بين الاثنين.
أسئلة شائعة
كيف أتحقق من أن بوتي متصل الآن؟ تعرض صفحة البوت المخصص في لوحة التحكم الحالة المباشرة، لا مجرد ما إذا كان مفعّلًا.
هل أفقد الإعدادات عندما ينتقل بوتي إلى عُقدة مختلفة؟ لا. الإعدادات محفوظة في قاعدة البيانات المشتركة، مستقلةً عن العملية الجارية على أي عُقدة تشغّل البوت.
هل يمكنني اختيار عُقدة محددة بدلًا من Automatic؟ نعم، لكنها تنتهي دائمًا على مضيف حقيقي وعامل، حتى لو كانت العُقدة التي اخترتها ممتلئة أو غير متصلة في تلك اللحظة.
كم مرة تُحدَّث الحالة في لوحة التحكم؟ كل بضع ثوانٍ؛ فالعُقدة التي تتوقف عن تلقي إشارات من بوتك تُلاحَظ بسرعة، لا بعد تأخير طويل.
هل يُحتسب وقت التوقف عليك رسومًا أو يُعاقَب بأي شكل؟ لا. لا يوجد أي دفع مرتبط بالأمر على الإطلاق؛ فمشكلات وقت التشغيل لا تكلفك شيئًا سوى أن يصبح البوت غير متاح لفترة وجيزة أثناء إعادة الاتصال.
متطلبات الإعداد الكاملة موجودة في وثائق البوت المخصص، أما آليات اختيار العُقدة وخيار Change Node بالتفصيل فموجودة في وثائق استضافة البوت المخصص.