Freigeben über


ActivationCountBasedPlacement Klasse

Definition

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
ActivationCountBasedPlacement
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.ActivationCountBasedPlacementOptionskonfiguriert 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)

Gilt für: