配置中心與Eureka、apollo的選型比較

每天分享java乾貨,歡迎關注,你的成功源於點點滴滴!

一、Nacos簡介

Nacos是以服務為主要服務對象的中間件,Nacos支持所有主流的服務發現、配置和管理。

Nacos主要提供以下四大功能:

  1. 服務發現與服務健康檢查
  2. Nacos使服務更容易註冊自己並通過DNS或HTTP接口發現其他服務。Nacos還提供服務的實時健康檢查,以防止向不健康的主機或服務實例發送請求。
  3. 動態配置管理
  4. 動態配置服務允許您在所有環境中以集中和動態的方式管理所有服務的配置。Nacos消除了在更新配置時重新部署應用程序和服務的需要,這使配置更改更加高效和靈活。
  5. 動態DNS服務

Nacos支持加權路由,使您可以更輕鬆地在數據中心的生產環境中實施中間層負載平衡,靈活的路由策略,流量控制和簡單的DNS解析服務。它可以幫助您輕鬆實現基於DNS的服務發現,並防止應用程序耦合到特定於供應商的服務發現API。

  1. 服務和元數據管理

Nacos提供易於使用的服務儀表板,可幫助您管理服務元數據,配置,kubernetes DNS,服務運行狀況和指標統計。

1.1 Nacos總體概況


nacos簡介以及作為註冊/配置中心與Eureka、apollo的選型比較


image.png

1.2 Nacos架構


nacos簡介以及作為註冊/配置中心與Eureka、apollo的選型比較


image.png

二、註冊中心與配置中心橫向對比

2.1 Nacos與eureka註冊中心對比

對比項目\註冊中心Spring Cloud NacosSpring Cloud EurekaCAP模型支持AP和CP模型AP模型客戶端更新服務信息使用註冊+DNS-f+健康檢查模式。DNS-F客戶端使用監聽模式push/pull拉取更新信息客戶端定時輪詢服務端獲取其他服務ip信息並對比,相比之下服務端壓力較大、延遲較大伸縮性使用Raft選舉算法性能、可用性、容錯性均比較好,新加入節點無需與所有節點互相廣播同步信息由於使用廣播同步信息,集群超過1000臺機器後對eureka集群壓力很大健康檢查模式/方式支持服務端/客戶端/關閉檢查模式,檢查方式有tcp、http、sql。支持自己構建健康檢查器客戶端向服務端發送http心跳負載均衡支持支持手動上下線服務方式通過控制檯頁面和API通過調用API跨中心同步支持不支持k8s集成支持不支持分組Nacos可用根據業務和環境進行分組管理不支持權重Nacos默認提供權重設置功能,調整承載流量壓力不支持廠商阿里巴巴Netflix

2.2服務配置中心對比

對比項目/配置中心apollonacos開源時間2016.52018.6配置實時推送支持(HTTP長輪詢1s內)支持(HTTP長輪詢1s內)版本管理自動管理自動管理配置回滾支持支持權限管理支持待支持多集群多環境支持支持監聽查詢支持支持多語言Go,C++,Python,Java,.net,OpenAPIPython,Java,Nodejs,OpenAPI分佈式高可用最小集群數量Config2+Admin3+Portal*2+Mysql=8Nacos*3+MySql=4配置格式校驗支持支持通信協議HTTPHTTP數據一致性數據庫模擬消息隊列,Apollo定時讀消息HTTP異步通知單機讀(tps)900015000單機寫(tps)11001800

nacos具有Apollo大部分功能,最重要的是配置中心與註冊中心打通,可以省去我們在微服務治理方面 的一些投入(比如通過動態配置來啟停線程池等操作)。

2.3 初步選型結論

初步結論為:使用Nacos代替Eureka和apollo,主要理由為:

相比與Eureka:

(1)Nacos具備服務優雅上下線和流量管理(API+後臺管理頁面),而Eureka的後臺頁面僅供展示,需要使用api操作上下線且不具備流量管理功能。

(2)從部署來看,Nacos整合了註冊中心、配置中心功能,把原來兩套集群整合成一套,簡化了部署維護

(3)從長遠來看,Eureka開源工作已停止,後續不再有更新和維護,而Nacos在以後的版本會支持SpringCLoud+Kubernetes的組合,填補 2 者的鴻溝,在兩套體系下可以採用同一套服務發現和配置管理的解決方案,這將大大的簡化使用和維護的成本。同時來說,Nacos 計劃實現 Service Mesh,是未來微服務的趨勢

(4)從伸縮性和擴展性來看Nacos支持跨註冊中心同步,而Eureka不支持,且在伸縮擴容方面,Nacos比Eureka更優(nacos支持大數量級的集群)。

(5)Nacos具有分組隔離功能,一套Nacos集群可以支撐多項目、多環境。

相比於apollo

(1) Nacos部署簡化,Nacos整合了註冊中心、配置中心功能,且部署相比apollo簡單,方便管理和監控。

(2) apollo容器化較困難,Nacos有官網的鏡像可以直接部署,總體來說,Nacos比apollo更符合KISS原則

(3)性能方面,Nacos讀寫tps比apollo稍強一些

結論:使用Nacos代替Eureka和apollo

三、Nacos其他特性

3.1 Nacos Sync的價值

  • NacosSync是一個支持多種註冊中心的同步組件,基於Spring boot開發框架,數據層採用Spring Data JPA,遵循了標準的JPA訪問規範,支持多種數據源存儲,默認使用Hibernate實現,更加方便的支持表的自動創建更新
  • 使用了高效的事件異步驅動模型, 支持多種自定義事件,使得同步任務處理的延時控制在3s,8C16G的單機能夠支持6K的同步任務
  • NacosSync除了單機部署,也提供了高可用的集群部署模式,NacosSync是無狀態設計,將任務等狀態數據遷移到了數據庫,使得集群擴展非常方便
  • 抽象出了Sync組件核心接口,通過註解對同步類型進行區分,使得開發者可以很容易的根據自己需求,去擴展不同註冊中心,目前已支持的同步類型:
  • Nacos數據同步到Nacos
  • Zookeeper數據同步到Nacos
  • Nacos數據同步到Zookeeper
  • Eureka數據同步到Nacos
  • Consul數據同步到Nacos

系統模塊架構


nacos簡介以及作為註冊/配置中心與Eureka、apollo的選型比較


image.png

使用場景

多個網絡互通的Region之間服務共享,打破Region之間的服務調用限制

nacos簡介以及作為註冊/配置中心與Eureka、apollo的選型比較


image.png

3.2 DNS - F 的技術價值

Nacos提供DNS-F功能

DNS-F落地的技術價值

  • 填補了內部微服務業務沒有全局動態調度能力的空白
  • 解決了服務端棉鈴挑戰:時延大、解析不準、故障牽引慢
  • 支持服務端多種調度需要
  • 加速外部域名解析
  • 服務故障牽引秒級生效
  • 提供專線流量牽引能力
nacos簡介以及作為註冊/配置中心與Eureka、apollo的選型比較


  • image.png

3.3 目前使用Nacos的公司

阿里巴巴、虎牙直播、中國工商銀行、愛奇藝、中國平安、平安科技、浙江農信、貝殼、豐巢、百世快遞、汽車之家等

完整列表:
https://github.com/alibaba/nacos/issues/273

轉自猿人課堂


分享到:


相關文章: