1

文档,当 spring 云配置服务器检测到配置更改时,它会触发RefreshRemoteApplicationEvent。但是文档没有说明该事件是如何处理的。那么每个收到此类事件的应用程序都应该自己处理它是真的吗?例如,当收到此类事件时,不需要刷新整个 Spring 上下文?

4

1 回答 1

2

我认为文档只讨论服务器端,即与 git 存储库对话并将压缩信息公开给感兴趣的客户端的 Spring 应用程序。在这个过程中,例如使用 webhook,服务器可以被告知 git 存储库中的更改,然后将事件发送到可能需要重新配置的应用程序。

您的问题似乎与客户端有关。如果您的应用程序使用 Spring Cloud Config,它应该在上述事件到达客户端时自动请求新的配置数据。这反过来应该意味着新的配置值可用或某些配置的行为(日志级别?)发生变化。

为了真正让服务器触发到达客户端的事件,文档建议使用 Spring Cloud Bus。如果您创建(例如)一个 RabbitMQ 实例,并使其对您的客户端和服务器都可用,Spring 会自动附加到该系统并能够处理消息。此外,Spring Cloud Config 服务器使用该系统自动发送所需的事件,客户端自动处理这些事件。

简而言之,如果您将 Spring Cloud Bus 添加到所有涉及的应用程序(并使其使用的系统,例如 RabbitMQ,对它们可用),一切都会按预期工作。

于 2016-08-17T13:21:26.077 回答