Dostupnost hostovaného vlastního bota pro Discord závisí úplně na infrastruktuře za ním. U Vlastního bota od Noxyru je to sada hostitelských uzlů, které automaticky vyberou hostitele pro vašeho bota, každých pár sekund ho kontrolují a přesunou ho, aniž byste se kdy sami dotkli serveru. Vložíte token; nic nezřizujete, neopravujete ani nerestartujete.

A user's bot token runs on a Noxyr node and comes online as their own branded bot. Your token Noxyr node MyBot Online

Server nespravujete vy, spravují ho uzly Noxyru

Každý uzel je jeden proces, který hostuje všechny vlastní boty jemu přiřazené. V krátkém cyklu kontroluje, které boty mají běžet, spouští je, zastavuje ty, které mají být vypnuté, a zapisuje heartbeat, který web čte. To je celá práce, kterou infrastruktura odvede místo vás a kterou byste jinak museli dělat sami na VPS: udržet proces naživu, hlídat jeho pád a znovu se přihlásit, když vás Discord odpojí z důvodu, který nezavinil váš bot.

Jak se hostitel vybere při nastavení

Automatický výběr je výchozí a většina lidí by ho měla nechat zapnutý. Vždy vybere uzel, který má právě volné místo, a uzly se plní v pevném pořadí: jeden se vyplní, než další začne přijímat nové boty, místo aby se zátěž rovnoměrně rozprostřela a každý uzel zůstal napůl prázdný. Ruční výběr konkrétního hostitele vás i tak nasměruje na skutečný, funkční uzel v zákulisí: pokud je ten, který jste vybrali, zrovna offline nebo plný, použije se nejlepší dostupný místo toho, aby nastavení jednoduše selhalo.

Co dělá uzel „plným“

Rozhodují dvě kontroly, ne jedna. Uzel přestane přijímat nové boty, jakmile dosáhne svého limitu počtu botů, a zvlášť ve chvíli, kdy by další bot posunul jeho měřenou spotřebu paměti blízko k jeho stropu. Druhá kontrola existuje proto, že samotný limit počtu nepočítá s tím, že vytíženější servery spotřebují na bota víc paměti než klidné; uzel, který podle počtu botů vypadá, že má místo, může být stále příliš blízko vyčerpání paměti, než aby bezpečně přijal dalšího. Kterýkoli limit se dosáhne jako první, nová nastavení se automaticky přesunou na další uzel.

Přesun vašeho bota na jiného hostitele

Změnit uzel na stránce Vlastního bota přesune už běžícího bota jinam. Každý přesun je nové přihlášení do Discordu a Discord omezuje, jak často to jeden bot může dělat, takže mezi přesuny je pětiminutová prodleva. Skutečný přesun bota na chvíli restartuje, zatímco se znovu připojí na novém uzlu. Vaše nastavení, tikety, katalog a všechno ostatní zůstane nedotčené, protože vše je uloženo ve sdílené databázi, ne na tom uzlu, který zrovna proces spouští.

Co se stane, když má uzel problém

Pokud heartbeat bota zestárne, tedy uzel přestal od bota dostávat odpovědi, hlavní bot Noxyru znovu zakročí a automaticky pokryje ten server, takže členové nikdy nezůstanou bez jakéhokoli odpovídajícího bota. Jakmile se uzel nebo přihlášení obnoví, vlastní bot si server při další kontrole sám znovu převezme. V běžném případě k tomu nepotřebujete žádný podpůrný tiket; je to stejná samoopravná smyčka, která váš bot spustí poprvé, když ho nastavíte.

Proč se uzly plní v pevném pořadí, a ne rovnoměrně

Snadno by se dalo předpokládat, že zátěž se rozloží rovnoměrně mezi všechny uzly, trochu na tento, trochu na onen. Noxyr dělá záměrně opak: jeden uzel se úplně zaplní, než další přijme jediného nového bota. Díky tomu je počet uzlů, které v daném okamžiku skutečně běží, pro aktuální zátěž co nejmenší, místo aby několik uzlů běželo lehce zatížených zároveň, což je důležité pro to, jak efektivně se využívá podkladová infrastruktura. Na chování vašeho bota to nemá žádný vliv; synchronizační smyčka a heartbeat fungují stejně, bez ohledu na to, který uzel ho nakonec provozuje.

Co čísla na dashboardu opravdu znamenají

Ping zobrazený u hostitele je skutečné měření, ne odhad: každý uzel pravidelně změří dobu požadavku na gateway endpoint Discordu a nahlásí průměr. Stav uzlu online/offline vychází z toho, jak nedávno naposledy ohlásil svou přítomnost. Uzel, který se nějakou dobu krátce neozývá, je považován za nedostupný, místo aby se předpokládalo, že je v pořádku. A právě to spouští zásah hlavního bota Noxyru, který pokryje server, jehož vlastní bot zmlkl.

Dostupnost oproti placenému VPS

Vlastní VPS vám dává plnou kontrolu nad strojem a plnou odpovědnost za to, že si všimnete, když vypadne. Hostovaný vlastní bot tuto kontrolu vyměňuje za to, že něčí jiný úkol je všimnout si toho jako první. Ani jedno není v každém případě striktně lepší; pokud se rozhodujete mezi oběma, podívejte se na naše úplné srovnání v článku vlastní bot vs. vlastní hosting na VPS.

Časté otázky

Jak zjistím, jestli je můj bot právě online? Stránka Vlastního bota na dashboardu ukazuje živý stav, ne jen to, jestli je zapnutý.

Ztratím nastavení, když se můj bot přesune na jiný uzel? Ne. Nastavení jsou uložena ve sdílené databázi, nezávisle na tom, který proces uzlu zrovna bota provozuje.

Můžu vybrat konkrétní uzel místo Automatického? Ano, ale i tak to vždy skončí na skutečném, funkčním hostiteli, i když je ten, který jste vybrali, v danou chvíli plný nebo offline.

Jak často se stav na dashboardu obnovuje? Každých pár sekund; uzel, který přestane od vašeho bota slyšet, je zjištěn rychle, ne až po dlouhé prodlevě.

Je výpadek nějak účtován nebo penalizován? Ne. Žádná platba v tom vůbec není; problémy s dostupností vás nestojí nic jiného než to, že je bot na chvíli nedostupný, dokud se znovu nepřipojí.

Kompletní požadavky na nastavení najdete v dokumentaci k Vlastnímu botovi a přesná pravidla výběru uzlu a funkce Změnit uzel v dokumentaci k hostingu vlastního bota.