【问题标题】:Refresh of Zuul configuration when using Spring Config Service使用 Spring Config Service 时刷新 Zuul 配置
【发布时间】:2016-05-27 08:52:05
【问题描述】:

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

谢谢,

【问题讨论】:

标签: spring-cloud netflix-zuul


【解决方案1】:

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

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

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

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

【讨论】:

  • 如果你想要更漂亮,可以使用 Spring Cloud Bus 将EnvironmentChangeEvent 传播到我们所有连接的应用程序。
【解决方案2】:

Zuul 路由可以在Git 后端配置时动态刷新,例如Spring Cloud 配置服务器和Spring Cloud Bus

我在最近的一篇博文 Routing requests and dynamically refreshing routes using Spring Cloud Zuul Server 中介绍了这种情况

【讨论】:

    【解决方案3】:

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

    对于#2,在'/refresh'之后,spring cloud config会采用最新的git commit,对于config的改动,本质上有两种方式,1)拉取改动2)推送改动,spring cloud bus的方式是基于rabbitmq推送配置变更。

    Check out this article

    And this also

    【讨论】:

      【解决方案4】:

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

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

      【讨论】:

        猜你喜欢
        • 2019-03-20
        • 2017-01-08
        • 2018-12-08
        • 2023-03-11
        • 2018-01-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多