当前位置: 首页> 财经> 产业 > 福州网站建设平台_电商b2c_北京网络推广公司排行_产品营销推广

福州网站建设平台_电商b2c_北京网络推广公司排行_产品营销推广

时间:2025/7/11 7:45:45来源:https://blog.csdn.net/CSDN_LiMingfly/article/details/142905577 浏览次数:0次
福州网站建设平台_电商b2c_北京网络推广公司排行_产品营销推广

前言
在实际开发中经常会有一个叫做配置中心的服务,这个服务经过变更参数来动态刷新线上业务数据行为配置。比如;行为开关、活动数据、黑白名单、本地/预发/线上环境切换等等,这些配置信息往往需要在我们不重启系统的时候就可以被更新执行。那么我们一般会使用具备此类属性在分布式系统中适合的组件进行开发配置中心,像是zookeeper、redis发布订阅、或者http定时轮许拉取,他们都可以做成统一配置中心服务。而在Spring Cloud Config 中,默认采用 Git 来存储配置信息,所以使用 Spring Cloud Config 构建的配置服务器,天然就支持对微服务应用配置信息的版本管理,在加上Github的Webhook钩子服务,可以在我们push等行为操作的时候,自动执行我们的http行为,以达到自动刷新配置服务。
案例说明
通过在个人Git创建配置服务工程,开启Webhooks服务添加回调钩子http://xxx:port/actuator/refresh在更新配置后自动刷新服务配置内容.
在这里插入图片描述
web/ConfigClientController.java & 添加注解@RefreshScope自动刷新配置

@RestController
@RefreshScope
public class ConfigClientController {@Value("${info.profile:error}")private String profile;@GetMapping("/config")public Mono<String> config() {return Mono.justOrEmpty(profile);}}

ConfigClientApplication.java & 普通配置即可

@SpringBootApplication
public class ConfigClientApplication {public static void main(String[] args) {SpringApplication.run(ConfigClientApplication.class, args);}}

application.yml & 需要配置endpoints,这样才可以暴漏刷新服务

spring:application:name: demo-springcloud-config-client
server:port: 9001# /actuator/refresh 这个 Endpoint 暴露出来
management:endpoints:web:exposure:include: refresh

bootstrap.yml & 配置中心服务配置,http://localhost:7397

spring:cloud:config:uri: http://localhost:7397  # 配置中心的具体地址;demo-springcloud-config-servername: config-client         # 对应 {application} 部分,例如;config-client-dev = 只取最后一个符号'-'之前的profile: dev                # 对应 {profile} 部分label: master               # 对应 {label} 部分,即 Git 的分支。如果配置中心使用的是本地存储,则该参数无用#配置文件会被转换成 Web,访问规则如下;
#/{application}/{profile}[/{label}]
#/{application}-{profile}.yml
#/{label}/{application}-{profile}.yml
#/{application}-{profile}.properties
#/{label}/{application}-{profile}.properties

ConfigServerApplication.java & 添加注解@EnableConfigServer设置成配置服务中心

@SpringBootApplication
@EnableConfigServer
public class ConfigServerApplication {public static void main(String[] args) {SpringApplication.run(ConfigServerApplication.class, args);}}

application.yml &

server:port: 7397spring:application:name: demo-springcloud-configcloud:config:server:git:uri: https://github.com/xxx/-demo-config  # 换成自己的配置Git仓库的地址,如果没有可以新建工程地址,也可以克隆我的search-paths: config-repo                               # Git仓库地址下的底层配置文件名称,如果配置多个用逗号','分割。# 如果配置中心需要访问权限,则开启配置
# spring.cloud.config.server.git.username:Github账户
# spring.cloud.config.server.git.password:Github密码

测试验证
1:准备好自己Github的配置仓库,也可以克隆我的Git;https://github.com/fuzhengwei/itstack-demo-config {有一组配置配置文件}

2:配置Webhooks,在https://github.com/换你自己的fuzhengwei/换你自己的itstack-demo-netty/settings/hooks/new

3:分别启动服务
demo-springcloud-config-server 配置Server
demo-springcloud-config-client 配置Client
访问配置服务,端口7397;http://localhost:7397/config-client/dev

访问结果

{"name": "config-client","profiles": ["dev"],"label": null,"version": "ea0b1a1017595d542aa01b8b2bda68f9620dd81a","state": null,"propertySources": [{"name": "https://github.com/fuzhengwei/itstack-demo-config/config-repo/config-client-dev.yml","source": {"info.profile": "dev bus"}}]
}

访问规则{配置文件会被转换成 Web 接口,规则如下}
/{application}/{profile}[/{label}]
/{application}-{profile}.yml
/{label}/{application}-{profile}.yml
/{application}-{profile}.properties
/{label}/{application}-{profile}.properties
访问配置文件;http://localhost:8080/config-client-dev.yml {可以直接访问查看配置信息}

info:profile: dev bus

访问使用配置的客户端,端口9001;http://localhost:9001/config {可以提交配置代码反复刷新测试}

dev bus

综上总结
1:Spring Cloud Config 可以很方便的依赖于Github提供的回调钩子进行更新配置,同时也支持本地配置
2:Webhooks 不止可以用于变更配置,还可以用于一起启动触发工程打包部署发布的行为
3:不要局限于知识点,往往每一个新知识所带来的架构设计更值得学习,这些都可以灵活的用于项目系统中

好了到这里就结束了springcloud之基于github webhook动态刷新服务配置的学习,大家一定要跟着动手操作起来。需要源码的 可si我获取;

关键字:福州网站建设平台_电商b2c_北京网络推广公司排行_产品营销推广

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: