INTEGRITY Dokumentace

O službě

Waiting Room zařazuje návštěvníky do fronty ve chvíli, kdy se váš provoz blíží dříve definované prahové hodnotě, která by jinak mohla aplikaci zahltit.

Průběh procesu Waiting Room znázorňující, jak Cloudflare zpracovává požadavek a umístí ho do čekárny, než dosáhne origin serveru

User flow

Jakmile máte vytvořili a aktivovali čekárnu pro konkrétní stránku aplikace:

Architektura

Waiting Room je postavený na Workers která běží napříč globální sítí datových center Cloudflare.

Když požadavek přijde na hostitele nebo cestu chráněnou pomocí Waiting Room, je odeslán do Waiting Room Workeru v nejbližším geografickém datovém centru. Worker poté musí rozhodnout, zda uživatele odešle do fronty, nebo na web.

Toto rozhodnutí samo o sobě závisí na dvou faktorech: prahové hodnoty definované administrátorem a stav čekárny.

U prahových hodnot definovaných administrátorem jsou důležité tyto dvě hodnoty: total active users a new users per minute:

Prudký nárůst kterékoli z těchto hodnot může vést k řazení do fronty. Dalším nastavením, které ovlivňuje způsob výpočtu the total active users je session duration. Uživatel je považován za aktivního po dobu session duration minut od okamžiku, kdy byl odeslán požadavek na libovolnou stránku zahrnutou do čekárny.

Druhým faktorem je stav Waiting Room, který se udržuje na úrovni místního datacentra, ale zároveň se průběžně mění podle provozu z celého světa. Každé datacentrum pracuje s vlastním stavem Waiting Room. Tento stav představuje snímek vzorce provozu webu z celého světa dostupný v daném okamžiku. Výhodou tohoto přístupu, tedy rozhodování na úrovni Workeru, je to, že lze rozhodnutí dělat bez výrazného zpoždění přidaného k požadavku. Algoritmus Waiting Room dynamicky přiděluje každému Workeru určitý počet dostupných míst na základě stavu Waiting Room. Řazení do fronty začíná, jakmile v rámci Workeru dojdou volná místa. Absence dodatečného zpoždění umožňuje zákazníkům mít waiting room zapnutý neustále, aniž by se museli obávat dodatečné latence pro své uživatele.

Stav Waiting Room se aktualizuje globálními informacemi každých pár sekund. V Cloudflare máme nastavený kanál Durable Objects která zajišťuje, že se změny provozu šíří po celém světě. Tato architektura zaručuje, že nedochází k dodatečnému zpoždění a že rozhodnutí jsou přijímána s co nejmenším zpožděním od reálného času.

Další podrobnosti o architektuře a důvodech těchto rozhodnutí najdete v našem podrobný technický blog ↗.