Spring Cloud Alibba教程:如何使用Nacos作為配置中心
在上一篇文章中講解了如何使用Nacos作為服務注冊中心注冊。Nacos除了可以作為服務注冊中心,它還有服務配置中心的功能。類似于consul config,Nacos 是支持熱加載的。本篇文章將講述如何使用Nacos作為配置中心。
本案例是在上一篇文章(Nacos作為服務注冊與發現)的nacos-provider工程上改造的,在工程的pom文件引入nacos-config的Spring cloud依賴,版本為0.9.0. RELEASE,代碼如下:
在bootstrap.yml(一定是bootstrap.yml文件,不是application.yml文件)文件配置以下內容:
spring:??application:????name:?nacos-provider??cloud:????nacos:??????config:????????server-addr:?127.0.0.1:8848????????file-extension:?yaml????????prefix:?nacos-provider??profiles:????active:?dev
在上面的配置中,配置了nacos config server的地址,配置的擴展名是ymal(目前僅支持ymal和properties)。注意是沒有配置server.port的,sever.port的屬性在nacos中配置。上面的配置是和Nacos中的 dataId?的格式是對應的,nacos的完整格式如下:
${prefix}-${spring.profile.active}.${file-extension}
prefix?默認為?spring.application.name?的值,也可以通過配置項?spring.cloud.nacos.config.prefix來配置。
spring.profile.active?即為當前環境對應的 profile,詳情可以參考?Spring Boot文檔。?注意:當?spring.profile.active?為空時,對應的連接符-?也將不存在,dataId 的拼接格式變成?${prefix}.${file-extension}
file-exetension?為配置內容的數據格式,可以通過配置項?spring.cloud.nacos.config.file-extension?來配置。目前只支持?properties?和?yaml?類型。
啟動nacos,登陸localhost:8848/nacos,創建一個data id ,完整的配置如圖所示:
寫一個RestController,在Controller上添加 @RefreshScope 實現配置的熱加載。代碼如下:
@RestController
@RefreshScope
public class ConfigController {
@Value("${username:lily}")
private String username;
@RequestMapping("/username")
public String get() {
return username;
}
}
啟動工程nacos-provider,在瀏覽器***問localhost:8761/username,可以返回在nacos控制臺上配置的username。在nacos 網頁上更改username的配置,在不重啟nacos-provider工程的情況下,重新訪問localhost:8761/username,返回的事修改后的值,可見nacos作為配置中心實現了熱加載功能。
https://mp.weixin.qq.com/s?__biz=MzAxNjk4ODE4OQ==&mid=2247485707&idx=1&sn=bb95017692fb05b06f234b7d4870543e&chksm=9bed2879ac9aa16f26044e08f96cde54016d57b5e514345ea9210d8debd144e272ad58f4fad1&scene=21#wechat_redirect
Spring Cloud Spring
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。