ActivationCountBasedPlacement 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
根據每部伺服器上的最近使用中細微性數目,嘗試達到大約甚至負載的放置策略。
[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
- 繼承
- 屬性
備註
此放置策略的目的是根據最近忙碌的粒紋數目,在最不重載的伺服器上放置新的粒紋啟用。 它包含一種機制,其中所有伺服器會定期將其啟用計數總計發佈至所有其他伺服器。 接著,放置 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) |