干货分享微服务spring-cloud(7.配置中心spring-cloud-config)

Spring Cloud Config为分布式系统中的外部配置提供服务器和客户端支持。使用Config Server,您可以在所有环境中管理应用程序的外部属性。客户端和服务器上的概念映射与Spring Environment和PropertySource抽象相同。Spring Cloud Config支持在Git, SVN和本地存放配置文件,使用Git或者SVN存储库可以很好地支持版本管理,Spring默认配置是使用Git存储库,因此它轻松支持标签版本的配置环境,以及可以访问用于管理内容的各种工具。

7.1.    服务器端

新建spring boot项目demo-springcloud-config-server,新建启动ConfigServerApplication,@EnableConfigServer开启配置中心功能

项目依赖spring-cloud-config-server对配置中心支持

配置文件application.properties,读者自行填上自己的github账号和密码以便访问配置地址https://github.com/yhqnh/spring-cloud-demo-config-server-git.git

Github配置地址https://github.com/yhqnh/spring-cloud-demo-config-server-git.git是公开的,并且项目下面创建了config-repo目录,创建了四个配置文件project.properties,

project-dev.properties,

project-test.properties,

project-prod.properties

分别配置了

github=github-default-1.0,

github=github-dev-1.0,

github=github-test-1.0,

github=github-prod-1.0

Spring cloud config配置信息的URL与配置文件的映射关系如下所示:

/{application}/{profile}[/{label}]

/{application}-{profile}.yml

/{label}/{application}-{profile}.yml

/{application}-{profile}.properties

/{label}/{application}-{profile}.properties

上面的url会映射{application}-{profile}.properties对应的配置文件,其中{label}对应git上不同的分支,默认为master。启动应用用浏览器访问http://localhost:5551/project/dev会映射成project-dev.properties以此访问dev配置文件

7.2.    客户端

新建spring boot 项目并命名为demo-springcloud-config-client,创建启动类ConfigClientApplication

配置文件bootstrap.properties,多环境配置spring.profiles.active=dev表示激活dev配置

本地新建配置文件application-dev.properties

新建YhqController,获取配置文件我们采用两种方式,一种@Value,一种Environment

关键依赖

启动应用浏览器访问http://localhost:5552/getConfigFromValuehttp://localhost:5552/getConfigFromEnviroment读取之前本地配置文件变量值github-local-1.0

通过前面讲的加载顺序7优先于8,我们做一个验证。设置bootstrap.properties的spring.cloud.config.uri值让配置从上面搭建的配置服务端获取配置

启动应用浏览器http://localhost:5552/getConfigFromValuehttp://localhost:5552/getConfigFromEnviroment获取到了github-dev-1.0而并非github-local-1.0

下面 我们来实现动态刷新github的值,动态刷新依赖于/refresh端点,添加依赖spring-boot-starter-actuator为我们提供刷新端点/refresh并修改bootstrap.properties配置management.security.enabled=false来关闭springboot 1.5.X 以上默认开通的安全认证访问/refresh端点。

为YhqController添加刷新注解@RefreshScope启动应用访问http://localhost:5552/getConfigFromValuehttp://localhost:5552/getConfigFromEnviroment返回结果如上图github-dev-1.0

这时我们修改配置中心服务端的github值为github-dev-1.0-modify

再次访问http://localhost:5552/getConfigFromValuehttp://localhost:5552/getConfigFromEnviroment返回结果还是如上图github-dev-1.0

怎么配置没有动态刷新,这时需要post方式访问http://localhost:5552/refresh端点

再次访问http://localhost:5552/getConfigFromValuehttp://localhost:5552/getConfigFromEnviroment看看配置是否动态生效

原文地址:http://blog.51cto.com/11290909/2071525

时间: 2024-08-29 12:52:38

干货分享微服务spring-cloud(7.配置中心spring-cloud-config)的相关文章

微服务架构之「 配置中心 」

在微服务架构的系列文章中,前面已经通过文章<微服务架构之「服务网关 」>介绍过了在微服务中服务网关的原理和应用,今天这篇文章我们继续来聊一聊微服务中另外一个重要模块:「 配置中心 」.后面还会继续介绍 服务框架.服务监控.服务治理等.还是那句话,只有将这些基础设施弄清楚了,微服务实践的道路才能走的稳.走的远. 「配置中心」,顾名思义,就是用来统一管理项目中所有配置的系统.虽然听起来很简单,但也不要小瞧了这个模块.如果一个中型互联网项目,不采用配置中心的模式,一大堆的各类配置项,各种不定时的修改

干货分享微服务spring-cloud(8.服务治理和配置中心Spring-cloud-zooke)

8.1.    服务治理 Spring-cloud-zookeeper提供的模式包括服务发现和配置,配置动态更新不需要手动请求/refresh端点.该项目通过自动配置并绑定到Spring环境和其他Spring编程模型成语,为Spring Boot应用程序提供Zookeeper集成.通过几个简单的注释,您可以快速启用和配置应用程序中的常见模式,并使用基于Zookeeper的组件构建大型分布式系统.Feign,Turbine,Ribbon和Zuul均与Spring Cloud Zookeeper合作

微服务架构:动态配置中心搭建

版权声明:本文为博主原创文章,转载请注明出处,欢迎交流学习! 在微服务架构中,服务之间有着错综复杂的依赖关系,每个服务都有自己的依赖配置,在运行期间很多配置会根据访问流量等因素进行调整,传统的配置信息处理方式是将配置信息写入xml..properties等配置文件中,和应用一起打包,每次修改配置信息,都需要重新进行打包,效率极低,动态配置中心就是为了解决这一问题.动态配置中心也是一个微服务,我们把微服务中需要动态配置的配置文件存放在远程git私有仓库上,微服务会去服务器读取配置信息,当我们在本地

干货分享微服务spring-cloud(5.声明式服务调用feign)

Spring cloud feign基于Netflix feign实现,整合了spring cloud ribbon与spring cloud hystrix,除了提供这两者的强大功能之外,它还提供了一种声明式的web服务客户端定义方式 新建spring boot工程并命名为demo-springcloud-feign-consumer,新建启动类FeignApplication,通过@ EnableFeignClients注解来开启spring cloud feign的功能支持 定义YhqSe

干货分享微服务spring-cloud(6.Api网关服务zuul)

Spring cloud zuul对Netflix zuul进行了封装实现 新建spring boot项目demo-springcloud-api-gateway,创建启动类ZuulApplication,@EnableZuulProxy启动网关代理的配置,它也是组合注解,启用了服务注册发现和熔断器 项目关键依赖spring-cloud-starter-zuul对网关支持 配置文件application.properties,路由配置主要有传统路由和服务路由,传统路由就是ip和端口这种,服务路由

干货分享微服务spring-cloud(4.负载均衡ribbon与熔断器hystrix)

Ribbon是一个基于http和tcp的客户端负载均衡工具 Hystrix具备服务降级.服务熔断.线程和信号隔离.请求缓存.请求合并以及服务监控 为了方便消费者负载均衡效果,复制demo-springcloud-client1并重名为demo-springcloud-client2,修改配置文件和启动类,服务提供者1和2服务名均为spring.application.name=demo-springcloud-client 修改YhqContoller实现,为了方便负载均衡观察效果,demo-s

【干货】微服务技术栈选型手册2.0

一.前言 2014年可以认为是微服务1.0的元年,当年有几个标志性事件,一是Martin Fowler在其博客上发表了"Microservices"一文,正式提出微服务架构风格:二是Netflix微服务架构经过多年大规模生产验证,最终抽象落地形成一整套开源的微服务基础组件,统称NetflixOSS,Netflix的成功经验开始被业界认可并推崇:三是Pivotal将NetflixOSS开源微服务组件集成到其Spring体系,推出Spring Cloud微服务开发技术栈. 一晃三四年过去,

Spring Cloud学习--配置中心(Config)

Spring Cloud学习--配置中心(Config) 一 Spring Cloud Config简介 二 编写 Config Server 三 编写Config Client 四 使用refresh端点手动刷新配置 五 Spring Config Server与Eurelka配合使用 六 Config Server的高可用 一. Spring Cloud Config简介 微服务要实现集中管理微服务配置.不同环境不同配置.运行期间也可动态调整.配置修改后可以自动更新的需求,Spring Cl

Servlet+MyBatis项目转Spring Cloud微服务,多数据源配置修改建议

一.项目需求 在开发过程中,由于技术的不断迭代,为了提高开发效率,需要对原有项目的架构做出相应的调整. 二.存在的问题 为了不影响项目进度,架构调整初期只是把项目做了简单的maven管理,引入springboot并未做spring cloud微服务处理.但随着项目的进一步开发,急需拆分现有业务,做微服务处理.因此架构上的短板日益突出.spring cloud config 无法完全应用,每次项目部署需要修改大量配置文件.严重影响开发效率,因此便萌生了对项目架构再次调整的决心. 三.调整建议 为了