SpringCloud Alibaba之Nacos

挑戰者V發表於2020-08-23

一、執行Nacos

Nacos GitHub開源地址:
https://github.com/alibaba/nacos

Nacos 官方文件:
https://nacos.io/zh-cn/docs/quick-start.html

按照如下命令即可:

//克隆
git clone https://github.com/alibaba/nacos.git

//進入對應目錄
cd nacos/

//打包
mvn -Prelease-nacos -Dmaven.test.skip=true clean install -U  

//檢視對應目錄
ls -al distribution/target/


// 進入打包成功生成的目錄結構(我本地nacos是1.3.1,所以對應的$version就是1.3.1)
cd distribution/target/nacos-server-$version/nacos/bin

//執行(以我本地windows為例,如果是Linux的話,執行startup.sh指令碼即可)
startup.cmd

二、修改配置檔案將Nacos的分散式配置儲存改為MySQL

進入對應的目錄:

cd D:\GitHub-Project\project\nacos\distribution\conf

修改application.properties檔案,增加如下內容(對應的sql指令碼在同一目錄下,名字叫nacos-mysql.sql):

spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://127.0.0.1:3389/nacos-config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=root
db.password=1234

三、重新執行執行步驟中的打包操作(一定要打包成功,如果是遇到之前成功,這次失敗,可能是配置檔案寫錯的緣故)

mvn -Prelease-nacos -Dmaven.test.skip=true clean install -U

四、執行成功的效果圖(預設使用者名稱和密碼均為nacos/nacos)

 

 

五、Nacos和Eureka對比

1.配置中心對比

  • Nacos支援且用起來簡單,符合SpringBoot命名風格,支援動態重新整理。
  • Eureka不支援(需要整合額外的SpringCloud Config元件)

2.註冊中心對比

(1)eureka

  • 應用內/外:直接整合到應用中,依賴於應用自身完成服務的註冊和發現
  • ACP原則:遵循AP(可用性+分離容忍)原則,有較強的可用性,服務註冊快,但犧牲了一定的一致性
  • 版本迭代:目前已經不再進行升級
  • 整合支援:只支援SpringCloud整合
  • 訪問協議:HTTP
  • 雪崩保護:支援雪崩保護
  • 介面:英文介面,不符合國人習慣
  • 上手:容易

(2)nacos

  • 應用內/外:屬於外部應用,侵入性小
  • ACP原則:通知遵循CP原則(一致性+分離容忍)和AP原則(可用性+分離容忍)
  • 版本迭代:目前仍然進行版本迭代
  • 整合支援:支援Dubbo、SpringCloud、K8S整合
  • 訪問協議:HTTP/動態DNS/UDP
  • 雪崩保護:支援雪崩保護
  • 介面:中文介面,符合國人習慣(可根據自己需求,中英文任意切換)
  • 上手:極易,中文文件,案例,社群活躍

關於我為什麼選擇Nacos而不選擇Eureka,一方面我們的微服務框架是基於SpringCloud Alibaba的,如果直接切換,整個微服務框架根基都會有很大的動搖;另外一方面,Nacos目前已整合的正是我們所需要的如分散式配置、叢集、服務註冊和發現等;最後一方面,Nacos目前比Eureka版本迭代確實要活躍的多。

本文參考資料:
Nacos官方文件

consul、eureka、nacos對比

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

相關文章