spring cloud - config 属性自动刷新
启动config-server,启动成功后就不需要在管了;
在config-client做些修改:
在使用的controller或service的类上加上一个注解@RefreshScope
在pom中加入依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
至此,准备工作完毕
接下来修改配置文件中的属性值,
无需重启congif-server,他会自动更新值;
接下来调用config-client的refresh方法,
curl -X POST http://127.0.0.1:9020/refresh
在config-client控制台会有日志刷新,大意思是重新连接config-server,刷新取值;接下来就可以验证结果,期间无需重启服务;
{
"timestamp": 1545295648687,
"status": 401,
"error": "Unauthorized",
"message": "Full authentication is required to access this resource",
"path": "/refresh"
}
需要加上配置:
management.security.enabled: false
方法调用成功后,会返回修改的记录
此方法不需要重启应用服务,可以实现配置的手动刷新,
倘若,一个服务有多个节点,此方法必须要依次刷新服务。
配置的批量刷新
借助MQ可以实现一次方法调用,实现整个服务的配置刷新
首先安装或使用已经有的rabbitmq,
安装rabbitmq:https://www.cnblogs.com/chenglc/p/10154444.html
在应用服务的配置中加上rabbitmq的配置:
spring:
rabbitmq:
host: localhost
port: 5672
username: guest
password: guest
还需要加入依赖:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bus-amqp</artifactId>
</dependency>
启动项目后,控制台的日志输出会有这样一行:
2018-12-21 16:05:26.747 INFO 11377 --- [ main] o.s.b.a.e.mvc.EndpointHandlerMapping : Mapped "{[/bus/refresh],methods=[POST]}" onto public void org.springframework.cloud.bus.endpoint.RefreshBusEndpoint.refresh(java.lang.String)
就是调用此方法:
127.0.0.1:9020/bus/refresh
就可以实现一次性刷新整个服务;
建议:在config-server中加入一样的配置,每次更新配置文件后,让config-server来担任通知方
存在的问题:如果调用127.0.0.1:9020/bus/refresh,此地址来刷新服务,则127.0.0.2:9020,节点也不会做通知,不会更新服务的配置信息
到此,实现了配置的半自动更新;
配置的全自动更新
要做到配置信息的自动更新,只差一步,那就是修改配置文件后,自动调用刷新方法
这只需要在github、gitlab或码云上做配置即可:
以码云为例:
到此就可以实现,配置的自动刷新
spring cloud - config 属性自动刷新的更多相关文章
- spring cloud config 属性加解密
首先需要(Java Cryptography Extension (JCE))的支持,下载路径: https://www.oracle.com/technetwork/java/javase/down ...
- .NET Core微服务之基于Steeltoe使用Spring Cloud Config统一管理配置
Tip: 此篇已加入.NET Core微服务基础系列文章索引 => Steeltoe目录快速导航: 1. 基于Steeltoe使用Spring Cloud Eureka 2. 基于Steelt ...
- 【SpringCloud构建微服务系列】使用Spring Cloud Config统一管理服务配置
一.为什么要统一管理微服务配置 对于传统的单体应用而言,常使用配置文件来管理所有配置,比如SpringBoot的application.yml文件,但是在微服务架构中全部手动修改的话很麻烦而且不易维护 ...
- 9.Spring Cloud Config统一管理微服务配置
Spring Cloud Config统一管理微服务配置 9.1. 为什么要统一管理微服务配置 9.2. Spring Cloud Config简介 Spring Cloud Config为分布式系统 ...
- springboot+cloud 学习(五)统一配置中心 spring cloud config + cloud bus + WebHooks +RibbitMQ
前言 微服务要实现集中管理微服务配置.不同环境不同配置.运行期间也可动态调整.配置修改后可以自动更新的需求,Spring Cloud Config同时满足了以上要求.Spring Cloud Conf ...
- Spring Cloud Config 实现配置中心,看这一篇就够了
Spring Cloud Config 是 Spring Cloud 家族中最早的配置中心,虽然后来又发布了 Consul 可以代替配置中心功能,但是 Config 依然适用于 Spring Clou ...
- Spring Cloud Config 自动刷新所有节点
全局刷新 详细参考:<Sprin Cloud 与 Docker 微服务架构实战>p160-9.9.2节 1.使用Spring Cloud Config 客户端时,可以使用 /refresh ...
- 通过总线机制实现自动刷新客户端配置(Consul,Spring Cloud Config,Spring Cloud Bus)
通过总线机制实现自动刷新客户端配置 方案示意图 利用Git服务的webhook通知功能,在每次更新配置之后,Git服务器会用POST方式调用配置中心的/actuator/bus-refresh接口,配 ...
- Spring Cloud Config 自动刷新所有节点 架构改造
详细参考:<Sprin Cloud 与 Docker 微服务架构实战>p162-9.9.4节 要做的改动是: 1.在spring cloud config server 服务端加入 spr ...
随机推荐
- spring之Annotation
spring除了提供了@Autowired,还提供了以下几类annotation. 1.@Component, @Repository, @Service, @Controller @Reposito ...
- 如何将一个int转换成cstring
如:int a = 5;CString b;b.Format("%d",a);补充:如果a是double,或a是float的就是:b.Format("%f",a ...
- Goldbach
Description: Goldbach's conjecture is one of the oldest and best-known unsolved problems in number t ...
- ⑨要写信(codevs 1697)
题目描述 Description 琪露诺(冰之妖精)有操控冷气的能力.能瞬间冻结小东西,比普通的妖精更危险.一直在释放冷气的她周围总是非常寒冷. 由于以下三点原因…… 琪露诺的符卡 冰符“Icicle ...
- Android Studio升级到3.0,抛出Aapt2Exception异常
android studiao错误: Android resource linking failedOutput: D:\_ASWorkSpace\phone_new\app\src\main\res ...
- 转载 cc、gcc、g++、CC的区别概括
gcc是C编译器:g++是C++编译器:linux下cc一般是一个符号连接,指向gcc:gcc和g++都是GUN(组织)的编译器.而CC则一般是makefile里面的一个名字,即宏定义,嘿,因为Lin ...
- hdu3491最小割转最大流+拆点
题意:求最小割,即求最大流即可.此题之关键为拆点(限制在点),每条边都是双向边,注意一下. 未1A原因:在拆点之后添加边的过程中,要注意,出去的是i`,进来的是i,!!所以,写addegde函数时候 ...
- AC日记——A+B Problem(再升级) 洛谷 P1832
题目背景 ·题目名称是吸引你点进来的 ·实际上该题还是很水的 题目描述 ·1+1=? 显然是2 ·a+b=? 1001回看不谢 ·哥德巴赫猜想 似乎已呈泛滥趋势 ·以上纯属个人吐槽 ·给定一个正整数n ...
- luogu P2085 最小函数值
题目描述 有n个函数,分别为F1,F2,...,Fn.定义Fi(x)=Ai*x^2+Bi*x+Ci (x∈N*).给定这些Ai.Bi和Ci,请求出所有函数的所有函数值中最小的m个(如有重复的要输出多个 ...
- 纯Java实现定时任务(转)
第一种: import java.util.Timer; import java.util.TimerTask; /** * * 于第一种方式相比,优势 1>当启动和去取消任务时可以控制 2&g ...