Nacos服務發(fā)現(xiàn)
在分布式系統(tǒng)中我們會將多個微服務上線在不同的服務器中,我們應該如何去發(fā)現(xiàn)不同網(wǎng)絡位置的服務呢(IP+端口),Nacos是spring cloud 阿里巴巴的中提供服務注冊和發(fā)現(xiàn)的中間件,官網(wǎng)如下:
https://nacos.io/zh-cn/docs/quick-start.html
他作為多個微服務的管理中央系統(tǒng),每一個微服務都需要在這個管理中心去注冊(提供網(wǎng)絡中的位置和對應的服務名),微服務就可以通過服務名在管理中央獲取到對應的網(wǎng)絡位置進而利用RPC的多種實現(xiàn)(如openfeign和duboo)遠程服務調(diào)用,也即Java對象在網(wǎng)絡環(huán)境的序列化操作。
- 下載
Nacos是基于Java開發(fā)因此運行需要jdk1.8+
你可以通過源碼和發(fā)行包兩種方式來獲取 Nacos。
(1)從 Github 上下載源碼方式
git clone https://github.com/alibaba/nacos.git
cd nacos/
mvn -Prelease-nacos -Dmaven.test.skip=true clean install -U
ls -al distribution/target/
// change the $version to your actual path
cd distribution/target/nacos-server-$version/nacos/bin
(2)下載編譯后壓縮包方式
官網(wǎng)下載比較慢,我把最新版的nacos-server提供如下:
鏈接:https://pan.baidu.com/s/19hCqOEDdhRE6rIWtv0YlBA
提取碼:66kx
需要在centos7中安裝unzip的插件
yum install -y unzip zip
然后
unzip nacos-server-$version.zip 或者 tar -xvf nacos-server-$version.tar.gz
cd nacos/bin
可以用-d 指定解壓位置
- 啟動
Linux/Unix/Mac啟動命令(standalone代表著單機模式運行,非集群模式):
sh startup.sh -m standalone
如果您使用的是ubuntu系統(tǒng),或者運行腳本報錯提示[[符號找不到,可嘗試如下運行:
bash startup.sh -m standalone
Windows啟動命令:
cmd startup.cmd
或者雙擊startup.cmd運行文件。
- 登錄管理頁面
http://IP:8848/nacos/index.html
默認賬號密碼為nacos
nacos頁面 - 關閉服務器
Linux/Unix/Mac
sh shutdown.sh
Windows
cmd shutdown.cmd
或者雙擊shutdown.cmd運行文件。
- 在Java中配置
在commo的pom.xml中引入依賴(公共依賴)

在每一個微服務application.yml配置Nacos Server地址

在每一個微服務的啟動類添加注解@EnableDiscoveryClient中開啟服務發(fā)現(xiàn)

Nacos配置中心
一個微服務可能運行在多個服務器上,而服務(程序)運行都是需要依賴配置文件,若對一個微服務進行的配置修改就需要對多臺服務器進行登錄修改,若是硬編碼的方式還需要進行打包,那么有一個配置中心將配置文件抽離進行管理的話便可以實現(xiàn)配置信息和實際業(yè)務代碼的解耦并且在分布式慣用服務集群上更加有優(yōu)勢。
在commo的pom.xml中引入依賴(公共依賴)

在每一個微服務新建一個bootstrap.properties(加載順序優(yōu)先于application.properties)配置Nacos Config元數(shù)據(jù)

在controller添加注解@RefreshScope動態(tài)刷新配置,實時更新,@value(“${配置項的名字}”)獲取配置的值;定義要配置的參數(shù),并寫測試方法,

詳細可見:
https://nacos.io/zh-cn/docs/quick-start.html
