Partager via


ActivationCountBasedPlacement Classe

Définition

Stratégie de placement qui tente d’obtenir une charge approximativement égale en fonction du nombre de grains récemment actifs sur chaque serveur.

[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
Héritage
ActivationCountBasedPlacement
Attributs

Remarques

L’objectif de cette stratégie de placement est de placer de nouvelles activations de grains sur le serveur le moins chargé en fonction du nombre de grains récemment occupés. Elle comporte un mécanisme qui fait publier régulièrement à tous les serveurs le nombre total de leurs activations sur tous les autres serveurs. Le directeur de placement sélectionne ensuite un serveur qui devrait avoir le moins d’activations en examinant le nombre d’activations les plus récemment signalés et en effectuant une prédiction du nombre d’activations actuel en fonction du nombre d’activations récents effectué par le directeur de placement sur le serveur actuel. Le directeur sélectionne un certain nombre de serveurs au hasard lors de cette prédiction, afin d’éviter que plusieurs serveurs distincts surchargent le même serveur. Par défaut, deux serveurs sont sélectionnés de façon aléatoire, mais cette valeur peut être configurée via Orleans.Runtime.ActivationCountBasedPlacementOptions.
Cet algorithme est basé sur la thèse The Power of Two Choices in Randomd Load Balancing de Michael David Mitzenmacher https://www.eecs.harvard.edu/~michaelm/postscripts/mythesis.pdf, et est également utilisé dans NGINX pour l’équilibrage de charge distribué, comme décrit dans l’article NGINX et le « Power of Two Choices » Load-Balancing Algorithm https://www.nginx.com/blog/nginx-power-of-two-choices-load-balancing-algorithm/.
Cette stratégie de placement est configurée en ajoutant l’attribut ActivationCountBasedPlacementAttribute à un grain.

Constructeurs

ActivationCountBasedPlacement()

Stratégie de placement qui tente d’obtenir une charge approximativement égale en fonction du nombre de grains récemment actifs sur chaque serveur.

Propriétés

IsUsingGrainDirectory

Obtient une valeur indiquant si cette stratégie de placement nécessite l’inscription des activations dans le répertoire des grains.

(Hérité de PlacementStrategy)

Méthodes

Initialize(GrainProperties)

Initialise une instance de ce type à l’aide des propriétés de grain fournies.

(Hérité de PlacementStrategy)
PopulateGrainProperties(IServiceProvider, Type, GrainType, Dictionary<String,String>)

Remplit les propriétés du grain pour spécifier la stratégie de placement par défaut.

(Hérité de PlacementStrategy)

S’applique à