Refresh
依赖(父 pom 已经添加过)
1 | <dependency> |
对需要刷新的类加上注解@RefreshScope
1 |
|
client 端配置,将端口暴露
1 | management: |
Server 端配置,将端口暴露
1 | management: |
测试
启动 server 与 client,修改 git 上的 dev 配置属性,通过 post 请求的方式更新配置文件:
再次访问 http://localhost:8771/testConfig
就可以得到最新的配置结果。
Webhook
原理
WebHook 是当某个事件发生时,通过发送 http post 请求的方式来通知信息接收方。Webhook 来监测你在 Github.com 上的各种事件,最常见的莫过于 push 事件。如果你设置了一个监测 push 事件的 Webhook,那么每当你的这个项目有了任何提交,这个 Webhook 都会被触发,这时 Github 就会发送一个 HTTP POST 请求到你配置好的地址。
配置
如此一来,你就可以通过这种方式去自动完成一些重复性工作,比如,你可以用 Webhook 来自动触发一些持续集成(CI)工具的运作,比如 Travis CI;又或者是通过 Webhook 去部署你的线上服务器。下图就是 github 上面的 webhook 配置。
- Payload URL :触发后回调的 URL
- Content type :数据格式,两种一般使用 json
- Secret :用作给 POST 的 body 加密的字符串。采用 HMAC 算法
- events :触发的事件列表。
总结
如果项目少配置少的情况可以通过/refresh 来手动刷新配置,可以利用 Webhook 的机制每次提交代码发送请求来刷新客户端,当客户端越来越多的时候,需要每个客户端都执行一遍;如果项目比较复杂的情况呢这种肯定是行不通的,Spring Cloud Bus 消息总线可以解决配置修改的真正的动态刷新。详见springcloud实战之Config(4)