Leo Yeh's Blog

SAS Viya (11)

教學目標

初步了解 SAS 設定伺服器的應用,以及如何建立高可用性系統的架構。

重點概念

首先 SAS 設定伺服器主要是以 HashiCorp 的 Consul 為主,Consul 主要是分散式的架構,提供高可用性的方式註冊服務以及偵測健康狀態的資訊。此外其主要是以 Key-Value 配對的方式設定資料,設定資料主要會被使用於 SAS Viya 微服務啟動時載入預設值和探索任何服務的相依性。

接著在執行階段時不論任何服務的屬性被改變,服務皆會被通知,並且重新讀取來自於 SAS 設定伺服器的屬性值。同時每台機器都會執行 SAS 設定伺服器的代理程序,以利針對執行中的 SAS Viya 服務和機器本身進行健康狀況檢查。每個設定代理程序會向一個或多個 SAS 設定伺服器提供執行狀況資訊,同時在高可用性的部署中,SAS 設定伺服器會選擇領導者,並且儲存複製服務資訊。此外 SAS Viya 服務會向 SAS 設定伺服器或設定代理程序探索其它服務,其中設定代理程序將會自動接收查詢,並且轉送給 SAS 設定伺服器。

再來為了高可用性的 SAS Viya 架構,因為 SAS 設定伺服器需要選出領導者,所以至少需要三台機器,以利避免單一節點故障的問題發生。若我們要實作高可用性的 SAS Viya 架構,則部署至少六台機器,請注意此為 SMP 模式,分別為:

  1. CAS Configuration Server 1
  2. CAS Configuration Server 2
  3. CAS Configuration Server 3
  4. CAS Configuration Agent 1
  5. CAS Configuration Agent 2
  6. CAS Controller

此外若是 MPP 模式,則會有分析叢集,所以需要部署至少七台機器,多出的一台機器主要為 CAS Worker 。因此 SAS Viya 架構中總共有四種機器類型,不同類型的機器主要會有建議配置的伺服器或元件。

CAS Configuration Server

  1. CAS Configuration Server
  2. SAS Workspace Server
  3. Object Spawner
  4. SAS/CONNECT Server
  5. SAS Web Apps
  6. SAS Microservice

CAS Configuration Agent

  1. CAS Configuration Agent
  2. SAS Infrastructure Data Server
  3. SAS Message Broker

CAS Controller

  1. CAS Controller
  2. CAS Server Monitor
  3. SAS Data Connector
  4. SAS Data Connect Accelerator

CAS Worker

  1. CAS Worker
  2. SAS Data Connector
  3. SAS Data Connect Accelerator

最後 Consul 使用共識協定提供一致性,其主要是以 Raft 共識演算法為主,Raft 主要一種用於管理複製記錄檔的共識演算法。它能夠和 Paxos 演算法產生相同的結果,與 Paxo 有相同的效能,但其結構卻不同於 Paxos,更容易理解,以利為建構系統提供更好的基礎,同時 Raft 針對一致性的關鍵元素進行分解,像是領導者、日誌分發和安全性。

總結 SAS 設定伺服器主要是以 Consul 為主的分散式架構,提供高可用性的方式註冊服務以及偵測健康狀態的資訊。此外透過 Raft 共識演算法允許許多機器像整體一樣進行工作,即使其中的一些成員發生故障也不會發生問題,所以在建構可靠大規模軟體系統的過程有非常關鍵的作業。

相關資源

⬅️ Go back