springcloud实战之14动态刷新分布式配置中心属性配置(config)
来源:互联网 发布:淘宝网超溥长款羽戎服 编辑:程序博客网 时间:2024/05/17 08:25
springcloud实战之10 分布式配置中心(config)介绍了如何用spring cloud config和git仓库读取配置文件,当配置文件里的属性发生变化,按照以往的惯例,必须重启服务才能够读取到新的配置属性。但springcloud config为我们提供了springcloud bus(消息总线)能够实现动态刷新配置文件。
重构(springcloud-server-config)工程
添加依赖
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.9.RELEASE</version> <relativePath /></parent><dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>Edgware.RELEASE</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies></dependencyManagement><dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-config-server</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-eureka</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-bus-amqp</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency></dependencies>
改造入口类
@SpringBootApplication@EnableConfigServer@EnableDiscoveryClientpublic class SpringCloudServerConfigApplication { public static void main(String[] args) { SpringApplication.run(SpringCloudServerConfigApplication.class,args) ; }}
修改配置文件
server: port: 8001management: security: enabled: falsespring: application: name: springcloud-server-config cloud: config: server: git: uri: https://github.com/shiyuan2he/springcloud search-paths: springcloud-repo-config username: password: force-pull: true label: master rabbitmq: host: 192.168.175.128 port: 5672 username: admin password: admineureka: client: service-url: defaultZone: http://peer1:8080/eureka/
重构springcloud-service-config项目
添加依赖
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.9.RELEASE</version> <relativePath /></parent><dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>Edgware.RELEASE</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies></dependencyManagement><dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-config</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-eureka</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-bus-amqp</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency></dependencies>
重构入口类
@SpringBootApplication@EnableDiscoveryClientpublic class SpringCloudServiceConfigApplication { public static void main(String[] args) { SpringApplication.run(SpringCloudServiceConfigApplication.class,args) ; }}
改造web层接口
@RestController@RefreshScope@RequestMapping(value = "/api/rest")public class RestfulController { @Value("${user.name}") String name; @Value("${user.age}") String age ; @GetMapping("/name") public String getName(){ return name +":"+ age; }}
新建配置文件bootstrap.properties
spring.application.name=springcloud-service-configspring.cloud.config.label=masterspring.cloud.config.profile=devspring.cloud.config.uri= http://localhost:8001/server.port=8003eureka.client.serviceUrl.defaultZone=http://peer1:8080/eureka/## 从配置中心读取文件spring.cloud.config.discovery.enabled=true## 配置中心的servieId,即服务名。spring.cloud.config.discovery.serviceId=springcloud-server-configspring.cloud.config.fail-fast=truespring.rabbitmq.host=192.168.175.128spring.rabbitmq.port=5672spring.rabbitmq.username=adminspring.rabbitmq.password=adminmanagement.security.enabled=false
启动项目
1.启动服务注册中心集群(springcloud-server-eureka)
2.启动服务配置中心(springcloud-server-config)
3.启动springcloud-service-config集群
启动后的服务注册图如下:
分别调用两个读取配置文件得集群:
去github仓库修改配置文件,并访问之前的集群服务,还没有立马生效
调用http://localhost:8001/bus/refresh 接口刷新配置中心服务
再次查看集群服务,如下图
源码
springcloud-server-eureka
springcloud-server-config
springcloud-service-config
历史文章
springcloud实战之1 技术选型:dubbo还是springcloud
springcloud实战之2 服务注册与发现(eureka实现)
springcloud实战之3 高可用服务注册中心(eureka集群)
springcloud实战之5 服务消费者(ribbon)
springcloud实战之6 服务消费者(Feign)
springcloud实战之7 断路器(Hystrix)
springcloud实战之8 断路器-仪表盘-单例监控(Hystrix)
springcloud实战之9断路器-集群监控(turbine)
springcloud实战之10 分布式配置中心(config)
springcloud实战之11路由网关(zuul)
springcloud实战之12 路由网关拦截器
springcloud实战之13 rabbitmq消息总线(bus)
- springcloud实战之14动态刷新分布式配置中心属性配置(config)
- springcloud实战之10 分布式配置中心(config)
- springcloud config 分布式配置中心
- SpringCloud之分布式服务配置中心(Spring Cloud Config)
- SpringCloud Config-----1、搭建分布式配置中心
- SpringCloud: 分布式配置中心(Spring Cloud Config)
- springcloud config 配置中心
- springcloud配置中心(config)
- SpringCloud教程六:分布式配置中心(SpringCloud Config)
- SpringCloud Config-----4、动态刷新配置
- SpringCloud: 高可用的分布式配置中心(Spring Cloud Config)
- SpringCloud教程 | 第六篇: 分布式配置中心(Spring Cloud Config)
- SpringCloud 教程 | 第六篇:分布式配置中心(Spring Cloud Config)
- springcloud-config配置中心的安全配置
- SpringCloud教程七:高可用的分布式配置中心(SpringCloud Config)
- 《SpringCloud微服务实战》学习笔记之配置中心Config
- SpringCloud Config Server使用SVN Hooks实现动态刷新配置
- SpringCloud Config-----2、配置中心集群
- 通过cxf来写webService客户端
- Java集合框架目录
- ZooKeeper和CAP理论及一致性原则
- Node.js基础代码示例,带注释
- android M fingerprint 解析
- springcloud实战之14动态刷新分布式配置中心属性配置(config)
- 我的博客
- MongoDB 分片的原理、搭建、应用(九)
- C语言中操作符的总结
- leetcode 652. Find Duplicate Subtrees Map记录 + 深度优先遍历DFS
- is too old(format 29) to work with client version '1.8.13(r1667537)'(expects format 31). you need to
- MVC几种找不到资源的问题解决办法
- Spring(四)---高级装配(2)
- 通过程序设计几何图形(Shape)、矩形(Rectangle)、圆形(Circle)、正方形(Square)几种类型, 能够利用接口和多态性计算几何图形的面积和周长并显示