Dela via


Tjänsttillstånd

Tjänsttillstånd refererar till minnesintern eller 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.

Lagra tjänsttillstånd

Tillståndet kan antingen externaliseras eller samlokaliseras med den kod som manipulerar tillståndet. Externalisering av tillstånd utförs vanligtvis med hjälp av en extern databas eller ett annat datalager som körs på olika datorer via nätverket eller utan process 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 ska returnera värdet, vilket resulterar i att det aktuella värdet hämtas från arkivet.

Tillståndet 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: