springcloud系列30——Spring Cloud Config配置属性自动刷新
前言
在前面一节中,我们通过执行/refresh端点来手动刷新配置,但是如果微服务的数量太多,一个一个刷新就很麻烦也很慢。本节介绍使用Spring Cloud Bus实现批量刷新和自动刷新。
使用Spring Cloud Bus实现配置批量刷新
Spring Cloud Bus依赖rabbitmq或kafka,这里我们使用rabbitmq。
1.rabbitmq的安装与使用
进入rabbitmq的下载页面下载安装包(这里使用windows),下载地址为:http://www.rabbitmq.com/download.html
在下载页面的右侧有各个系统的安装方法。
windows的地址为:http://www.rabbitmq.com/install-windows.html
rabbitmq依赖Erlang,所以在安装rabbitmq之前需要安装Erlang。
在http://www.rabbitmq.com/which-erlang.html这个页面给出了每个rabbitmq应该安装的Erlang版本。
我们下载的是3.7.7的版本,推荐的Erlang版本是21.0.x 。
erlang的下载地址为:http://erlang.org/download/
csdn下载地址:https://download.csdn.net/download/qq_24118265/10186110
下载完毕后,就依次安装Erlang和rabbitmq即可。
安装完毕后,可以看到rabbitmq已经作为服务启动了。
2.开启RabbitMQ网页端控制台
1.设置ERLANG_HOME环境变量;
2.到 r a b b i t m q h o m e / s b i n rabbitmq_home/sbin rabbitmqhome/sbin执行:
rabbitmq-plugins.bat enable rabbitmq_management
如图:
3.重新开启rabbitmq服务。
4.浏览器访问http://localhost:15672,用户名和密码默认都是guest。
3.Cloud Config Client修改
增加spring-cloud-starter-bus-amqp依赖;
<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-bus-amqp</artifactId> </dependency>
增加rabbitmq配置
spring:rabbitmq:host: localhostport: 5672username: guestpassword: guest
如此就大功告成了!
下面进行测试。
启动Config Server和2个Cloud Client(为了测试批量刷新配置)。
在Cloud Client启动时,控制台可以看到有一个端点/bus/refresh,我们用它可以批量刷新配置。
我们将git仓库配置文件的一个配置项做修改:
my.custom.message=Hello,This is new value!!!
我们使用curl执行刷新命令:
curl -X POST http://localhost:8080/bus/refresh
然后访问Cloud Config Client,看看是否配置更新。
可以看到,2个Cloud Config Client应用配置都已经刷新!
观察2个Cloud Config Client,可以看到如下日志:
至此就实现了批量配置刷新。
我们到RabbitMQ的控制台的Exchanges,可以看到springCloudBus。
刷新某个Cloud Config Client
如果要刷新某个Cloud Config Client的配置,可以使用/bus/refresh?destination=customers:9000
。其中,customers:这里是ApplicationContext ID,9000是服务的端口。
但是,如果在BUS上已经有了这个ID,则会刷新这个ID的配置,其他的会被忽略。即如果在不同的机器上部署了同样的Cloud Config Client应用,ID一样,端口一样,IP不一样,则只会有一个服务配置属性会被刷新。
解决办法就是制定spring.application.index,不过这样就很麻烦了,每个同类的微服务(ID相同)都需要指定不同的index。不过可以指定spring.application.index=${random.long}来使用随机生成的数字作为index。不过,很明显似乎是一个设计缺陷,为什么不增加一个host参数?
刷新某个Cloud Config Client服务的所有实例
这个比较简单了,使用/bus/refresh?destination=customers:**
即可,customers指应用的id。
参考Spring Cloud Bus章节:http://cloud.spring.io/spring-cloud-static/Edgware.SR3/single/spring-cloud.html#_spring_cloud_bus
配置自动刷新
这个要借助于Git管理软件提供的WebHooks钩子,可以指定一个地址,在提交到Git仓库时自动触发请求这个地址。
比如gitee.com
上面的URL就指定为刷新地址,如http://localhost:8080/bus/refresh,密码随意了。
springcloud系列30——Spring Cloud Config配置属性自动刷新相关推荐
- Spring Cloud系列之Spring Cloud Config
认识Spring Cloud Config Spring Cloud Config是最早的配置中心,虽然后面的之秀Nacos可以取代它, 但是Spring Cloud Config还是很多公司在用,比 ...
- (七)Alian 的 Spring Cloud Config 配置中心(客户端)
目录 一.背景 二.maven依赖 三.配置文件 四.验证 一.背景 通过上一篇文章,我们已经搭建了配置中心了,接下里我们继续改造我们的订单服务了,之前我们的订单服务的数据库配置还是写在配置文件中 ...
- Spring Cloud Config 配置中心实践过程中,你需要了解这些细节!
本文导读: Spring Cloud Config 基本概念 Spring Cloud Config 客户端加载流程 Spring Cloud Config 基于消息总线配置 Spring Cloud ...
- (六)Alian 的 Spring Cloud Config 配置中心(服务端)
目录 一.简介 二.数据库 2.1.应用表 2.2.属性表 2.3.视图 2.4.初始化数据 三.配置 3.1.pom.xml 3.2.application.properties 3.3.主类 3. ...
- Spring Cloud Config 配置中心
1.构建config-server 创建一个pom.xml <?xml version="1.0" encoding="UTF-8"?> <p ...
- Spring Cloud Config配置服务
文章目录 前言 一.Spring Cloud Config Service 引入POM文件 启动配置服务 基于(Native)本地配置 配置类NativeEnvironmentProperties 解 ...
- spring cloud config配置中心源码分析之注解@EnableConfigServer
spring cloud config的主函数是ConfigServerApplication,其定义如下: @Configuration @EnableAutoConfiguration @Enab ...
- Spring Cloud Config 配置的加密解密
配置内容的加密解密 很多场景下很多场景下,对于某些敏感的配置内容,例如数据库账号密码等应当加密存储.Config Server为配置内容的加密与解密提供了支持. 安装JCE Config Server ...
- Spring Cloud Config配置中心的使用
一.概述 1. 为什么使用? 1> 配置文件太多,不方便维护 2> 配置文件一般都保存这各种明文显示的密码,无法保证配置内容的安全性,也无法做到按权限分配给个人 3> 更新配置项目需 ...
最新文章
- 通过RunLoop监听主线程的卡顿
- SCCM2012 R2实战系列之九:OSD(中)-- 捕获镜像
- 【SpringBoot集成ElasticSearch 01】2️⃣ 种方式的高级客户端 RestHighLevelClient 使用(依赖+配置+客户端API测试源码)
- tcp假连接_总结的23 个 TCP高频面试问题
- 使用.NET Core创建Windows服务(一) - 使用官方推荐方式
- 前端常用 JavaScript 方法封装
- Linux网络服务-Web Service之【apache的功能、安装、配置文件介绍以及实验实例】(三)...
- python3简单代码_python3实现简单汉诺塔的代码教程
- 西南大学计算机基础及数字电路907复习笔记
- PLSQL Developer安装破解 ,以及连接配置
- 惠普薄锐ENVY 15 X360升级DIY
- 【Pix4d精品教程】pix4d mapper相机未校准后手动添加连接点完美案例图文教程
- java 有哪些框架_Java常用框架有哪些?这些框架有什么用?
- 2018初中计算机考试知识点,2018计算机等级考试考点:考前学习的技巧
- Android Jason数据解析及显示
- 超越Yann LeCun:世界模型的学习和推理
- 高质量=高成本?优思学院告诉你并非必然!
- 介绍VO、DTO、PO、DO
- 经典谷歌面试题:高楼扔鸡蛋
- ASR项目实战-语音识别
热门文章
- 图像语义分割中的上采样(Upsampling)和下采样(subsampling)
- 马云四天三谈996被骂上热搜:抱歉,这届年轻人不好“骗”了!
- 新型“纳米镊子”可在无损活细胞条件下提取DNA链
- 进程控制块(PCB)
- Apache Fink 文件上传漏洞复现及利用
- path png转svg_canvg处理svg转png
- 芯片植入技术飞速发展 人类未来或变身
- 算法强化每日一题--组队竞赛
- osm地图数据 mysql_超实用! 如何下载OSM全球矢量地图数据?
- Ubuntu下查看IP地址