概述
在 Spring Cloud Netflix 階段我們采用 Eureka 做作為我們的服務(wù)注冊與發(fā)現(xiàn)服務(wù)器橡伞,現(xiàn)利用 Spring Cloud Alibaba 提供的 Nacos 組件替代該方案陨闹。
什么是 Nacos
Nacos 致力于幫助您發(fā)現(xiàn)、配置和管理微服務(wù)绣硝。Nacos 提供了一組簡單易用的特性集,幫助您快速實現(xiàn)動態(tài)服務(wù)發(fā)現(xiàn)昙楚、服務(wù)配置、服務(wù)元數(shù)據(jù)及流量管理癣蟋。
Nacos 幫助您更敏捷和容易地構(gòu)建、交付和管理微服務(wù)平臺狰闪。 Nacos 是構(gòu)建以“服務(wù)”為中心的現(xiàn)代應用架構(gòu) (例如微服務(wù)范式、云原生范式) 的服務(wù)基礎(chǔ)設(shè)施濒生。
基本架構(gòu)及概念
服務(wù) (Service)
服務(wù)是指一個或一組軟件功能(例如特定信息的檢索或一組操作的執(zhí)行)埋泵,其目的是不同的客戶端可以為不同的目的重用(例如通過跨進程的網(wǎng)絡(luò)調(diào)用)。Nacos 支持主流的服務(wù)生態(tài)罪治,如 Kubernetes Service丽声、gRPC|Dubbo RPC Service 或者 Spring Cloud RESTful Service.
服務(wù)注冊中心 (Service Registry)
服務(wù)注冊中心,它是服務(wù)觉义,其實例及元數(shù)據(jù)的數(shù)據(jù)庫雁社。服務(wù)實例在啟動時注冊到服務(wù)注冊表,并在關(guān)閉時注銷晒骇。服務(wù)和路由器的客戶端查詢服務(wù)注冊表以查找服務(wù)的可用實例霉撵。服務(wù)注冊中心可能會調(diào)用服務(wù)實例的健康檢查 API 來驗證它是否能夠處理請求。
服務(wù)元數(shù)據(jù) (Service Metadata)
服務(wù)元數(shù)據(jù)是指包括服務(wù)端點(endpoints)洪囤、服務(wù)標簽徒坡、服務(wù)版本號、服務(wù)實例權(quán)重瘤缩、路由規(guī)則喇完、安全策略等描述服務(wù)的數(shù)據(jù)
服務(wù)提供方 (Service Provider)
是指提供可復用和可調(diào)用服務(wù)的應用方
服務(wù)消費方 (Service Consumer)
是指會發(fā)起對某個服務(wù)調(diào)用的應用方
配置 (Configuration)
在系統(tǒng)開發(fā)過程中通常會將一些需要變更的參數(shù)、變量等從代碼中分離出來獨立管理剥啤,以獨立的配置文件的形式存在锦溪。目的是讓靜態(tài)的系統(tǒng)工件或者交付物(如 WAR,JAR 包等)更好地和實際的物理運行環(huán)境進行適配府怯。配置管理一般包含在系統(tǒng)部署的過程中刻诊,由系統(tǒng)管理員或者運維人員完成這個步驟。配置變更是調(diào)整系統(tǒng)運行時的行為的有效手段之一富腊。
配置管理 (Configuration Management)
在數(shù)據(jù)中心中坏逢,系統(tǒng)中所有配置的編輯、存儲赘被、分發(fā)是整、變更管理、歷史版本管理民假、變更審計等所有與配置相關(guān)的活動統(tǒng)稱為配置管理浮入。
名字服務(wù) (Naming Service)
提供分布式系統(tǒng)中所有對象(Object)、實體(Entity)的“名字”到關(guān)聯(lián)的元數(shù)據(jù)之間的映射管理服務(wù)羊异,例如 ServiceName -> Endpoints Info, Distributed Lock Name -> Lock Owner/Status Info, DNS Domain Name -> IP List, 服務(wù)發(fā)現(xiàn)和 DNS 就是名字服務(wù)的2大場景事秀。
配置服務(wù) (Configuration Service)
在服務(wù)或者應用運行過程中彤断,提供動態(tài)配置或者元數(shù)據(jù)以及配置管理的服務(wù)提供者。
下載安裝
準備環(huán)境
Nacos 依賴 Java 環(huán)境來運行易迹。如果您是從代碼開始構(gòu)建并運行 Nacos宰衙,還需要為此配置 Maven 環(huán)境,請確保是在以下版本環(huán)境中安裝使用:
64 bit OS睹欲,支持 Linux/Unix/Mac/Windows供炼,推薦選用 Linux/Unix/Mac。
64 bit JDK 1.8+
Maven 3.2.x+
下載并安裝
# 下載源碼
git clone https://github.com/alibaba/nacos.git
# 安裝到本地倉庫
cd nacos/
mvn -Prelease-nacos clean install -U
注:下載依賴時間較長窘疮,請耐心等待...
啟動服務(wù)
cd distribution/target/nacos-server-0.7.0/nacos/bin
# Linux
./startup.sh -m standalone
# Windows
startup.cmd
訪問服務(wù)
打開瀏覽器訪問:http://localhost:8848/nacos