統一配置中心技術選型對比

延陵縹緲發表於2020-12-31

隨著業務的發展、微服務架構的升級,服務的數量、程式的配置日益增多(各種微服務、各種伺服器地址、各種引數),傳統的配置檔案方式和資料庫的方式已無法滿足開發人員對配置管理的要求:

  • 安全性:配置跟隨原始碼儲存在程式碼庫中,容易造成配置洩漏。
  • 時效性:修改配置,需要重啟服務才能生效。
  • 侷限性:無法支援動態調整:例如日誌開關、功能開關。

因此,分散式配置中心應運而生!

開源配置中心

  • spring-cloud-config:spring開源的配置中心,和spring cloud無縫配合,依賴Eureka。
  • diamond: 淘寶開源產品,已經停止維護。
  • disconf:百度開源產品,已經停止維護。
  • ctrip apollo :攜程開源產品,具備規範的許可權、流程治理等特性。
  • nacos:阿里開源產品。

配置中心對比

功能點優先順序spring-cloud-configctrip apollonacos
靜態配置管理基於file支援支援
動態配置管理支援支援支援
統一管理無,需要github支援支援
多環境無,需要github支援支援
本地配置快取支援支援
配置生效時間重啟生效,或手動refresh生效實時實時
配置更新推送需要手工觸發支援(HTTP長輪詢1s內)支援(HTTP長輪詢1s內)
版本管理支援(Git)支援支援
許可權管理支援(依賴Git)支援不支援
灰度釋出支援支援不支援
配置回滾支援(Git)支援支援
監聽查詢支援支援支援
多語言只支援Java主流語言,提供了Open API主流語言,提供了Open API
配置格式校驗不支援支援支援
配置介面無,需要通過git操作統一介面(ng編寫)統一介面
業務系統侵入性侵入性弱侵入性弱侵入性弱
單機讀(QPS)7(限流所致)900015000
單擊寫(QPS)5(限流所致)11001800
3節點讀(QPS)21(限流所致)2700045000
3節點寫(QPS)5(限流所致)33005600

從配置中心角度來看,效能方面Nacos的讀寫效能最高,Apollo次之,Spring Cloud Config依賴Git場景不適合開放的大規模自動化運維API。功能方面Apollo最為完善,nacos具有Apollo大部分配置管理功能,而Spring Cloud Config不帶運維管理介面,需要自行開發。Nacos的一大優勢是整合了註冊中心、配置中心功能,部署和操作相比Apollo都要直觀簡單,因此它簡化了架構複雜度,並減輕運維及部署工作。

​綜合來看,Nacos的特點和優勢還是比較明顯的。

 

相關文章