Clustering och lastbalansering
Vad är Clustering och lastbalansering
Server Clustering är en metod för att förvandla flera datorservrar till ett kluster, vilket är en grupp servrar som fungerar som ett enda system.
lastbalansering handlar om fördelningen av arbetsbelastningar över flera datorresurser, till exempel datorer, serverkluster, nätverkslänkar etc. Lastbalansering syftar till att optimera resursanvändningen, maximera genomströmningen, minimera svarstiden och undvika överbelastning av en enda resurs.
en MongoDB replika Set är en grupp av mongod
processer som upprätthåller samma datamängd. Replika uppsättningar ger redundans och hög tillgänglighet, och är grunden för alla produktion distributioner.
hög tillgänglighet (ha) är en allmän egenskap hos ett system som syftar till att säkerställa en överenskommen nivå av operativ prestanda, vanligtvis drifttid, under en högre period än normalt.
RESTHeart har alltid varit en mycket bra passform för mikrotjänster och andra stilar av distribuerad arkitektur. Det har framgångsrikt distribuerats med klustertekniker som AWS ECS och Fargate, Kubernetes och många andra.
hur det fungerar
RESTHeart tar i princip emot HTTP-förfrågningar och omvandlar dem till MongoDB-frågor via Java-drivrutinen. Att skapa ett kluster har varit en fråga om att sätta en vanlig HTTP-lastbalanserare ovanpå den valda klustertekniken, precis som man skulle göra med någon annan HTTP-server.
RESTHeart är statslös för alla funktioner men för standard Token Manager som används för token autentisering. Denna implementering som kommer med RESTHeart OSS håller tokens i minnet. Som ett resultat stöder det inte kluster.
således kräver ett kluster av RESTHeart-noder klibbiga sessioner när du använder token-autentisering, annars kan RESTHeart-noden få en autentiseringstoken skapad av en annan instans, vilket resulterar i ett HTTP 401 “obehörigt” fel.
eftersom RESTHeart-instanser inte kommunicerar direkt (för att undvika dyra synkroniseringssteg), kan de inte validera autentiseringstoken som skapats av andra instanser i samma kluster. För att övervinna denna situation infogar HTTP Load Balancer en klibbig sessionstoken i en cookie och hanterar sedan kommunikationsflödet från klienter till RESTHeart-instanser i enlighet därmed. Klibbiga sessioner, ur arkitektonisk synvinkel, introducerar en nivå av statefulness i systemet och deras utgångstid måste noggrant ställas in.
RESTHeart EE kapacitet
köpa en RESTHeart kommersiell licens clustering kan konfigureras enklare, utan behov av klibbiga sessioner. Detta möjliggör en helt statslös utplacering.
med licensen kan du få en specialiserad Tokenhanterare som skapar kryptografiskt signerade tokens som kan erkännas av någon RESTHeart-nod i klustret utan direkt kommunikation och synkronisering bland dem: snabb, enkel och säker.
mer information finns på dokumentationssidan för Token Manager.
Sammanfattningsvis är de översta stegen för en mycket tillgänglig RESTHeart + MongoDB-konfiguration:
-
skapa en MongoDB replika Set;
-
skapa ett RESTHeart-kluster kopplat till MongoDB-replik;
-
sätt en HTTP-lastbalanserare ovanpå den.
om du vill veta mer om clustering, lastbalansering och hög tillgänglighet, vänligen kontakta oss.
Leave a Reply