文档says,当spring cloud配置服务器检测到配置chages时,它会触发RefreshRemoteApplicationEvent。但文档没有说明如何处理该事件。那么接收这样的事件的每个应用程序都应该自己处理吗?例如,当收到此类事件时刷新整个Spring上下文需要不吗?
答案 0 :(得分:2)
我认为文档只讨论服务器端,即与git存储库对话的Spring应用程序,并将压缩的信息公开给感兴趣的客户端。在此过程中,例如使用webhooks,可以向服务器通知git存储库中的更改,然后将事件发送到可能需要重新配置的应用程序。
您的问题似乎与客户方面有关。如果您的应用程序使用Spring Cloud Config,则应在上述事件到达客户端后立即自动请求新配置数据。这又意味着新配置值可用或某些已配置的行为(日志级别?)发生变化。
要实际让服务器触发到达客户端的事件,文档建议使用Spring Cloud Bus。如果您创建(例如)RabbitMQ实例,并使其可供客户端和服务器使用,则Spring会自动附加到此系统并能够处理消息。此外,Spring Cloud Config服务器使用此系统自动发送所需事件,客户端自动处理这些事件。
简而言之,如果您将Spring Cloud Bus添加到所有涉及的应用程序(并使其使用的系统,例如RabbitMQ,可供他们使用),一切都按预期工作。