Repliker och instanserReplicas and instances

Den här artikeln ger en översikt över livs cykeln för repliker av tillstånds känsliga tjänster och instanser av tillstånds lösa tjänster.This article gives an overview of the lifecycle of replicas of stateful services and instances of stateless services.

Instanser av tillstånds lösa tjänsterInstances of stateless services

En instans av en tillstånds lös tjänst är en kopia av tjänst logiken som körs på en av noderna i klustret.An instance of a stateless service is a copy of the service logic that runs on one of the nodes of the cluster. En instans inom en partition identifieras unikt med InstanceID.An instance within a partition is uniquely identified by its InstanceId. Livs cykeln för en instans modelleras i följande diagram:The lifecycle of an instance is modeled in the following diagram:

Instans livs cykel

Inbyggning (IB)InBuild (IB)

När kluster resurs hanteraren bestämmer en placering för instansen, anges det här livs cykel läget.After the Cluster Resource Manager determines a placement for the instance, it enters this lifecycle state. Instansen har startats på noden.The instance is started on the node. Program värden startas, instansen skapas och öppnas sedan.The application host is started, the instance is created and then opened. När starten är klar övergår instansen till klar läge.After the startup finishes, the instance transitions to the ready state.

Om program värden eller-noden för den här instansen kraschar övergår den till läget tappad.If the application host or node for this instance crashes, it transitions to the dropped state.

Redo (RD)Ready (RD)

I klart läge är instansen igång och körs på noden.In the ready state, the instance is up and running on the node. Om den här instansen är en tillförlitlig tjänst har RunAsync anropats.If this instance is a reliable service, RunAsync has been invoked.

Om program värden eller-noden för den här instansen kraschar övergår den till läget tappad.If the application host or node for this instance crashes, it transitions to the dropped state.

Stängning (CL)Closing (CL)

I stängnings tillstånd håller Azure Service Fabric processen att stänga av instansen på den här noden.In the closing state, Azure Service Fabric is in the process of shutting down the instance on this node. Den här avstängningen kan bero på många orsaker, till exempel en program uppgradering, belastnings utjämning eller att tjänsten tas bort.This shutdown might be due to many reasons--for example, an application upgrade, load balancing, or the service being deleted. När avstängningen är klar övergår den till läget tappad.After shutdown finishes, it transitions to the dropped state.

Borttagen (DD)Dropped (DD)

Instansen körs inte längre på noden i tappat tillstånd.In the dropped state, the instance is no longer running on the node. Vid det här tillfället underhåller Service Fabric metadata om den här instansen, som slutligen också tas bort.At this point, Service Fabric maintains the metadata about this instance, which is eventually deleted as well.

Anteckning

Det går att övergå från vilket tillstånd som helst till läget släppt med hjälp av alternativet ForceRemoveRemove-ServiceFabricReplica .It is possible to transition from any state to the dropped state by using the ForceRemove option on Remove-ServiceFabricReplica.

Repliker av tillstånds känsliga tjänsterReplicas of stateful services

En replik av en tillstånds känslig tjänst är en kopia av tjänst logiken som körs på en av noderna i klustret.A replica of a stateful service is a copy of the service logic running on one of the nodes of the cluster. Dessutom har repliken en kopia av tjänstens status.In addition, the replica maintains a copy of the state of that service. Två relaterade begrepp beskriver livs cykeln och beteendet för tillstånds känsliga repliker:Two related concepts describe the lifecycle and behavior of stateful replicas:

  • Replik livs cykelReplica lifecycle
  • Replik rollReplica role

I följande diskussion beskrivs sparade tillstånds känsliga tjänster.The following discussion describes persisted stateful services. För temporära (eller InMemory) tillstånds känsliga tjänster är nedsänkt och tappade tillstånd likvärdiga.For volatile (or in-memory) stateful services, the down and dropped states are equivalent.

Replik livs cykel

Inbyggning (IB)InBuild (IB)

En inbyggd replik är en replik som skapas eller förbereds för anslutning till replik uppsättningen.An InBuild replica is a replica that's created or prepared for joining the replica set. I väntan på replik rollen har IB olika semantik.Depending on the replica role, the IB has different semantics.

Om program värden eller noden för en inaktiv replik kraschar, övergår den till ned-tillstånd.If the application host or the node for an InBuild replica crashes, it transitions to the down state.

  • Primära inbyggda repliker: primär inbyggnad är de första replikerna för en partition.Primary InBuild replicas: Primary InBuild are the first replicas for a partition. Den här repliken inträffar vanligt vis när partitionen skapas.This replica usually happens when the partition is being created. Primära inbyggda repliker uppstår också när alla repliker av en partition startas om eller tas bort.Primary InBuild replicas also arise when all the replicas of a partition restart or are dropped.

  • IdleSecondary inbyggda repliker: dessa är antingen nya repliker som skapas av kluster resurs hanteraren eller befintliga repliker som gick ned och som måste läggas till i uppsättningen igen.IdleSecondary InBuild replicas: These are either new replicas that are created by the Cluster Resource Manager, or existing replicas that went down and need to be added back into the set. Dessa repliker har dirigerats eller skapats av den primära servern innan de kan ansluta till replik uppsättningen som ActiveSecondary och delta i kvorumet med att skapa åtgärder.These replicas are seeded or built by the primary before they can join the replica set as ActiveSecondary and participate in quorum acknowledgement of operations.

  • ActiveSecondary Inbygge-repliker: det här läget observeras i vissa frågor.ActiveSecondary InBuild replicas: This state is observed in some queries. Det är en optimering där replik uppsättningen inte ändras, men en replik måste skapas.It is an optimization where the replica set is not changing, but a replica needs to be built. Själva repliken följer normal tillstånds datorns över gångar (enligt beskrivningen i avsnittet om replik roller).The replica itself follows the normal state machine transitions (as described in the section on replica roles).

Redo (RD)Ready (RD)

En färdig replik är en replik som deltar i replikering och kvorum bekräftelse av åtgärder.A Ready replica is a replica that's participating in replication and quorum acknowledgement of operations. Det färdiga läget gäller för primära och aktiva sekundära repliker.The ready state is applicable to primary and active secondary replicas.

Om program värden eller noden för en färdig replik kraschar, övergår den över till ned-tillstånd.If the application host or the node for a ready replica crashes, it transitions to the down state.

Stängning (CL)Closing (CL)

En replik går in i stängnings tillstånd i följande scenarier:A replica enters the closing state in the following scenarios:

  • Stänger av koden för repliken: Service Fabric kan behöva stänga av den kod som körs för en replik.Shutting down the code for the replica: Service Fabric might need to shut down the running code for a replica. Den här avstängningen kan vara av många skäl.This shutdown might be for many reasons. Det kan till exempel inträffa på grund av ett program, en infrastruktur eller en infrastruktur uppgradering, eller på grund av ett fel som rapporteras av repliken.For example, it can happen because of an application, fabric, or infrastructure upgrade, or because of a fault reported by the replica. När replik stängningen är klar, övergår repliken till ned-tillstånd.When the replica close finishes, the replica transitions to the down state. Det sparade tillstånd som är associerat med den här repliken som lagras på disken rensas inte.The persisted state associated with this replica that's stored on disk is not cleaned up.

  • Tar bort repliken från klustret: Service Fabric kanske måste ta bort det sparade läget och stänga av den kod som körs för en replik.Removing the replica from the cluster: Service Fabric might need to remove the persisted state and shut down the running code for a replica. Den här avstängningen kan vara av många skäl, till exempel belastnings utjämning.This shutdown might be for many reasons, for example, load balancing.

Borttagen (DD)Dropped (DD)

Instansen körs inte längre på noden i tappat tillstånd.In the dropped state, the instance is no longer running on the node. Det finns inte heller något tillstånd kvar på noden.There is also no state left on the node. Vid det här tillfället underhåller Service Fabric metadata om den här instansen, som slutligen också tas bort.At this point, Service Fabric maintains the metadata about this instance, which is eventually deleted as well.

Ned (D)Down (D)

I läget down körs inte replik koden, men det sparade läget för repliken finns på noden.In the down state, the replica code is not running, but the persisted state for that replica exists on that node. En replik kan stängas av på grund av många orsaker, till exempel att noden är avstängd, en krasch i replik koden, en program uppgradering eller ett replik fel.A replica can be down for many reasons--for example, the node being down, a crash in the replica code, an application upgrade, or replica faults.

En av replikerna öppnas genom att Service Fabric vid behov, till exempel när uppgraderingen är klar på noden.A down replica is opened by Service Fabric as required, for example, when the upgrade finishes on the node.

Replik rollen är inte relevant i läget ned.The replica role is not relevant in the down state.

Öppnar (OP)Opening (OP)

En säkerhets kopia går in i öppnings tillstånd när Service Fabric måste återställa repliken igen.A down replica enters the opening state when Service Fabric needs to bring the replica back up again. Det här läget kan till exempel vara efter att kod uppgraderingen för programmet har slutförts på en nod.For example, this state might be after a code upgrade for the application finishes on a node.

Om program värden eller noden för en inledande replik kraschar, övergår den till ned-tillstånd.If the application host or the node for an opening replica crashes, it transitions to the down state.

Replik rollen är inte relevant i öppnings tillstånd.The replica role is not relevant in the opening state.

Vänte läge (SB)StandBy (SB)

En StandBy-replik är en replik av en beständiga tjänst som gick ned och sedan öppnades.A StandBy replica is a replica of a persisted service that went down and was then opened. Den här repliken kan användas av Service Fabric om den behöver lägga till en annan replik i replik uppsättningen (eftersom repliken redan har en del av status och bygg processen är snabbare).This replica might be used by Service Fabric if it needs to add another replica to the replica set (because the replica already has some portion of the state and the build process is faster). När StandByReplicaKeepDuration har gått ut ignoreras standby-repliken.After the StandByReplicaKeepDuration expires, the standby replica is discarded.

Om program värden eller noden för en standby-replik kraschar, övergår den till ned-tillstånd.If the application host or the node for a standby replica crashes, it transitions to the down state.

Replik rollen är inte relevant i vänte läge.The replica role is not relevant in the standby state.

Anteckning

Alla repliker som inte är nere eller borttagna anses vara upp.Any replica that's not down or dropped is considered to be up.

Anteckning

Det går att övergå från vilket tillstånd som helst till läget tappad med alternativet ForceRemoveRemove-ServiceFabricReplica .It's possible to transition from any state to the dropped state by using the ForceRemove option on Remove-ServiceFabricReplica.

Replik rollReplica role

Replik rollen bestämmer dess funktion i replik uppsättningen:The role of the replica determines its function in the replica set:

  • Primär (P): det finns en primär replik i den replik uppsättning som ansvarar för att utföra Läs-och skriv åtgärder.Primary (P): There is one primary in the replica set that is responsible for performing read and write operations.
  • ActiveSecondary (S): det här är repliker som tar emot tillstånds uppdateringar från den primära, tillämpar dem och sedan skickar tillbaka bekräftelser.ActiveSecondary (S): These are replicas that receive state updates from the primary, apply them, and then send back acknowledgements. Det finns flera aktiva sekundär zoner i replik uppsättningen.There are multiple active secondaries in the replica set. Antalet fel som tjänsten kan hantera, avgör hur många av dessa aktiva sekundära sekundäraThe number of these active secondaries determines the number of faults the service can handle.
  • IdleSecondary (I): dessa repliker skapas av den primära.IdleSecondary (I): These replicas are being built by the primary. De får tillstånd från den primära servern innan de kan befordras till aktiv sekundär.They are receiving state from the primary before they can be promoted to active secondary.
  • Ingen (N): dessa repliker har inget ansvar i replik uppsättningen.None (N): These replicas don't have a responsibility in the replica set.
  • Okänd (U): det här är den första rollen i en replik innan den får ett ChangeRole -API-anrop från Service Fabric.Unknown (U): This is the initial role of a replica before it receives any ChangeRole API call from Service Fabric.

Följande diagram illustrerar replik Rolls över gångar och några exempel scenarier där de kan inträffa:The following diagram illustrates the replica role transitions and some example scenarios in which they can occur:

Replik roll

  • U-> P: skapa en ny primär replik.U -> P: Creation of a new primary replica.
  • U-> I: skapa en ny inaktiv replik.U -> I: Creation of a new idle replica.
  • U-> N: borttagning av en växlings replik.U -> N: Deletion of a standby replica.
  • I-> S: befordran av sekundär sekundär till aktiv sekundär så att dess bekräftelser bidrar mot kvorum.I -> S: Promotion of the idle secondary to active secondary so that its acknowledgements contribute toward quorum.
  • I-> P: befordran av inaktiv sekundär till primär.I -> P: Promotion of the idle secondary to primary. Detta kan inträffa under särskilda omkonfigurationer när den sekundära inaktiva är rätt kandidat att vara primär.This can happen under special reconfigurations when the idle secondary is the correct candidate to be primary.
  • I-> N: borttagning av den inaktiva sekundära repliken.I -> N: Deletion of the idle secondary replica.
  • S-> P: befordran av aktiv sekundär till primär.S -> P: Promotion of the active secondary to primary. Detta kan bero på redundansväxling av den primära eller en primär förflyttning som initieras av kluster resurs hanteraren.This can be due to failover of the primary or a primary movement initiated by the Cluster Resource Manager. Det kan till exempel vara som svar på en program uppgradering eller belastnings utjämning.For example, it might be in response to an application upgrade or load balancing.
  • S-> N: borttagning av den aktiva sekundära repliken.S -> N: Deletion of the active secondary replica.
  • P-> S: degradering av den primära repliken.P -> S: Demotion of the primary replica. Detta kan bero på en primär förflyttning som initieras av kluster resurs hanteraren.This can be due to a primary movement initiated by the Cluster Resource Manager. Det kan till exempel vara som svar på en program uppgradering eller belastnings utjämning.For example, it might be in response to an application upgrade or load balancing.
  • P-> N: borttagning av den primära repliken.P -> N: Deletion of the primary replica.

Anteckning

Programmerings modeller på högre nivå, till exempel Reliable Actors och Reliable Services, döljer begreppet replik roller från utvecklaren.Higher-level programming models, such as Reliable Actors and Reliable Services, hide the concept of replica roles from the developer. I aktörer är begreppet en roll onödig.In Actors, the notion of a role is unnecessary. I tjänster är det i stort sett förenklat för de flesta scenarier.In Services, it's largely simplified for most scenarios.

Nästa stegNext steps

Mer information om Service Fabric-begrepp finns i följande artikel:For more information on Service Fabric concepts, see the following article:

Reliable Services-livscykel – C#Reliable Services lifecycle - C#