Spring Cloud Alibaba(2)---Nacos概述

雨點的名字發表於2021-04-11

Spring Cloud Alibaba(2)---nacos概述

上一篇部落格講了有關 SpringCloudAlibaba的概述,這篇開始講SpringCloudAlibaba元件之一---Nacos

上一篇部落格地址:SpringCloudAlibaba的概述

一、概述

1、背景

去了解nacos是因為自己有個專案採用的是springcloud全家桶,因為之前採用的是比較老的Eureka,也是因為Eureka 2.0不開源的原因,所以想採用nacos來作為服務註冊發現中心。

現在也越來越多的公司開始推薦使用nacos,我個人認為nacos首先有一個很大的優點就是把 註冊服務中心配置中心 合二為一,而且還有控制檯介面,更加簡便的讓我們去管理

微服務。

2、官方概覽

我們先來看下官方是怎麼介紹nacos的: Nacos官方文件

Nacos 致力於幫助您發現、配置和管理微服務。

從這裡描述就是Nacos主要有三方面的功能: 服務註冊發現, 服務配置, 服務管理

Nacos 提供了一組簡單易用的特性集,幫助您快速實現動態服務發現、服務配置、服務後設資料及流量管理。

動態服務發現 動態其中一個方面, 指的是熱的含義. 比如伺服器註冊了, 不用重啟, 就能發現。

動態配置 也是同樣的道理,服務配置修改了, 不用重啟服務, 能夠自動識別配置修改。

服務後設資料及流量管理 這裡應該是和負載均衡有關係了. 流量怎麼分配, 根據後設資料設定, 進行管理。我們可以通過nacos來設定某個微服務每秒可以訪問的次數。

Nacos 幫助您更敏捷和容易地構建、交付和管理微服務平臺

如何能夠是構建, 交付,管理 微服務平臺變得更容易,更快捷呢? 想到了自動化部署那一套. 有一個介面, 點點按鈕, 就開始操作了. 不用一臺伺服器, 一臺伺服器的去處理。

3、nacos是什麼?

官方第一句話就是

服務(Service)是 Nacos 世界的一等公民。

這個有點客戶是上帝的意思,也就是對於Nacos而言,服務是它的上帝, nacos就是全部圍繞著服務轉。Nacos支援發現,配置和管理幾乎所有型別的服務

Kubernetes服務
gRPC和Dubbo RPC服務
Spring Cloud RESTful服務

Nacos 的關鍵特性包括:

服務發現和服務健康監測

Nacos 支援基於 DNS 和基於 RPC 的服務發現。服務提供者使用 原生SDK、OpenAPI、或一個獨立的Agent TODO註冊 Service 後,服務消費者可以使用DNS TODO 或HTTP&API查詢和發現服務。
Nacos 提供對服務的實時的健康檢查,阻止向不健康的主機或服務例項傳送請求。Nacos 支援傳輸層 (PING 或 TCP)和應用層 (如 HTTP、MySQL、使用者自定義)的健康檢查。 對於複雜的雲環境和網路拓撲環境中(如 VPC、邊緣網路等)服務的健康檢查
Nacos 提供了 agent 上報模式和服務端主動檢測2種健康檢查模式。Nacos 還提供了統一的健康檢查儀表盤,幫助您根據健康狀態管理服務的可用性及流量。

動態配置服務

1、動態配置服務可以讓您以中心化、外部化和動態化的方式管理所有環境的應用配置和服務配置。
2、動態配置消除了配置變更時重新部署應用和服務的需要,讓配置管理變得更加高效和敏捷。
3、配置中心化管理讓實現無狀態服務變得更簡單,讓服務按需彈性擴充套件變得更容易。
4、Nacos 提供了一個簡潔易用的UI (控制檯樣例 Demo) 幫助您管理所有的服務和應用的配置。Nacos 還提供包括配置版本跟蹤、金絲雀釋出、一鍵回滾配置以及客戶端配置更新狀態跟蹤在內的一系列開箱即用的配置管理特性,
幫助您更安全地在生產環境中管理配置變更和降低配置變更帶來的風險。

動態DNS服務

動態 DNS 服務支援權重路由,讓您更容易地實現中間層負載均衡、更靈活的路由策略、流量控制以及資料中心內網的簡單DNS解析服務。動態DNS服務還能讓您更容易地實現以 DNS 協議為基礎的服務發現,以幫助您消除耦合到廠商私有服務發現 API 上的風險。

服務及其後設資料管理

Nacos 能讓您從微服務平臺建設的視角管理資料中心的所有服務及後設資料,包括管理服務的描述、生命週期、服務的靜態依賴分析、服務的健康狀態、服務的流量管理、路由及安全策略、服務的 SLA 以及最首要的 metrics 統計資料。

4、Nacos 地圖

這裡展示官方給的一張圖

Spring Cloud Alibaba(2)---Nacos概述

特性大圖:要從功能特性,非功能特性,全面介紹我們要解的問題域的特性訴求
架構大圖:通過清晰架構,讓您快速進入 Nacos 世界
業務大圖:利用當前特性可以支援的業務場景,及其最佳實踐
生態大圖:系統梳理 Nacos 和主流技術生態的關係
優勢大圖:展示 Nacos 核心競爭力
戰略大圖:要從戰略到戰術層面講 Nacos 的巨集觀優勢


二、nacos和Eureka比較

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

功能差異

Spring Cloud Alibaba(2)---Nacos概述

部署安裝

Spring Cloud Alibaba(2)---Nacos概述

穩定及擴充套件性

Spring Cloud Alibaba(2)---Nacos概述

選型建議

採用Eureka方案的考慮

1、想用Spring Cloud原生全家桶
2、想用本地檔案和Git作為配置管理的,將配置與服務分開管理

採用Nacos方案的考慮

1、想線上對服務進行上下線和流量管理
2、不想採用MQ實現配置中心動態重新整理
3、不想新增配置中心生產叢集
4、考慮引入Spring Cloud Alibaba生態

三、nacos和apollo比較

Spring Cloud Alibaba(2)---Nacos概述

如果僅僅作為配置中心的比較,它們的區別並不大,而且效能各方面都挺好的。如果說優點,那麼相比於apollo:

1、Nacos部署簡化,Nacos整合了註冊中心、配置中心功能,且部署相比apollo簡單,方便管理和監控。
2、 apollo容器化較困難,Nacos有官網的映象可以直接部署,總體來說,Nacos比apollo更符合KISS原則
3、效能方面,Nacos讀寫tps比apollo稍強一些

結論:使用Nacos代替Eureka和apollo


四、nacos快速開始

說明 按照官方文件現在nacos已經到2.0.0,但我去拉取最新zip包時,發現我2.0.0和1.4.0版本都啟動不起來,找了好久也沒有找到有其他人出現過,然後換成1.3.2版本就可以

了,這可能是個系統bug,哈哈。

這裡簡單說下步驟,其實很簡單,按照官方的來就行。官方地址:Nacos 快速開始

1、環境準備

Nacos 依賴 Java 環境來執行。如果您是從程式碼開始構建並執行Nacos,還需要為此配置 Maven環境,請確保是在以下版本環境中安裝使用:

64 bit OS,支援 Linux/Unix/Mac/Windows,推薦選用 Linux/Unix/Mac。
64 bit JDK 1.8+;下載 & 配置。
Maven 3.2.x+;下載 & 配置。

2、下載原始碼或者安裝包

您可以從 最新穩定版本 下載 nacos-server-$version.zip 包。

下載後解壓,進入nacos/bin目錄

  unzip nacos-server-$version.zip 或者 tar -xvf nacos-server-$version.tar.gz
  cd nacos/bin

3、啟動伺服器

Linux/Unix/Mac啟動命令(standalone代表著單機模式執行,非叢集模式):

sh startup.sh -m standalone

如果您使用的是ubuntu系統,或者執行指令碼報錯提示[[符號找不到,可嘗試如下執行:

bash startup.sh -m standalone

Windows啟動命令(standalone代表著單機模式執行,非叢集模式):

cmd startup.cmd -m standalone

4、訪問

訪問地址: localhost:8848/nacos
預設賬號密碼: nacos/nacos

Spring Cloud Alibaba(2)---Nacos概述

這篇只是簡單介紹,下一步會講解和實際案例來講解nacos做為配置中心和註冊中心的案例。


參考

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

2、Nacos 文件

3、nacos初識, 和eureka的比較, 在docker上安裝nacos



少說多做,句句都會得到別人的重視;多說少做,句句都會受到別人的忽視。(2)

相關文章