启动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或码云上做配置即可:

以码云为例:

到此就可以实现,配置的自动刷新

最新文章

  1. Django 1.10 中文文档------3.2.2 查询操作making queries
  2. ubuntu 常见问题
  3. TCP服务器连接相关知识点
  4. wait、notify、notifyAll的阻塞和恢复
  5. 使用cnpm搭建企业内部私有NPM仓库
  6. ecshop检验邮件是否合法
  7. The app icon set named &quot;AppIcon&quot; did not have any applicable content.
  8. Jquery 学习插件第一天
  9. 你需要知道的九大排序算法【Python实现】之冒泡排序
  10. how tomcat works 读书笔记 十一 StandWrapper 上
  11. java 易错选择题 编辑中
  12. Hadoop 操作常见问题解决
  13. centos7mini静默安装oracle11gr2
  14. python爬虫中scrapy框架是否安装成功及简单创建
  15. ubuntu16.04中如何启用floodlight的其中一种方式
  16. CSS ——padding
  17. JB的IDE可视化MongoDB、MySQL数据库信息
  18. LCD调试
  19. [linux] tcpdump抓包案例
  20. shelve 模块

热门文章

  1. 如何快速下载maven依赖jar包
  2. N*N数码问题
  3. poj 2115 二元一次不定方程
  4. CSS参数介绍
  5. PHP 之命名空间
  6. 搭建Redis环境以及所遇问题(CentOS7+Redis 3.2.8)
  7. webStorm汉化
  8. TOJ 4105
  9. nodejs启动前端项目步骤
  10. mysql 隔离级别与间隙锁等