Repliki i wystąpieniaReplicas and instances

Ten artykuł zawiera omówienie cyklu życia replik usług stanowych i wystąpień usług bezstanowych.This article gives an overview of the lifecycle of replicas of stateful services and instances of stateless services.

Wystąpienia usług bezstanowychInstances of stateless services

Wystąpienie usługi bezstanowej to kopia logiki usługi, która jest uruchamiana na jednym z węzłów klastra.An instance of a stateless service is a copy of the service logic that runs on one of the nodes of the cluster. Wystąpienie w ramach partycji jest jednoznacznie identyfikowane przez jego Identyfikator InstanceId.An instance within a partition is uniquely identified by its InstanceId. Cykl życia wystąpienia jest modelowany na poniższym diagramie:The lifecycle of an instance is modeled in the following diagram:

Cykl życia wystąpienia

Kompilacja (IB)InBuild (IB)

Gdy klaster Menedżer zasobów określi położenie wystąpienia, przechodzi do tego stanu cyklu życia.After the Cluster Resource Manager determines a placement for the instance, it enters this lifecycle state. Wystąpienie jest uruchamiane w węźle.The instance is started on the node. Host aplikacji został uruchomiony, wystąpienie zostanie utworzone, a następnie otwarte.The application host is started, the instance is created and then opened. Po zakończeniu uruchamiania wystąpienie przechodzi do stanu gotowości.After the startup finishes, the instance transitions to the ready state.

Jeśli host lub węzeł aplikacji dla tego wystąpienia ulegnie awarii, przechodzi do stanu porzucenia.If the application host or node for this instance crashes, it transitions to the dropped state.

Gotowe (RD)Ready (RD)

W stanie gotowe wystąpienie jest uruchomione w węźle.In the ready state, the instance is up and running on the node. Jeśli to wystąpienie jest niezawodne, RunAsync został wywołany.If this instance is a reliable service, RunAsync has been invoked.

Jeśli host lub węzeł aplikacji dla tego wystąpienia ulegnie awarii, przechodzi do stanu porzucenia.If the application host or node for this instance crashes, it transitions to the dropped state.

Zamykanie (CL)Closing (CL)

W stanie zamykania usługa Azure Service Fabric jest w trakcie zamykania wystąpienia w tym węźle.In the closing state, Azure Service Fabric is in the process of shutting down the instance on this node. To zamknięcie może wynikać z wielu powodów — na przykład uaktualnienie aplikacji, równoważenie obciążenia lub usunięcie usługi.This shutdown might be due to many reasons--for example, an application upgrade, load balancing, or the service being deleted. Po zakończeniu zamykania przechodzi do stanu porzucenia.After shutdown finishes, it transitions to the dropped state.

Porzucone (DD)Dropped (DD)

W stanie opuszczone wystąpienie nie jest już uruchomione w węźle.In the dropped state, the instance is no longer running on the node. W tym momencie Service Fabric utrzymuje metadane dotyczące tego wystąpienia, które ostatecznie również zostały usunięte.At this point, Service Fabric maintains the metadata about this instance, which is eventually deleted as well.

Uwaga

Istnieje możliwość przejścia z dowolnego stanu do stanu porzuconego przy użyciu opcji ForceRemove w systemie Remove-ServiceFabricReplica .It is possible to transition from any state to the dropped state by using the ForceRemove option on Remove-ServiceFabricReplica.

Repliki usług stanowychReplicas of stateful services

Replika usługi stanowej to kopia logiki usługi działającej na jednym z węzłów klastra.A replica of a stateful service is a copy of the service logic running on one of the nodes of the cluster. Ponadto replika zachowuje kopię stanu tej usługi.In addition, the replica maintains a copy of the state of that service. Dwa powiązane koncepcje opisują cykl życia i zachowanie replik stanowych:Two related concepts describe the lifecycle and behavior of stateful replicas:

  • Cykl życia replikiReplica lifecycle
  • Rola replikiReplica role

W poniższej dyskusji opisano trwałe usługi stanowe.The following discussion describes persisted stateful services. W przypadku nietrwałych (lub w pamięci) usług stanowych, Stany Down i rzucony są równoważne.For volatile (or in-memory) stateful services, the down and dropped states are equivalent.

Cykl życia repliki

Kompilacja (IB)InBuild (IB)

Replika inbuild to replika utworzona lub przygotowana do przyłączenia do zestawu replik.An InBuild replica is a replica that's created or prepared for joining the replica set. W zależności od roli repliki IB ma inną semantykę.Depending on the replica role, the IB has different semantics.

Jeśli host aplikacji lub węzeł dla repliki inbuild ulegnie awarii, przechodzi do stanu Down.If the application host or the node for an InBuild replica crashes, it transitions to the down state.

  • Repliki podstawowej kompilacji: podstawowa kompilacja jest pierwszą repliką partycji.Primary InBuild replicas: Primary InBuild are the first replicas for a partition. Ta replika zwykle występuje, gdy tworzona jest partycja.This replica usually happens when the partition is being created. Repliki podstawowej kompilacji powstają również wtedy, gdy wszystkie repliki partycji zostaną ponownie uruchomione lub usunięte.Primary InBuild replicas also arise when all the replicas of a partition restart or are dropped.

  • Repliki IdleSecondary inbuild: są to nowe repliki, które są tworzone przez klaster Menedżer zasobów, lub istniejące repliki, które pozostały i muszą zostać dodane z powrotem do zestawu.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. Te repliki są umieszczane lub tworzone przez podstawowy przed dołączeniem ich do zestawu replik jako ActiveSecondary i uczestniczenia w potwierdzeniu kworum operacji.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.

  • Repliki ActiveSecondary inbuild: ten stan jest zaobserwowany w niektórych zapytaniach.ActiveSecondary InBuild replicas: This state is observed in some queries. Jest to Optymalizacja, w której zestaw replik nie ulega zmianie, ale należy utworzyć replikę.It is an optimization where the replica set is not changing, but a replica needs to be built. Replika jest zgodna z normalnymi przejściami stanu komputera (zgodnie z opisem w sekcji role repliki).The replica itself follows the normal state machine transitions (as described in the section on replica roles).

Gotowe (RD)Ready (RD)

Replika jest przygotowana do repliki, która uczestniczy w replikacji oraz potwierdzania kworum operacji.A Ready replica is a replica that's participating in replication and quorum acknowledgement of operations. Stan gotowości dotyczy podstawowych i aktywnych replik pomocniczych.The ready state is applicable to primary and active secondary replicas.

Jeśli host aplikacji lub węzeł dla gotowej repliki ulegnie awarii, przechodzi do stanu Down.If the application host or the node for a ready replica crashes, it transitions to the down state.

Zamykanie (CL)Closing (CL)

Replika przechodzi w stan zamknięcia w następujących scenariuszach:A replica enters the closing state in the following scenarios:

  • Zamykanie kodu repliki: Service Fabric może zajść konieczność zamknięcia uruchomionego kodu dla repliki.Shutting down the code for the replica: Service Fabric might need to shut down the running code for a replica. To zamknięcie może się nie powieść z wielu powodów.This shutdown might be for many reasons. Na przykład może się to zdarzyć ze względu na uaktualnienie aplikacji, sieci szkieletowej lub infrastruktury lub z powodu błędu zgłoszonego przez replikę.For example, it can happen because of an application, fabric, or infrastructure upgrade, or because of a fault reported by the replica. Po zakończeniu zamknięcia repliki następuje przejście do stanu Down.When the replica close finishes, the replica transitions to the down state. Utrwalony stan skojarzony z tą repliką przechowywaną na dysku nie został wyczyszczony.The persisted state associated with this replica that's stored on disk is not cleaned up.

  • Usuwanie repliki z klastra: Service Fabric może być konieczne usunięcie stanu trwałego i zamknięcie uruchomionego kodu dla repliki.Removing the replica from the cluster: Service Fabric might need to remove the persisted state and shut down the running code for a replica. To zamknięcie może mieć wiele przyczyn, na przykład Równoważenie obciążenia.This shutdown might be for many reasons, for example, load balancing.

Porzucone (DD)Dropped (DD)

W stanie opuszczone wystąpienie nie jest już uruchomione w węźle.In the dropped state, the instance is no longer running on the node. W węźle nie ma również żadnego stanu.There is also no state left on the node. W tym momencie Service Fabric utrzymuje metadane dotyczące tego wystąpienia, które ostatecznie również zostały usunięte.At this point, Service Fabric maintains the metadata about this instance, which is eventually deleted as well.

W dół (D)Down (D)

W stanie down kod repliki nie jest uruchomiony, ale trwały stan dla tej repliki istnieje w tym węźle.In the down state, the replica code is not running, but the persisted state for that replica exists on that node. Replika może być nieprzerwana z wielu powodów — na przykład, w którym węźle jest wyłączony, awaria w kodzie repliki, uaktualnienie aplikacji lub błędy replik.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.

Replika w dół jest otwierana przez Service Fabric zgodnie z potrzebami, na przykład po zakończeniu uaktualniania w węźle.A down replica is opened by Service Fabric as required, for example, when the upgrade finishes on the node.

Rola repliki nie jest odpowiednia w stanie down.The replica role is not relevant in the down state.

Otwieranie (OP)Opening (OP)

Replika w dół przechodzi do stanu otwarcia, gdy Service Fabric musi ponownie wykonać kopię zapasową repliki.A down replica enters the opening state when Service Fabric needs to bring the replica back up again. Na przykład ten stan może być po zakończeniu uaktualniania kodu dla aplikacji na węźle.For example, this state might be after a code upgrade for the application finishes on a node.

Jeśli host aplikacji lub węzeł dla repliki otwierającej ulegnie awarii, przechodzi do stanu Down.If the application host or the node for an opening replica crashes, it transitions to the down state.

Rola repliki nie jest istotna w stanie otwarcia.The replica role is not relevant in the opening state.

Wstrzymanie (SB)StandBy (SB)

Replika rezerwa to replika utrwalonej usługi, która uległa i została otwarta.A StandBy replica is a replica of a persisted service that went down and was then opened. Ta replika może być używana przez Service Fabric, jeśli musi dodać kolejną replikę do zestawu replik (ponieważ replika ma już część stanu i proces kompilacji jest szybszy).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). Po wygaśnięciu StandByReplicaKeepDuration replika wstrzymania zostanie odrzucona.After the StandByReplicaKeepDuration expires, the standby replica is discarded.

Jeśli host aplikacji lub węzeł dla repliki zapasowej ulegnie awarii, przechodzi do stanu Down.If the application host or the node for a standby replica crashes, it transitions to the down state.

Rola repliki nie jest odpowiednia w stanie wstrzymania.The replica role is not relevant in the standby state.

Uwaga

Każda replika, która nie została wyłączona ani porzucona, jest traktowana jako nieaktualna.Any replica that's not down or dropped is considered to be up.

Uwaga

Istnieje możliwość przejścia z dowolnego stanu do stanu porzuconego przy użyciu opcji ForceRemove w systemie Remove-ServiceFabricReplica .It's possible to transition from any state to the dropped state by using the ForceRemove option on Remove-ServiceFabricReplica.

Rola replikiReplica role

Rola repliki określa jej funkcję w zestawie replik:The role of the replica determines its function in the replica set:

  • Podstawowe (P): w zestawie replik istnieje jeden podstawowy, który jest odpowiedzialny za wykonywanie operacji odczytu i zapisu.Primary (P): There is one primary in the replica set that is responsible for performing read and write operations.
  • ActiveSecondary: są to repliki, które odbierają aktualizacje stanu z podstawowego, stosują je, a następnie wysyłają potwierdzenia zwrotne.ActiveSecondary (S): These are replicas that receive state updates from the primary, apply them, and then send back acknowledgements. Zestaw replik zawiera wiele aktywnych elementów pomocniczych.There are multiple active secondaries in the replica set. Liczba aktywnych elementów pomocniczych określa liczbę błędów, które może obsłużyć usługa.The number of these active secondaries determines the number of faults the service can handle.
  • IdleSecondary (I): te repliki są kompilowane przez podstawowy.IdleSecondary (I): These replicas are being built by the primary. Są one wysyłane z poziomu podstawowego, zanim będą mogły zostać podwyższone do aktywnej pomocniczej.They are receiving state from the primary before they can be promoted to active secondary.
  • Brak (N): te repliki nie mają odpowiedzialności w zestawie replik.None (N): These replicas don't have a responsibility in the replica set.
  • Nieznane (U): jest to początkowa Rola repliki przed odebraniem dowolnego wywołania interfejsu API ChangeRole z Service Fabric.Unknown (U): This is the initial role of a replica before it receives any ChangeRole API call from Service Fabric.

Na poniższym diagramie przedstawiono przejście roli repliki oraz kilka przykładowych scenariuszy, w których mogą one wystąpić:The following diagram illustrates the replica role transitions and some example scenarios in which they can occur:

Rola repliki

  • U-> P: Tworzenie nowej repliki podstawowej.U -> P: Creation of a new primary replica.
  • U-> I: Tworzenie nowej repliki bezczynnej.U -> I: Creation of a new idle replica.
  • U-> N: usuwanie repliki w stanie wstrzymania.U -> N: Deletion of a standby replica.
  • I-> S: podwyższanie poziomu bezczynności do aktywnej pomocniczej, tak aby jej potwierdzenia miały wpływ na kworum.I -> S: Promotion of the idle secondary to active secondary so that its acknowledgements contribute toward quorum.
  • I-> P: Promocja bezczynnej wartości dodatkowej do wartości podstawowej.I -> P: Promotion of the idle secondary to primary. Może się to zdarzyć w przypadku specjalnych ponownych konfiguracji, gdy bezczynna wartość pomocnicza jest poprawnym kandydatem do podstawowego.This can happen under special reconfigurations when the idle secondary is the correct candidate to be primary.
  • I-> N: usuwanie repliki pomocniczej bezczynnej.I -> N: Deletion of the idle secondary replica.
  • S-> P: Promocja aktywnego elementu pomocniczego do podstawowego.S -> P: Promotion of the active secondary to primary. Może to być spowodowane przełączeniem w tryb failover podstawowego lub podstawowego przepływu zainicjowanego przez klaster Menedżer zasobów.This can be due to failover of the primary or a primary movement initiated by the Cluster Resource Manager. Na przykład może to być w odpowiedzi na uaktualnienie aplikacji lub Równoważenie obciążenia.For example, it might be in response to an application upgrade or load balancing.
  • S-> N: usuwanie aktywnej repliki pomocniczej.S -> N: Deletion of the active secondary replica.
  • P-> S: obniżanie repliki podstawowej.P -> S: Demotion of the primary replica. Może to być spowodowane przemieszczeniem podstawowym zainicjowanym przez klaster Menedżer zasobów.This can be due to a primary movement initiated by the Cluster Resource Manager. Na przykład może to być w odpowiedzi na uaktualnienie aplikacji lub Równoważenie obciążenia.For example, it might be in response to an application upgrade or load balancing.
  • P-> N: usuwanie repliki podstawowej.P -> N: Deletion of the primary replica.

Uwaga

Modele programowania wyższego poziomu, takie jak Reliable Actors i Reliable Services, ukrywają koncepcję ról repliki od dewelopera.Higher-level programming models, such as Reliable Actors and Reliable Services, hide the concept of replica roles from the developer. W aktorach pojęcie roli jest niepotrzebne.In Actors, the notion of a role is unnecessary. W usługach usługa jest w dużym stopniu uproszczona w przypadku większości scenariuszy.In Services, it's largely simplified for most scenarios.

Następne krokiNext steps

Aby uzyskać więcej informacji na temat pojęć Service Fabric, zobacz następujący artykuł:For more information on Service Fabric concepts, see the following article:

Cykl życia interfejsu Reliable Services — C#Reliable Services lifecycle - C#