Detta dokument har översatts av AI. För korrekt information, se den engelska versionen.
Fler-applikationsläget med delat minne har tydliga fördelar vid driftsättning och underhåll, men i takt med att antalet applikationer och verksamhetens komplexitet ökar kan en enskild instans gradvis ställas inför problem som resurskonflikter och försämrad stabilitet. För sådana scenarier kan ni använda en hybridlösning med flera miljöer för att stödja mer komplexa affärskrav.
I detta läge distribuerar systemet en ingångsapplikation som ett enhetligt hanterings- och schemaläggningscenter, samtidigt som flera NocoBase-instanser distribueras som oberoende körtidsmiljöer som faktiskt bär affärsapplikationerna. Varje miljö är isolerad från de andra men samarbetar, vilket effektivt sprider belastningen från en enskild instans och avsevärt förbättrar systemets stabilitet, skalbarhet och felisolering.
På distributionsnivå kan olika miljöer köras i oberoende processer, distribueras som olika Docker-containrar eller existera i form av flera Kubernetes-distributioner, vilket gör det möjligt att flexibelt anpassa sig till infrastrukturmiljöer av olika storlekar och arkitekturer.
I hybridläget med flera miljöer:
För närvarande tillhandahålls ingen funktion för att skapa miljöer; varje arbetsapplikation måste distribueras manuellt och konfigureras med motsvarande miljöinformation innan den kan identifieras av ingångsapplikationen.
Förbered följande tjänster före distribution:
Redis
Databas
Ingångsapplikationen fungerar som ett enhetligt hanteringscenter och ansvarar för att skapa, starta och stoppa applikationer, schemalägga miljöer samt agera åtkomstproxy för applikationer.
Förklaring av miljövariabler för ingångsapplikationen:
Arbetsapplikationen fungerar som den faktiska körtidsmiljön för verksamheten och ansvarar för att bära och köra specifika NocoBase-applikationsinstanser.
Förklaring av miljövariabler för arbetsapplikationen:
Följande exempel visar en hybridlösning för distribution i flera miljöer med Docker-containrar som körenheter, där en ingångsapplikation och två arbetsapplikationer distribueras samtidigt via Docker Compose.
De grundläggande hanteringsåtgärderna för applikationer skiljer sig inte från läget med delat minne, se Läget med delat minne. Detta avsnitt introducerar främst innehåll relaterat till konfiguration av flera miljöer.
Efter distributionen går ni till sidan "Applikationsövervakare" i ingångsapplikationen. Under fliken "Miljöer" kan ni se listan över registrerade arbetsmiljöer. Detta inkluderar miljöidentifierare, version av arbetsapplikationen, åtkomst-URL och status. Arbetsapplikationen rapporterar en pulssignal varannan minut för att säkerställa miljöns tillgänglighet.

När ni skapar en applikation kan ni välja en eller flera körtidsmiljöer för att ange i vilka arbetsapplikationer applikationen ska distribueras. I normala fall rekommenderas att ni väljer en miljö. Välj flera miljöer endast om arbetsapplikationen har genomgått tjänsteuppdelning och ni behöver distribuera samma applikation i flera körtidsmiljöer för att uppnå lastbalansering eller funktionsisolering.

Applikationslistan visar varje applikations nuvarande körtidsmiljö och statusinformation. Om en applikation är distribuerad i flera miljöer visas flera körstatusar. Samma applikation i flera miljöer kommer under normala omständigheter att bibehålla en enhetlig status och behöver styras gemensamt för start och stopp.

Eftersom applikationen kan skriva initialiseringsdata till databasen vid start, kommer applikationer som distribueras i flera miljöer att startas i kö för att undvika kapplöpningsproblem (race conditions) i miljöer med flera instanser.

Arbetsapplikationer kan nås via proxy genom ingångsapplikationens undersökväg /apps/:appName/admin.

Om applikationen är distribuerad i flera miljöer måste ni ange en målmiljö för proxyåtkomst.

Som standard använder proxyadressen arbetsapplikationens åtkomstadress, vilket motsvarar miljövariabeln ENVIRONMENT_URL. Se till att denna adress är tillgänglig i det nätverk där ingångsapplikationen befinner sig. Om ni behöver använda en annan proxyadress kan den skrivas över via miljövariabeln ENVIRONMENT_PROXY_URL.