使用 Spring Config Service 时刷新 Zuul 配置



我们部署了一个 Zuul 代理(用 Spring Cloud/Boot 包装),它从 Spring 配置服务器获取配置。每次我在路由中进行更改时,我都会重新启动 Zuul 应用程序,我想知道是否可以采取更好的方法(例如刷新 Zuul 配置信息)?:)

谢谢

您可以通过 rest 发出刷新命令:

curl -X POST http://<host>:<port>/refresh

我编写了一个简单的 bash 脚本,将所有更改提交到 Git 存储库中的配置文件,然后向我的所有服务发出 curl 请求。

如果你想花哨,你可以编写一个脚本,首先查询你的Eureka服务器,获取所有服务的列表,然后刷新它们:)

Zuul路由

可以在Git后端配置时动态刷新,例如,前面是Spring Cloud配置服务器和Spring Cloud Bus

我在最近的一篇博客文章中介绍了这种情况 使用 Spring Cloud Zuul 服务器路由请求和动态刷新路由

对于 #1,Spring 云配置引入了@RefreshScope注释,它将公开/refresh 端点(通过 HTTP 或 JMX)

对于 #2,在 '/refresh' 之后,Spring 云配置会接受最新的 git 提交,对于配置更改,本质上有两种方式,1) 拉取更改 2) 推送更改,Spring 云总线方式是基于 rabbitmq 推送配置更改。

查看此文章

这也

许多存储库(如 github)都能够配置 Webhook POST 端点。

除了前面提到的手动执行对/refresh 端点的请求的方式之外,您还可以将 github 配置存储库配置为使用/request 端点作为 webhook 端点。这样,您可以在推送时自动刷新属性。

最新更新