日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

SpringCloudConfig整合Nacos

發布時間:2023/12/3 javascript 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SpringCloudConfig整合Nacos 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

SpringCloudConfig 的作用是可以進行配置的更新處理,這個的確是很好,但是原始的SpringCloudNetflix 架構所提供的動態的抓取配置實在是太繁瑣了,包括還要使用到SpringCloudBus進行Actuator處理

SpringCloudAlibaba套件之中是基于Nacos 實現的服務管理,Nacos里面有一個動態的監聽配置,只要你在Nacos之中定義了配置項,那么就可以在程序里面動態抓取(不再需要config-server,不再需要springcloudbus)。

1.1、【microcloud項目】創建“provider-message-8201”模塊

build.gradle

project(":provider-message-8201") { // 消息微服務dependencies {implementation("org.springframework.boot:spring-boot-starter-web")implementation(libraries.'spring-boot-admin-starter-client')// 以下的依賴庫為Nacos注冊中心所需要的依賴配置implementation('com.alibaba.cloud:spring-cloud-starter-alibaba-nacos-discovery') {exclude group: 'com.alibaba.nacos', module: 'nacos-client' // 移除舊版本的Nacos依賴}implementation('com.alibaba.cloud:spring-cloud-starter-alibaba-nacos-config') {exclude group: 'com.alibaba.nacos', module: 'nacos-client' // 移除舊版本的Nacos依賴}implementation(libraries.'nacos-client') // 引入與當前的Nacos匹配的依賴庫} }

1.2、【provider-message-8201】配置文件

application.yml

server: # 服務端配置port: 8201 # 8201端口 spring:application: # 配置應用信息name: message.provider # 是微服務的名稱cloud: # Cloud配置nacos: # Nacos注冊中心配置discovery: # 發現服務weight: 80service: ${spring.application.name} # 使用微服務的名稱作為注冊的服務名稱server-addr: nacos-server:8848 # Nacos服務地址namespace: 96c23d77-8d08-4648-b750-1217845607ee # 命名空間IDgroup: MICROCLOUD_GROUP # 一般建議大寫cluster-name: MuyanCluster # 配置集群名稱metadata: # 根據自身的需要配置元數據version: 1.0 # 自定義元數據項register-enabled: true

bootstrap.yml

spring: # Spring配置項application:name: message.provider # 應用名稱cloud: # SpringCloud配置項nacos: # Nacos注冊中心的配置config: # gRPC通訊配置server-addr: nacos-server:8848 # Nacos地址namespace: 96c23d77-8d08-4648-b750-1217845607ee # 命名空間IDgroup: MICROCLOUD_GROUP # 一般建議大寫cluster-name: MuyanCluster # 配置集群名稱discovery: # 發現服務weight: 80service: ${spring.application.name} # 使用微服務的名稱作為注冊的服務名稱server-addr: nacos-server:8848 # Nacos服務地址namespace: 96c23d77-8d08-4648-b750-1217845607ee # 命名空間IDgroup: MICROCLOUD_GROUP # 一般建議大寫cluster-name: MuyanCluster # 配置集群名稱metadata: # 根據自身的需要配置元數據version: 1.0 # 自定義元數據項

1.3、【provider-message-8201】MessageAction

package com.yootk.provider.action;import com.yootk.provider.vo.MessageConfig; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController;import java.util.HashMap; import java.util.Map;@RestController @RequestMapping("/provider/message/*") public class MessageAction {@Autowiredprivate MessageConfig messageConfig;@RequestMapping("config")public Object config() {Map<String, Object> result = new HashMap<>();result.put("flag", this.messageConfig.getFlag());result.put("content", this.messageConfig.getContent());return result;} }

1.4、【provider-message-8201】MessageConfig

package com.yootk.provider.vo;import lombok.Data; import org.springframework.beans.factory.annotation.Value; import org.springframework.cloud.context.config.annotation.RefreshScope; import org.springframework.stereotype.Component;@Data @Component // 必須添加為Bean @RefreshScope // 動態加載 public class MessageConfig {@Value("${yootk.message.flag}") // 配置文件的加載KEYprivate String flag;@Value("${yootk.message.content}") // 配置文件的加載KEYprivate String content; }

1.5、【provider-message-8201】StartMessageApplication

package com.yootk.provider;import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.client.discovery.EnableDiscoveryClient;@SpringBootApplication @EnableDiscoveryClient public class StartMessageApplication {public static void main(String[] args) {SpringApplication.run(StartMessageApplication.class, args);} }

2、【Nacos控制臺】既然現在不再通過GITLab存儲了,那么就可以將所有的存儲項保存在Nacos里面

message.provider-dev.yml

yootk:message:flag: devcontent: yootk111

message.provider-test.yml

yootk:message:flag: testcontent: yootk222

message.provider-prod.yml

yootk:message:flag: prodcontent: yootk333




3、【provider-message-8201子模塊】修改bootstrap.yml配置文件:

spring.cloud.nacos.config.file-extension
speing.peofiles.active

spring: # Spring配置項application:name: message.provider # 應用名稱profiles:active: dev # 使用的profile配置項cloud: # SpringCloud配置項nacos: # Nacos注冊中心的配置config: # gRPC通訊配置server-addr: nacos-server:8848 # Nacos地址namespace: 96c23d77-8d08-4648-b750-1217845607ee # 命名空間IDgroup: MICROCLOUD_GROUP # 一般建議大寫cluster-name: MuyanCluster # 配置集群名稱file-extension: yml # 配置文件類型discovery: # 發現服務weight: 80service: ${spring.application.name} # 使用微服務的名稱作為注冊的服務名稱server-addr: nacos-server:8848 # Nacos服務地址namespace: 96c23d77-8d08-4648-b750-1217845607ee # 命名空間IDgroup: MICROCLOUD_GROUP # 一般建議大寫cluster-name: MuyanCluster # 配置集群名稱metadata: # 根據自身的需要配置元數據version: 1.0 # 自定義元數據項

程序啟動日志

此時通過日志信息可以發現,指定的配置項已經開啟了訂閱,那么就意味著只要修改了Nacos里面的配置項的內容,當前的消息服務就可以獲取到最新的配置了。

當Nacos里面成功的修改了配置項的內容之后,對應的微服務的后臺會有日志信息的輸出:
Refresh keys changed: [yootk.message.content]

這個時候不再需要繁瑣的ConfigServer加載,也不再需要各種的Actuator處理操作,更不需要使用到消息組件,而整個的配置可以通過可視化的環境進行方便的維護,所以技術不能夠停止更新,哪怕現在技術已經跑通了,也不要停止思考。

總結

以上是生活随笔為你收集整理的SpringCloudConfig整合Nacos的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。