Spring Cloud Alibaba Nacos示例說明

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

啟動


Spring Cloud Alibaba Nacos示例說明


啟動成功之後在瀏覽器輸入:http://127.0.0.1:8848/nacos

查看


Spring Cloud Alibaba 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的內容寫到配置中心裡面去


Spring Cloud Alibaba Nacos示例說明


配置詳情:


Spring Cloud Alibaba Nacos示例說明


在項目啟動時就會去配置中心去讀取配置信息(本地的配置文件application.properties還能用,但優先級低於配置中心的配置)

1.2基本概念

Nacos中的概念:


Spring Cloud Alibaba Nacos示例說明


這張圖很重要。表述了namespace、group和service/dataId的包含關係。

NACOS給的最佳實踐表明,最外層的namespace是可以用於區分部署環境的,比如test,uat,product等。同時,也有一個商業利用價值:多租戶。以namespace為單位,給用戶開闢使用空間。

其它兩個領域模型不用多解釋了,見名知意。其目的也非常明顯,就是為了能夠邏輯上區分兩個目標對象。

默認情況下,namespace=public,group=DEFAULT_GROUP。

明白了這個數據模型後,可以稍微玩轉一下Console了,比如新建若干個namespace:


Spring Cloud Alibaba Nacos示例說明


namespace順利創建成功後,會在每個一級頁面看到由namespace組成的TAB,可以任意切換namespace,對其下的數據進行操作。比如下圖的配置列表:


Spring Cloud Alibaba Nacos示例說明


接下來會創建一個Demo工程,用於構建基於NACOS的config server和discovery server。

二、代碼示例

2.1構建Nacos服務提供者

代碼結構如下:


Spring Cloud Alibaba Nacos示例說明


其nacos-discovery-server的Maven pom.xml配置文件


Spring Cloud Alibaba Nacos示例說明


Spring Cloud Alibaba Nacos示例說明


application.properties配置如下


Spring Cloud Alibaba Nacos示例說明


主實體類


Spring Cloud Alibaba Nacos示例說明


啟動成功之後Nacos控制檯查看:


Spring Cloud Alibaba Nacos示例說明


2.2構建RestTemplate服務

構建RestTemplate工程


Spring Cloud Alibaba Nacos示例說明


其Maven pom如下:


Spring Cloud Alibaba Nacos示例說明


Spring Cloud Alibaba Nacos示例說明


配置文件application.properties


Spring Cloud Alibaba Nacos示例說明


啟動的RestTemplate服務如下:


Spring Cloud Alibaba Nacos示例說明


RestTemplate服務請求url。運行起來查看Nacos控制檯:


Spring Cloud Alibaba Nacos示例說明


訪問http://localhost:9002/test 查看RestTemplate調用


Spring Cloud Alibaba Nacos示例說明


控制檯打印情況


Spring Cloud Alibaba Nacos示例說明


服務提供者日誌如下:


Spring Cloud Alibaba Nacos示例說明


Nacos服務RestTemplate調用成功

2.3Nacos Feign調用

構建Feign項目如圖:


Spring Cloud Alibaba Nacos示例說明


Maven pom.xml如下:


Spring Cloud Alibaba Nacos示例說明


Spring Cloud Alibaba Nacos示例說明


其配置文件application.properties如下:


Spring Cloud Alibaba Nacos示例說明


Feign客戶端指定


Spring Cloud Alibaba Nacos示例說明


Feign調用示例如下:


Spring Cloud Alibaba Nacos示例說明


啟動成功之後


Spring Cloud Alibaba Nacos示例說明


調用Feign示例


Spring Cloud Alibaba Nacos示例說明


查看控制檯


Spring Cloud Alibaba Nacos示例說明


表示Feign調用成功

2.4 WebClient DIscovery調用

WebClient工程結構如圖:


Spring Cloud Alibaba Nacos示例說明


其pom.xml如圖:


Spring Cloud Alibaba Nacos示例說明


Spring Cloud Alibaba Nacos示例說明


配置文件application.properties如下:


Spring Cloud Alibaba Nacos示例說明


調用WebClient示例:


Spring Cloud Alibaba Nacos示例說明


啟動成功之後關係如圖:


Spring Cloud Alibaba Nacos示例說明


然後調用http://localhost:9003/test


Spring Cloud Alibaba Nacos示例說明


WebClient調用成功

查看控制檯


Spring Cloud Alibaba Nacos示例說明


三、總結

Nacos只是作為註冊中心。並不影響實際業務代碼的功能。這就是Spring Cloud的強大之處,註冊中心並不僅限於Nacos、Eureka,內部業務代碼不變,不影響外層。



分享到:


相關文章: