您好,登錄后才能下訂單哦!
本篇文章為大家展示了如何使用spring cloud集成nacos配置中心,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。
<properties> <spring-cloud.version>Finchley.RELEASE</spring-cloud.version> <nacos.version>0.9.0.RELEASE</nacos.version> </properties> <!-- 配置管理功能依賴 --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> <version>${nacos.version}</version> </dependency>
(*nacos配置中心讀取不到application.yml)
spring: profiles: active: dev cloud: nacos: config: server-addr: 127.0.0.1:8848 # 配置中心-指定命名空間 namespace: babc3933-84ef-43c8-8171-af2ce2fbf6e4 # 指定配置文件后綴 file-extension: yaml #配置組 group: DEFAULT_GROUP
1. 使用已有命名空間或者添加命名空間
2. namespace:命名空間的ID
3. 新建配置DateId 規則如下:
${prefix}-${spring.profile.active}.${file-extension}
*注意帶文件后綴
4. 配置格式選擇yaml
5. 在配置內容中寫入配置
在分布式系統中動態配置中,可以避免重復重啟服務,動態更改服務參數等。一句話非常重要。 另外一篇文章也是這樣說的,哈哈。 Nacos作為Spring 推薦的分布式調度系統其也具備配置中心的功能, 我們也可以利用其作為配置中心,其client端主動定時發起與配置中心同步機制,實現動態配置的的更新。
環境依賴:
名稱 | 值 |
---|---|
JDK | 1.8 |
Consul | 1.5.2 |
SpringCloud | Greenwich.SR1 |
Nacos | 1.1.0 |
1) pom依賴(主要)
<properties> <java.version>1.8</java.version> <spring-cloud.version>Greenwich.SR1</spring-cloud.version> <spring-cloud-alibaba.version>0.9.0.RELEASE</spring-cloud-alibaba.version> </properties> <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>${spring-cloud.version}</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-alibaba-dependencies</artifactId> <version>${spring-cloud-alibaba.version}</version> <type>pom</type> <scope>import</scope> </dependency> </dependencyManagement> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-consul-discovery</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> </dependency>
2)配置文件
application.properties #0表示服務器隨機端口 server.port=8090 #本次演示的kv的默認值(老板默認給你0元) company.pay.money=0
bootstrap.properties
#服務名稱 spring.application.name=waiter-service #consul 地址 spring.cloud.consul.host=localhost #consul 端口 spring.cloud.consul.port=8500 spring.cloud.consul.discovery.prefer-ip-address=true #nacos config server 地址 spring.cloud.nacos.config.server-addr=127.0.0.1:8848 #nacos 配置中心功能,默認true spring.cloud.nacos.config.enabled=true #nacos config server 動態配置文件格式 spring.cloud.nacos.config.file-extension=yaml
3)動態參數接收類
@ConfigurationProperties("company.pay") @RefreshScope @Data @Component public class PayMoneyProperties { //key結尾部分,以小數點為間隔 Integer money ; }
備注:
ConfigurationProperties 表示這個類關聯動態配置,“company.pay”表示key的前綴部分。
@RefreshScope 表示動態刷新config server 值
@Component 表示將該類加載到IOC容器中
在實戰中嘗試用@Value的方式獲取動態,只能實現服務重啟后獲取動態的config server 的值
4)對外接口(便于直觀驗證)
方式一:
@RestController @RequestMapping("nacos) public class NacosConfigController { @Autowired private PayMoneyProperties payMoneyProperties ; @RequestMapping("/pay/money") public Object getConfig(HttpRequest request){ String money ="項目順利上線,老板開始發獎金:"; return money + payMoneyProperties.getMoney(); } }
方式二:
@RestController @RequestMapping("nacos") //啟用動態配置刷新 @RefreshScope public class NacosConfigController { //獲取配置的值 @Value("${company.pay.money}") private String moneyConfig; @RequestMapping("/pay/money") public Object getZkConfig(HttpRequest request){ String money ="項目順利上線,老板開始發獎金:"; return money +moneyConfig; } }
5)啟動項目
上圖可以通過日志看出config server 的連接信息,默認拉取nacos上 項目名稱.yaml 為Data ID 的文件。
6)nacos config server 還沒設置對應節點值時演示(獲取的是本地配置文件值)
備注:Spring boot 在加載配置順序:本地配置文件 --> Config Server -->application
7) nacos 中創建數據節點
請求地址:http://localhost:8848/nacos
創建數據:Data ID:waiter-service.yaml
注意:YAML數據中,通過空格、“:” 表示數據層級關系, 在設置這個值前,可以在網上校驗一下YAML內容的有效性;
8)驗證項目里是有有收到動態配置
如下圖,表示已經通知到項目更新的值
在驗證接口中請求一下對應接口,發現值已經和nacos config server 中動態設置的值相同了
1)nacos作為注冊中心相比 consul 、zookeeper 作為注冊中心,有了更友好的web頁面,支持監聽節點信息查詢、配置歷史版本查詢、修改對比 等功能
2)client 會定時拉取nacos config server 值,與本地值對比
上述內容就是如何使用spring cloud集成nacos配置中心,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。