Share via


ActivationCountBasedPlacement 類別

定義

根據每部伺服器上的最近使用中細微性數目,嘗試達到大約甚至負載的放置策略。

[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
繼承
ActivationCountBasedPlacement
屬性

備註

此放置策略的目的是根據最近忙碌的粒紋數目,在最不重載的伺服器上放置新的粒紋啟用。 它包含一種機制,其中所有伺服器會定期將其啟用計數總計發佈至所有其他伺服器。 接著,放置 Director 會藉由檢查最近報告的啟用計數,並根據目前伺服器上放置 Director 所做的最近啟用計數來預測目前的啟用計數,來選取預測要有最少啟用的伺服器。 Director 會在進行此預測時隨機選取一些伺服器,以嘗試避免多個不同伺服器多載同一部伺服器。 根據預設,會隨機選取兩部伺服器,但此值可透過 設定 Orleans.Runtime.ActivationCountBasedPlacementOptions
此演算法是以 Michael David Mitzenmacher https://www.eecs.harvard.edu/~michaelm/postscripts/mythesis.pdf 隨機化負載平衡中的兩個選擇能力為基礎,也用於 NGINX 進行分散式負載平衡,如 NGINX 和「兩個選項的強大功能」一文所述,Load-Balancing演算法 https://www.nginx.com/blog/nginx-power-of-two-choices-load-balancing-algorithm/
此放置策略是藉由將 ActivationCountBasedPlacementAttribute 屬性新增至細微性來設定。

建構函式

ActivationCountBasedPlacement()

根據每部伺服器上的最近使用中細微性數目,嘗試達到大約甚至負載的放置策略。

屬性

IsUsingGrainDirectory

取得值,指出此放置策略是否需要在細微性目錄中註冊啟用。

(繼承來源 PlacementStrategy)

方法

Initialize(GrainProperties)

使用提供的細微性屬性,初始化此類型的實例。

(繼承來源 PlacementStrategy)
PopulateGrainProperties(IServiceProvider, Type, GrainType, Dictionary<String,String>)

填入細微性屬性,以指定慣用的位置策略。

(繼承來源 PlacementStrategy)

適用於