第6章 軟負載中心與集中配置管理

6.1 初識軟負載中心

在服務調用的框架中的提供服務的ip是通過軟負載中心來實現消息中間件中消息的發佈者、訂閱者對於消息中間件機器的感知都是通過軟負載中心實現的,如下圖:



從圖上2個方面的調用關係中軟負載中心的核心功能有2個:

  • 聚合地址信息
無論是服務框架中服務提供者的ip地址 還是消息中間件系統中的消息中間件的地址,都需要去軟負載中心獲聚合地址列表,形成一個可供服務調用者、消息發送者或者接受者可以直接使用的IP地址列表。


  • 生命週期感知
軟負載中心需要對服務的上下線自動感知,並且根據這個變化去更新服務地址數據,形成新的ip地址列表;把更新的數據傳輸給服務的調用者、消息的發送者和接收者;


6.2 軟負載中心的架構

軟負載中心是採取的C/S 架構,服務端主要是監控提供服務機器的狀態、聚合提供服務的ip地址,並把地址列表信息實時推動給訂閱者;
客戶端有2個角色:
1). 服務提供方的客戶端:把提供服務的基本信息發送給服務端,並及時把服務提供者的數據變化同步給服務端
2). 服務使用方的客戶端:要告訴服務端服務調用着需要的ip 地址,並負責緩存數據並完成緩存數據的回源更新




6.3 解決服務上下線的感知

軟負載負責可用的服務列表,當服務可用時可以把服務加到服務列表中,當服務不可用時需要從服務列表中刪除。這樣也是軟負載中心和硬件負載中心(需要配置化操作來更新數據) 最大的優點。

  • 具體實現肯定是通過健康的感知(client 的監控進程進行彙報,或者主動的進行遠程服務的健康檢測)
  • 感知到的數據需要及時更新到client 本地的cache 中 

6.4 數據的分發

client 訂閱了消息後,服務端要把消息數據發送給client;現在上下游服務的感知是實時的,那實時的就會發送給client;
如果數據量達到一定的程度,就需要考慮全量更新和實時更新了;

6.5 針對服務化的個性支持

  • 分組:通過數據dataid和分組group 來確定唯一的數據,分組可以理解爲一種最簡單的命名空間,這個這個分組內dataid是唯一的;分組還有一個非常重要的作用就是優先級,可以把優先級不同的消息數據放到不同的分組內部


6.6 集中配置管理中心

軟負載中心除了管理服務地址列表之外,路由規則和消息的訂閱關係都保存在軟負載中心。這些數據特性並不相同,我們可以根據數據是否持久化保存、是否需要聚合來進行分類
  • 持久就是指數據本身與聯發佈者的生命週期無關,典型的就是持久訂閱關係、路由規則、數據訪問層的分庫、分表規則和數據庫配置等。
  • 非持久:指和發佈者生命週期有關的,比如服務地址列表
  • 聚合數據:服務地址列表、訂閱關係都需要聚合,這樣的數據叫做聚合數據
  • 非聚合數據:比如數據庫的分庫分表規則、路由規則都不需要聚合叫做非聚合數據
我們按照數據是否持久化進行劃分:
  • 軟負載中心管理是非持久化的數據
  • 集中配置管理中心管理的是持久化的數據
集中管理 配置中心因爲保存的都是各個應用集羣、中間件配置的關鍵信息,所以對於集中配置管理中心來說,最重要的是穩定性和各種異常情況下的容災策略,其次纔是性能也數據分發的延遲性。配置管理中心統一進行控制這些數據


發佈了238 篇原創文章 · 獲贊 54 · 訪問量 107萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章