Tjänsttillstånd

Tjänsttillstånd refererar till minnesintern eller på diskdata som en tjänst behöver för att fungera. Den innehåller till exempel de datastrukturer och medlemsvariabler som tjänsten läser och skriver för att utföra arbete. Beroende på hur tjänsten är konstruerad kan den även innehålla filer eller andra resurser som lagras på disken. Till exempel de filer som en databas skulle använda för att lagra data och transaktionsloggar.

Som en exempeltjänst ska vi överväga en kalkylator. En grundläggande kalkylatortjänst tar två tal och returnerar summan. När du utför den här beräkningen ingår inga medlemsvariabler eller annan information.

Överväg nu samma kalkylator, men med ytterligare en metod för att lagra och returnera den senaste summan som den har beräknat. Den här tjänsten är nu tillståndskänslig. Tillståndskänslig innebär att den innehåller något tillstånd som den skriver till när den beräknar en ny summa och läser från när du ber den att returnera den senaste beräknade summan.

I Azure Service Fabric kallas den första tjänsten för en tillståndslös tjänst. Den andra tjänsten kallas för en tillståndskänslig tjänst.

Lagring av tjänsttillstånd

Tillståndet kan antingen vara externaliserat eller samlokaliserat med den kod som ändrar tillståndet. Externalisering av tillstånd görs vanligtvis med hjälp av en extern databas eller ett annat datalager som körs på olika datorer i nätverket eller utanför processen på samma dator. I vårt kalkylatorexempel kan datalagret vara en SQL-databas eller instans av Azure Table Store. Varje begäran om att beräkna summan utför en uppdatering av dessa data och begär att tjänsten returnerar värderesultatet i det aktuella värdet som hämtas från arkivet.

Tillstånd kan också finnas tillsammans med den kod som manipulerar tillståndet. Tillståndskänsliga tjänster i Service Fabric skapas vanligtvis med den här modellen. Service Fabric tillhandahåller infrastrukturen för att säkerställa att det här tillståndet är mycket tillgängligt, konsekvent och beständigt, och att de tjänster som skapats på det här sättet enkelt kan skalas.

Nästa steg

Mer information om Service Fabric-begrepp finns i följande artiklar: