Nacos Spring Cloud 快速開始

2021-10-06 18:20:41 字數 3134 閱讀 5243

參考位址

本文主要面向 spring cloud 的使用者,通過兩個示例來介紹如何使用 nacos 來實現分布式環境下的配置管理和服務註冊發現。

關於 nacos spring cloud 的詳細文件請參看:nacos config 和 nacos discovery。

通過 nacos server 和 spring-cloud-starter-alibaba-nacos-config 實現配置的動態變更。

通過 nacos server 和 spring-cloud-starter-alibaba-nacos-discovery 實現服務的註冊與發現。

啟動了 nacos server 後,您就可以參考以下示例**,為您的 spring cloud 應用啟動 nacos 配置管理服務了。完整示例**請參考:nacos-spring-cloud-config-example

1、新增依賴:

com.alibaba.cloud

spring-cloud-starter-alibaba-nacos-config

$

注意:版本 2.1.x.release 對應的是 spring boot 2.1.x 版本。版本 2.0.x.release 對應的是 spring boot 2.0.x 版本,版本 1.5.x.release 對應的是 spring boot 1.5.x 版本。

spring.cloud.nacos.config.server-addr=127.0.0.1:8848
在 nacos spring cloud 中,dataid 的完整格式如下:

$-$.$
spring.profile.active 即為當前環境對應的 profile,詳情可以參考 spring boot文件。 注意:當

spring.profile.active 為空時,對應的連線符 - 也將不存在,dataid 的拼接格式變成

p re

fix.

.prefix

.file-exetension 為配置內容的資料格式,可以通過配置項

spring.cloud.nacos.config.file-extension 來配置。目前只支援 properties 和 yaml

型別。

4、通過 spring cloud 原生註解 @refreshscope 實現配置自動更新:

@restcontroller

@refreshscope

public class configcontroller ")

private boolean uselocalcache;

public boolean get()

}

5、首先通過呼叫 nacos open api 向 nacos server 發布配置:dataid 為example.properties,內容為uselocalcache=true

curl -x post ""
7、再次呼叫 nacos open api 向 nacos server 發布配置:dataid 為example.properties,內容為uselocalcache=false

curl -x post ""
8、再次訪問 http://localhost:8080/config/get,此時返回內容為false,說明程式中的uselocalcache值已經被動態更新了。

本節通過實現乙個簡單的 echo service 演示如何在您的 spring cloud 專案中啟用 nacos 的服務發現功能,如下圖示:

完整示例**請參考:nacos-spring-cloud-discovery-example

1、新增依賴:

com.alibaba.cloud

spring-cloud-starter-alibaba-nacos-discovery

$

注意:版本 2.1.x.release 對應的是 spring boot 2.1.x 版本。版本 2.0.x.release 對應的是 spring boot 2.0.x 版本,版本 1.5.x.release 對應的是 spring boot 1.5.x 版本。

2、配置服務提供者,從而服務提供者可以通過 nacos 的服務註冊發現功能將其服務註冊到 nacos server 上。

server.port=8070

spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848

ii. 通過 spring cloud 原生註解@enablediscoveryclient開啟服務註冊發現功能:

@enablediscoveryclient

public static void main(string args)

@restcontroller

class echocontroller }}

server.port=8080

spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848

ii. 通過 spring cloud 原生註解 @enablediscoveryclient 開啟服務註冊發現功能。給 resttemplate 例項新增 @loadbalanced 註解,開啟 @loadbalanced 與 ribbon 的整合:

@enablediscoveryclient

@loadbalanced

@bean

public resttemplate resttemplate()

public static void main(string args)

@restcontroller

public class testcontroller

public string echo(@pathvariable string str)

}}

Spring Cloud Config 快速開始

啟動伺服器 cd spring cloud config server mvnw spring boot run curl localhost 8888 foo development http服務具有以下格式的資源 spring cloud config伺服器從git儲存庫 必須提供 為遠端客戶端...

快速學習Expression Blend開發三要素

多數是剛入門的silverlight開發人員,不少人在問,目前軟體開發角色分工細化,是不是做後台的,就可以不用學習前台設計?這個問題讓我想起曾經在園子裡看到過相關的討論,同時也讓我想起工作中軟體開發角色的分工。為了不偏離本篇的主題,我不再擴充套件職業分工化的討論,直接說說我對上面問題的回答,在我個人...

Spring Security框架的快速開始

1 導包 採用spring boot spring security的方式 org.springframework.boot groupid spring boot starter security artifactid dependency 2 編寫controlller restcontroll...