哪个专业是学网站开发的,建设企业网站体会,广州平台网站建设,网络公关公司电话SpringCloudConfig 的作用是可以进行配置的更新处理#xff0c;这个的确是很好#xff0c;但是原始的SpringCloudNetflix 架构所提供的动态的抓取配置实在是太繁琐了#xff0c;包括还要使用到SpringCloudBus进行Actuator处理 SpringCloudAlibaba套件之中是基于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: truebootstrap.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() {MapString, 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: yootk111message.provider-test.yml
yootk:message:flag: testcontent: yootk222message.provider-prod.yml
yootk:message:flag: prodcontent: yootk3333、【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处理操作更不需要使用到消息组件而整个的配置可以通过可视化的环境进行方便的维护所以技术不能够停止更新哪怕现在技术已经跑通了也不要停止思考。