一、執行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官方文件