多重叢集支援

第 2 版中的多叢集支援已遭移除。 下列文件指的是 Orleans 第 1 版。 Orleans 第 1.3.0 版新增了將數個 Orleans 叢集聯合為鬆散連線的多叢集支援做為單一服務。 多叢集可協助將異地散發作為服務,也就是讓您更輕鬆地在全球各地的多個資料中心執行 Orleans 應用程式。 此外,您可以在單一資料中心內執行多叢集,以取得更好的失敗和效能隔離。

所有機制的設計都將重點放在:

  1. 將叢集之間的通訊降到最少。
  2. 即使其他叢集失敗或無法連線,讓每個叢集的執行都能自發進行。

設定和作業

以下說明如何設定及操作多叢集。

通訊。 叢集會透過叢集內所使用的相同定址接收器對定址接收器連線進行通訊。 若要交換狀態和設定資訊,叢集會使用 Gossip 機制和 Gossip 通道實作。

定址接收器設定。 必須設定定址接收器,才能知道定址接收器所屬的叢集 (由唯一字串識別每個叢集)。 此外,每個定址接收器都必須設定連接字串,以允許在啟動時連線到一或多個 gossip 通道

多叢集設定插入。 在執行階段,服務操作員可以指定和/或變更包含叢集識別碼清單的多叢集設定,以指定哪些叢集是目前多叢集的一部分。 這是透過在任一叢集中呼叫管理粒紋來完成。

多叢集粒紋

以下說明如何在應用層級使用多叢集功能。

Global-Single-Instance Grains。 開發人員可以指出叢集應如何協調其有關特定粒紋類別的粒紋目錄和時機。 GlobalSingleInstanceAttribute 表示我們希望與在單一全域叢集中執行 Orleans 時的相同行為:也就是說,將所有呼叫路由傳送到單一啟用的粒紋。 相反地,OneInstancePerClusterAttribute 表示每個叢集都可以有其獨立的啟用。 如果不想要叢集之間的通訊,這是適當的作法。

Log-view grains(不是在第 1.3.0 版)。 使用類似事件來源的新 API 的特殊粒紋類型,用於同步處理或保存粒紋狀態。 其可以用來自動且有效率地同步處理叢集與儲存體之間的粒紋狀態。 因為其同步處理演算法可以安全地與重新進入的粒紋搭配使用,而且已最佳化為使用批次處理和複寫,所以當經常在多個叢集中存取粒紋,以及/或經常寫入儲存體時,其效能會比標準粒紋更好。 對記錄檢視粒紋的支援還不屬於主要分支。 我們有發行前版本,包括範例和 geo-orleans 分支中的一些文件。 目前正由早期採用者在生產環境中進行評估。