天天看點

Spring Cloud - Nacos與Eureka差別及如何選型

nacos與eureka均提供注冊中心和服務治理功能,以下為兩者差異和選型方案。

<col>

子產品

nacos

eureka

說明

注冊中心

服務治理基本功能,負責服務中心化注冊

配置中心

eureka需要配合config實作配置中心,且不提供管理界面

動态重新整理

eureka需要配合mq實作配置動态重新整理,nacos采用netty保持tcp長連接配接實時推送

可用區az

對服務叢集劃分不同區域,實作區域隔離,并提供容災自動切換

分組

nacos可用根據業務和環境進行分組管理

中繼資料

提供服務标簽資料,例如環境或服務辨別

權重

nacos預設提供權重設定功能,調整承載流量壓力

健康檢查

nacos支援由用戶端或服務端發起的健康檢查,eureka是由用戶端發起心跳

負載均衡

均提供負責均衡政策,eureka采用ribion

管理界面

nacos支援對服務線上管理,eureka隻是預覽服務狀态

mysql

nacos需要采用mysql進行資料進行持久化

mq

eureka需要采用mq進行配置中心重新整理

eureka結合config或者consul實作配置中心

配置檔案

線上編輯

本地檔案或者git遠端檔案

eureka結合config或者consul

叢集

nacos需要配置叢集ip再啟動

版本

1.0.0

1.9.9

eureka2.0已停止開發,nacos處于2.0開發

廠商

阿裡巴巴

netflix

netflix已長期用于生産,阿裡剛起步

生産建議

nacos0.8以前不可用于生産,建議生産采用nacos1.4,便于節省配置中心叢集和服務管理

未來發展

nacos 2.0主要關注在統一服務管理、服務共享及服務治理體系的開放的服務平台的建設

采用eureka方案的考慮

想用spring cloud原生全家桶

想用本地檔案和git作為配置管理的,将配置與服務分開管理

考慮短期的穩定性

項目比較老,難裝換

采用nacos方案的考慮(優先)

想線上對服務進行上下線和流量管理

不想采用mq實作配置中心動态重新整理

新增配置中心生産叢集

考慮引入spring cloud alibaba生态

可視化更清晰

功能直接包括netflix的eureka、config、bus

随着大趨所緻,阿裡巴巴的nacos功能強大,可視化更好,推薦使用!!!