Ohara Configurator 的 Restful API 主要提供給前端 (Ohara Manager) 或者是開發者使用。Ohara Configurator 除了提供 Restful API 的元件之外還有其它的元件,來管理 Ohara 讓 Ohara 的系統更加的穩定。
以下是 Ohara Configurator 的架構圖:
圖片來源: Ohara 官方文件
Configurator 主要的元件說明如下:
Routes: Ohara 使用 Akka http 實作了 Ohara Configurator,主要實作了 rest server 和 JSON 的物件轉換,提供了 Restful API 給開發者使用。
Store: 所有使用者的設定都會存放在 Ohara Configuraor 的 Store 裡面,像是 Connector 設定或是 Pipeline 資料流的描述設定,目前預設的實作是使用 RocksDB,它是一個 in memory 存取並且資料可以存放在 persist disk 裡
Cache: 協調 countless services 需要花費很大的成本,因為它有很大的延遲性。例如:我們可以使用 Topic API 去取得來自不同 broker cluster 的 metrics 資訊,Ohara Configurator 必須連線到不同的 broker cluster 去收集 metrics 資訊,這樣 Topic API 就會有非常大的延遲性。因此 Ohara Configurator 內部有一個 cache 去存放,來自不同 cluster 的 metrcis 資訊,來降件延遲性。
Collie: Ohara Configurator 另外也有管理 Cluster,像是建立 node、部署 zookeeper cluster、部署 broker cluster、部署 worker cluster 和可以執行 connector 的資料流。 在執行 Configurator 時就要決定是要使用 SSH 模式還是 K8S 模式。
今天介紹了 Ohara Configurator 的主要 Compoent 的功能,主要讓使用者能了解 Ohara Configurator 的內部運作機制,這樣在啟動 Configurator 的服務時,才會了解不同設定的目的,明天會繼續介紹 Ohara Configurator 的 Resftul API 的操作。