Designmönster för mikrotjänster

Azure Cloud Services

Målet med mikrotjänster är att öka hastigheten för programversioner genom att dela upp programmet i små autonoma tjänster som kan distribueras oberoende av varandra. En arkitektur för mikrotjänster medför också vissa utmaningar. Designmönstren som visas här kan hjälpa dig att lösa dessa utmaningar.

Microservices design patterns

Ambassadören kan användas för att avlasta vanliga klientanslutningsuppgifter som övervakning, loggning, routning och säkerhet (till exempel TLS) på ett språkoberoende sätt. Ambassadörstjänster distribueras ofta som sidovagn (se nedan).

Antikorruptionsskiktet implementerar en fasad mellan nya och äldre program för att säkerställa att utformningen av ett nytt program inte begränsas av beroenden på äldre system.

Serverdelar för klientdelar skapar separata serverdelstjänster för olika typer av klienter, till exempel skrivbord och mobil. På så sätt behöver inte en enda serverdelstjänst hantera motstridiga krav för olika klienttyper. Det här mönstret kan hjälpa till att hålla varje mikrotjänst enkel genom att separera klientspecifika problem.

Bulkhead isolerar kritiska resurser, till exempel anslutningspool, minne och CPU, för varje arbetsbelastning eller tjänst. Med hjälp av skott kan en enskild arbetsbelastning (eller tjänst) inte förbruka alla resurser och svälta andra. Det här mönstret ökar systemets återhämtning genom att förhindra sammanhängande fel som orsakas av en tjänst.

Gateway-sammansättning aggregerar begäranden till flera enskilda mikrotjänster i en enda begäran, vilket minskar chattigheten mellan konsumenter och tjänster.

Gatewayavlastning gör att varje mikrotjänst kan avlasta funktioner för delade tjänster, till exempel användning av SSL-certifikat, till en API-gateway.

Gateway-routning dirigerar begäranden till flera mikrotjänster med hjälp av en enda slutpunkt, så att konsumenterna inte behöver hantera många separata slutpunkter.

Messaging Bridge integrerar olika system som skapats med olika meddelandeinfrastrukturer.

Sidecar distribuerar hjälpkomponenter i ett program som en separat container eller process för att tillhandahålla isolering och inkapsling.

Strangler Fig stöder inkrementell refaktorisering av ett program genom att gradvis ersätta specifika funktioner med nya tjänster.

Den fullständiga katalogen med molndesignmönster i Azure Architecture Center finns i Mönster för molndesign.

Nästa steg