ActivationCountBasedPlacement Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Uma estratégia de posicionamento que tenta obter aproximadamente carga uniforme com base no número de granularidades recentemente ativas em cada servidor.
[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
- Herança
- Atributos
Comentários
A intenção dessa estratégia de posicionamento é colocar novas ativações de granularidade no servidor menos carregado com base no número de granularidades ocupadas recentemente. Ela inclui um mecanismo em que todos os servidores publicam periodicamente a contagem total de ativação para todos os outros servidores. Em seguida, o diretor de posicionamento seleciona um servidor que deve ter menos ativações examinando a contagem de ativação relatada mais recentemente e uma previsão da contagem de ativação atual com base na contagem de ativação recente feita pelo diretor de posicionamento no servidor atual. O diretor seleciona vários servidores aleatoriamente ao fazer essa previsão, na tentativa de evitar que vários servidores separados sobrecarreguem o mesmo servidor. Por padrão, dois servidores são selecionados aleatoriamente, mas esse valor é configurável por meio de Orleans.Runtime.ActivationCountBasedPlacementOptions
.
Esse algoritmo baseia-se na tese The Power of Two Choices in Randomized Load Balancing de Michael David Mitzenmacher https://www.eecs.harvard.edu/~michaelm/postscripts/mythesis.pdfe também é usado no NGINX para balanceamento de carga distribuído, conforme descrito no artigo NGINX e "Power of Two Choices" Load-Balancing Algorithm https://www.nginx.com/blog/nginx-power-of-two-choices-load-balancing-algorithm/.
Essa estratégia de posicionamento é configurada adicionando o ActivationCountBasedPlacementAttribute atributo a uma granularidade.
Construtores
ActivationCountBasedPlacement() |
Uma estratégia de posicionamento que tenta obter aproximadamente carga uniforme com base no número de granularidades recentemente ativas em cada servidor. |
Propriedades
IsUsingGrainDirectory |
Obtém um valor que indica se essa estratégia de posicionamento requer ou não que as ativações sejam registradas no diretório de granularidade. (Herdado de PlacementStrategy) |
Métodos
Initialize(GrainProperties) |
Inicializa uma instância desse tipo usando as propriedades de granularidade fornecidas. (Herdado de PlacementStrategy) |
PopulateGrainProperties(IServiceProvider, Type, GrainType, Dictionary<String,String>) |
Preenche as propriedades de granularidade para especificar a estratégia de posicionamento preferencial. (Herdado de PlacementStrategy) |