Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Tips/Råd
Det här innehållet är ett utdrag från eBook, .NET Microservices Architecture for Containerized .NET Applications, tillgängligt på .NET Docs eller som en kostnadsfri nedladdningsbar PDF som kan läsas offline.
Mikrotjänster erbjuder stora fördelar men ger också stora nya utmaningar. Arkitekturmönster för mikrotjänster är grundläggande grundpelare när du skapar ett mikrotjänstbaserat program.
Tidigare i den här guiden lärde du dig grundläggande begrepp om containrar och Docker. Den informationen var det minsta du behövde för att komma igång med containrar. Även om containrar är aktiverare för och passar bra för mikrotjänster är de inte obligatoriska för en mikrotjänstarkitektur. Många arkitekturbegrepp i det här arkitekturavsnittet kan användas utan containrar. Den här guiden fokuserar dock på skärningspunkten mellan båda på grund av containrarnas redan införda betydelse.
Företagsprogram kan vara komplexa och består ofta av flera tjänster i stället för ett enda tjänstbaserat program. I dessa fall måste du förstå andra arkitekturmetoder, till exempel mikrotjänster och vissa Domain-Driven designmönster (DDD) plus koncept för containerorkestrering. Observera att det här kapitlet inte bara beskriver mikrotjänster på containrar, utan även alla containerbaserade program.
Principer för containerdesign
I containermodellen representerar en containeravbildningsinstans en enda process. Genom att definiera en containeravbildning som en processgräns kan du skapa primitiver som kan användas för att skala eller batcha processen.
När du utformar en containeravbildning visas en ENTRYPOINT-definition i Dockerfile. Den här definitionen definierar den process vars livslängd styr containerns livslängd. När processen är klar avslutas containerns livscykel. Containrar kan representera långvariga processer som webbservrar, men kan också representera kortvariga processer som batchjobb, som tidigare kunde ha implementerats som Azure WebJobs.
Om processen misslyckas, avslutas containern och orkestreraren tar över. Om orkestreraren har konfigurerats för att hålla fem instanser igång och en misslyckas skapar orkestreraren en annan containerinstans för att ersätta den misslyckade processen. I ett batchjobb startas processen med parametrar. När processen är klar är arbetet klart. Den här vägledningen fokuserar mer på orkestratorer senare.
Du kan hitta ett scenario där du vill att flera processer ska köras i en enda container. I det scenariot, eftersom det bara kan finnas en startpunkt per container, kan du köra ett skript i containern som startar så många program som behövs. Du kan till exempel använda Övervakare eller ett liknande verktyg för att starta flera processer i en enda container. Men även om du kan hitta arkitekturer som innehåller flera processer per container är den metoden inte särskilt vanlig.