Spring Cloud Alibaba Nacos示例說明
一、Nacos簡介
Nacos是採用基於DNS和基於RPC的服務發現(可作為Dubbo、SpringCloud的註冊中心)、動態配置服務(配置Config中心)、動態DNS服務。
Nacos可用來進行發現、配置和管理微服務,提供了一些簡單易用的特性集,幫助我們實現動態服務發現、服務配置管理、服務及流量管理。
Nacos可以更敏捷和容易的構建、交付和管理微服務平臺。Nacos是構建以“服務”為中心的現代應用架構的服務基礎設施。
1.1nacos作為註冊中心
先在官網上下載nacos中間件,下面教程有啟動步驟
https://nacos.io/zh-cn/docs/quick-start.html
程序啟動默認佔用的端口是8848(珠穆朗瑪峰的高度),我們可以對端口進行修改,用編輯器打開bin目錄下的startup.cmd文件 添加一行代碼
set "JAVA_OPT=%JAVA_OPT% --server.port=9090
端口號就改成9090了。
還可以在conf文件下的application.properties中添加
server.port=9090
啟動
啟動成功之後在瀏覽器輸入:http://127.0.0.1:8848/nacos
查看
表示啟動成功。
這個配置管理項便是nacos的註冊中心服務端了,下面還有一個服務管理,是nacos註冊中心 圖形化界面的服務端,以後做介紹。啟動成功後我們就可以開始寫我們的java代碼了。
先新建一個springboot項目,添加如下依賴
<dependency>
<code> <groupid>org.springframework.cloud/<groupid> <artifactid>spring-cloud-starter-alibaba-nacos-config/<artifactid> <version>0.2.0.RELEASE/<version>/<code>
在resource目錄下加入 bootstrap.properties文件 並添加配置中心相關信息
bootstrap.properties:
#服務名
spring.application.name=nacos-config-example
# 配置中心url
spring.cloud.nacos.config.server-addr=127.0.0.1:8848
相應的application.properties的內容寫到配置中心裡面去
配置詳情:
在項目啟動時就會去配置中心去讀取配置信息(本地的配置文件application.properties還能用,但優先級低於配置中心的配置)
1.2基本概念
Nacos中的概念:
這張圖很重要。表述了namespace、group和service/dataId的包含關係。
NACOS給的最佳實踐表明,最外層的namespace是可以用於區分部署環境的,比如test,uat,product等。同時,也有一個商業利用價值:多租戶。以namespace為單位,給用戶開闢使用空間。
其它兩個領域模型不用多解釋了,見名知意。其目的也非常明顯,就是為了能夠邏輯上區分兩個目標對象。
默認情況下,namespace=public,group=DEFAULT_GROUP。
明白了這個數據模型後,可以稍微玩轉一下Console了,比如新建若干個namespace:
namespace順利創建成功後,會在每個一級頁面看到由namespace組成的TAB,可以任意切換namespace,對其下的數據進行操作。比如下圖的配置列表:
接下來會創建一個Demo工程,用於構建基於NACOS的config server和discovery server。
二、代碼示例
2.1構建Nacos服務提供者
代碼結構如下:
其nacos-discovery-server的Maven pom.xml配置文件
application.properties配置如下
主實體類
啟動成功之後Nacos控制檯查看:
2.2構建RestTemplate服務
構建RestTemplate工程
其Maven pom如下:
配置文件application.properties
啟動的RestTemplate服務如下:
RestTemplate服務請求url。運行起來查看Nacos控制檯:
訪問http://localhost:9002/test 查看RestTemplate調用
控制檯打印情況
服務提供者日誌如下:
Nacos服務RestTemplate調用成功
2.3Nacos Feign調用
構建Feign項目如圖:
Maven pom.xml如下:
其配置文件application.properties如下:
Feign客戶端指定
Feign調用示例如下:
啟動成功之後
調用Feign示例
查看控制檯
表示Feign調用成功
2.4 WebClient DIscovery調用
WebClient工程結構如圖:
其pom.xml如圖:
配置文件application.properties如下:
調用WebClient示例:
啟動成功之後關係如圖:
然後調用http://localhost:9003/test
WebClient調用成功
查看控制檯
三、總結
Nacos只是作為註冊中心。並不影響實際業務代碼的功能。這就是Spring Cloud的強大之處,註冊中心並不僅限於Nacos、Eureka,內部業務代碼不變,不影響外層。
閱讀更多 李越Java 的文章