參考位址
本文主要面向 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...