服務(wù)發(fā)現(xiàn)基礎(chǔ)
原理
serviceA 調(diào)用serviceB,B只要將IP地址告訴A,就跟通訊錄一樣,但是如果B的地址變了,A的通訊錄就得改。實(shí)際上多個(gè)服務(wù)的地址是會(huì)變的那么每個(gè)服務(wù)需要維護(hù)所有相關(guān)服務(wù)的地址,所以使用第三方存儲(chǔ)(注冊(cè)中心),A先從注冊(cè)中心獲取B的地址然后調(diào)用。
如果B掛掉了,但注冊(cè)中心還存在B的服務(wù)信息,A服務(wù)需要調(diào)用B服務(wù)去服務(wù)注冊(cè)中心獲取B的地址然后調(diào)用就會(huì)出問題,通過心跳機(jī)制進(jìn)行健康檢查,注冊(cè)中心刪除無心跳的是來信息。服務(wù)調(diào)用方每次發(fā)起服務(wù)請(qǐng)求都要去服務(wù)注冊(cè)中心獲取這樣很浪費(fèi)性能,可以在服務(wù)A中本地緩存服務(wù)列表,,不用每次調(diào)用都去注冊(cè)中心獲取。那么產(chǎn)生一個(gè)問題,如何更新本地緩存: 當(dāng)服務(wù)注冊(cè)中心發(fā)生變更推送給A,定時(shí)查詢最新的服務(wù)列表更新本地緩存。 服務(wù)注冊(cè)中心非常關(guān)鍵,需要提高可用性,需要使用集群。數(shù)據(jù)的一致性: 強(qiáng)一致性(Zookeeper),弱一致性(Eureka)
Nacos框架(服務(wù)注冊(cè)中心)
Nacos簡(jiǎn)介
一個(gè)更易于構(gòu)建云原生應(yīng)用的動(dòng)態(tài)服務(wù)發(fā)現(xiàn)、配置管理和服務(wù)管理平臺(tái)。全稱Name and Config Service,Nacos的核心功能 = 服務(wù)注冊(cè) + 動(dòng)態(tài)配置,可以理解為Nacos = SpringCloud Eureka + SpringCloud Config

Nacos環(huán)境搭建
- 版本選擇
您可以在Nacos的release notes及博客中找到每個(gè)版本支持的功能的介紹,當(dāng)前推薦的穩(wěn)定版本為1.2.1。
- 預(yù)備環(huán)境準(zhǔn)備
Nacos 依賴 Java 環(huán)境來運(yùn)行。如果您是從代碼開始構(gòu)建并運(yùn)行Nacos,還需要為此配置 Maven環(huán)境,請(qǐng)確保是在以下版本環(huán)境中安裝使用:
- 64 bit OS,支持 Linux/Unix/Mac/Windows,推薦選用 Linux/Unix/Mac。
- 64 bit JDK 1.8+;下載 & 配置。
- Maven 3.2.x+;下載 & 配置。
- 下載源碼或者安裝包
你可以通過源碼和發(fā)行包兩種方式來獲取 Nacos。-
從 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 -
下載編譯后壓縮包方式
您可以從 最新穩(wěn)定版本 下載nacos-server-$version.zip包。unzip nacos-server-$version.zip 或者 tar -xvf nacos-server-$version.tar.gz cd nacos/bin -
啟動(dòng)服務(wù)器
Linux/Unix/Mac
啟動(dòng)命令(standalone代表著單機(jī)模式運(yùn)行,非集群模式):sh startup.sh -m standalone
如果您使用的是ubuntu系統(tǒng),或者運(yùn)行腳本報(bào)錯(cuò)提示[[符號(hào)找不到,可嘗試如下運(yùn)行:
bash startup.sh -m standalone
Windows
啟動(dòng)命令:cmd startup.cmd
或者雙擊startup.cmd運(yùn)行文件。
-
服務(wù)注冊(cè)&發(fā)現(xiàn)和配置管理
服務(wù)注冊(cè)
curl -X POST 'http://127.0.0.1:8848/nacos/v1/ns/instance?serviceName=nacos.naming.serviceName&ip=20.18.7.10&port=8080'服務(wù)發(fā)現(xiàn)
curl -X GET 'http://127.0.0.1:8848/nacos/v1/ns/instance/list?serviceName=nacos.naming.serviceName'發(fā)布配置
curl -X POST "http://127.0.0.1:8848/nacos/v1/cs/configs?dataId=nacos.cfg.dataId&group=test&content=HelloWorld"獲取配置
curl -X GET "http://127.0.0.1:8848/nacos/v1/cs/configs?dataId=nacos.cfg.dataId&group=test" -
關(guān)閉服務(wù)器
Linux/Unix/Mac
sh shutdown.shWindows
cmd shutdown.cmd或者雙擊shutdown.cmd運(yùn)行文件。
-
Nacos操作
