ActivationCountBasedPlacement Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Eine Platzierungsstrategie, die versucht, eine ungefähr gleichmäßige Auslastung basierend auf der Anzahl der zuletzt aktiven Grains auf jedem Server zu erreichen.
[System.Serializable]
public class ActivationCountBasedPlacement : Orleans.Runtime.PlacementStrategy
[System.Serializable]
[Orleans.GenerateSerializer]
[Orleans.Immutable]
[Orleans.SuppressReferenceTracking]
public sealed class ActivationCountBasedPlacement : Orleans.Runtime.PlacementStrategy
[<System.Serializable>]
type ActivationCountBasedPlacement = class
inherit PlacementStrategy
[<System.Serializable>]
[<Orleans.GenerateSerializer>]
[<Orleans.Immutable>]
[<Orleans.SuppressReferenceTracking>]
type ActivationCountBasedPlacement = class
inherit PlacementStrategy
Public Class ActivationCountBasedPlacement
Inherits PlacementStrategy
Public NotInheritable Class ActivationCountBasedPlacement
Inherits PlacementStrategy
- Vererbung
- Attribute
Hinweise
Die Absicht dieser Platzierungsstrategie besteht darin, neue Grain-Aktivierungen auf dem Server mit der geringsten Auslastung basierend auf der Anzahl der zuletzt ausgelasteten Grains zu platzieren. Es enthält einen Mechanismus, bei dem alle Server regelmäßig ihre Gesamtaktivierungsanzahl auf allen anderen Servern veröffentlichen. Der Platzierungsdirektor wählt dann einen Server aus, für den die wenigsten Aktivierungen vorhergesagt werden, indem er die zuletzt gemeldete Aktivierungsanzahl und eine Vorhersage der aktuellen Aktivierungsanzahl basierend auf der letzten Aktivierungsanzahl des Platzierungsdirektors auf dem aktuellen Server untersucht. Der Director wählt bei dieser Vorhersage nach dem Zufallsprinzip eine Reihe von Servern aus, um zu vermeiden, dass mehrere separate Server denselben Server überlasten. Standardmäßig werden zwei Server nach dem Zufallsprinzip ausgewählt, aber dieser Wert kann über Orleans.Runtime.ActivationCountBasedPlacementOptions
konfiguriert werden.
Dieser Algorithmus basiert auf der These The Power of Two Choices in Randomized Load Balancing von Michael David Mitzenmacher https://www.eecs.harvard.edu/~michaelm/postscripts/mythesis.pdfund wird auch in NGINX für verteilten Lastenausgleich verwendet, wie im Artikel NGINX und die "Power of Two Choices" Load-Balancing Algorithmus https://www.nginx.com/blog/nginx-power-of-two-choices-load-balancing-algorithm/beschrieben.
Diese Platzierungsstrategie wird durch Hinzufügen des ActivationCountBasedPlacementAttribute Attributs zu einem Grain konfiguriert.
Konstruktoren
ActivationCountBasedPlacement() |
Eine Platzierungsstrategie, die versucht, eine ungefähr gleichmäßige Auslastung basierend auf der Anzahl der zuletzt aktiven Grains auf jedem Server zu erreichen. |
Eigenschaften
IsUsingGrainDirectory |
Ruft einen Wert ab, der angibt, ob für diese Platzierungsstrategie Aktivierungen im Grain-Verzeichnis registriert werden müssen. (Geerbt von PlacementStrategy) |
Methoden
Initialize(GrainProperties) |
Initialisiert eine Instanz dieses Typs unter Verwendung der bereitgestellten Grain-Eigenschaften. (Geerbt von PlacementStrategy) |
PopulateGrainProperties(IServiceProvider, Type, GrainType, Dictionary<String,String>) |
Füllt die Korneigenschaften auf, um die bevorzugte Platzierungsstrategie anzugeben. (Geerbt von PlacementStrategy) |