Tento dokument byl přeložen umělou inteligencí. V případě nepřesností se prosím obraťte na anglickou verzi
Před nasazením clusterové aplikace je potřeba dokončit následující přípravy.
Pro provoz aplikace NocoBase v clusterovém režimu je vyžadována podpora následujících pluginů:
| Funkce | Plugin |
|---|---|
| Adaptér mezipaměti | Vestavěný |
| Adaptér pro synchronizační signály | @nocobase/plugin-pubsub-adapter-redis |
| Adaptér fronty zpráv | @nocobase/plugin-queue-adapter-redis nebo @nocobase/plugin-queue-adapter-rabbitmq |
| Adaptér distribuovaného zámku | @nocobase/plugin-lock-adapter-redis |
| Alokátor Worker ID | @nocobase/plugin-workerid-allocator-redis |
Nejprve se prosím ujistěte, že jste získali licence pro výše uvedené pluginy (příslušné licence pluginů si můžete zakoupit prostřednictvím platformy služeb pro komerční pluginy).
Ostatní systémové komponenty, kromě samotné instance aplikace, si mohou provozní pracovníci vybrat sami na základě provozních potřeb týmu.
Jelikož současný clusterový režim cílí pouze na instance aplikací, databáze prozatím podporuje pouze jeden uzel. Pokud máte databázovou architekturu typu master-slave, musíte ji implementovat sami prostřednictvím middleware a zajistit, aby byla pro aplikaci NocoBase transparentní.
Clusterový režim NocoBase se spoléhá na některé middleware pro zajištění komunikace a koordinace mezi clustery, včetně:
Pokud všechny komponenty middleware používají Redis, můžete spustit jednu službu Redis v interní síti clusteru (nebo v Kubernetes). Alternativně můžete pro každou funkci (mezipaměť, synchronizační signál, fronta zpráv a distribuovaný zámek) povolit samostatnou službu Redis.
Doporučení k verzím
NocoBase potřebuje používat adresář storage pro ukládání souborů souvisejících se systémem. V režimu více uzlů byste měli připojit cloudový disk (nebo NFS), aby byl podporován sdílený přístup napříč více uzly. V opačném případě se lokální úložiště nebude automaticky synchronizovat a nebude správně fungovat.
Při nasazování s Kubernetes se prosím podívejte na kapitolu Nasazení Kubernetes: Sdílené úložiště.
Clusterový režim vyžaduje vyrovnávač zátěže pro distribuci požadavků, stejně jako pro kontroly stavu a převzetí služeb při selhání instancí aplikací. Tuto část byste měli vybrat a nakonfigurovat podle provozních potřeb týmu.
Vezměme si jako příklad vlastní Nginx; do konfiguračního souboru přidejte následující obsah:
To znamená, že požadavky jsou reverzně proxyovány a distribuovány na různé serverové uzly ke zpracování.
Pro middleware vyrovnávání zátěže poskytovaný jinými poskytovateli cloudových služeb se prosím podívejte na konfigurační dokumentaci poskytnutou konkrétním poskytovatelem.
Všechny uzly v clusteru by měly používat stejnou konfiguraci proměnných prostředí. Kromě základních proměnných prostředí NocoBase je také potřeba nakonfigurovat následující proměnné prostředí související s middleware.
Když aplikace běží na vícejádrovém uzlu, můžete povolit vícejádrový režim uzlu:
Pokud nasazujete pody aplikací v Kubernetes, můžete tuto konfiguraci ignorovat a řídit počet instancí aplikací prostřednictvím počtu replik podů.
Jelikož některé systémové kolekce v NocoBase používají globálně unikátní ID jako primární klíče, je potřeba zajistit, aby každá instance aplikace v clusteru získala unikátní Worker ID prostřednictvím Alokátoru Worker ID, a tím se předešlo problémům s konflikty primárních klíčů. Aktuální rozsah Worker ID je 0–31, což znamená, že stejná aplikace může současně běžet na maximálně 32 uzlech. Podrobnosti o návrhu globálně unikátního ID naleznete v @nocobase/snowflake-id.
Obvykle mohou všechny související adaptéry používat stejnou instanci Redis, ale je nejlepší používat různé databáze, aby se předešlo potenciálním problémům s konflikty klíčů, například:
V současné době každý plugin používá vlastní proměnné prostředí související s Redis. V budoucnu zvážíme sjednocení a použití REDIS_URL jako záložní konfigurace.
Pokud používáte Kubernetes pro správu clusteru, můžete výše uvedené proměnné prostředí nakonfigurovat v ConfigMap nebo Secret. Další související informace naleznete v Nasazení Kubernetes.
Po dokončení všech výše uvedených příprav můžete přejít na Provozní postupy a pokračovat ve správě instancí aplikací.