跨多个服务器更新 Spring Bean 属性

Update Spring Bean Property Across Multiple Servers

这是我的场景:我有一个名为 APIBeanSpring Bean,它充当API 远程 REST 服务的客户端。这个 Bean 包含一个名为 hostName 的 属性,它是远程服务器的 IP 地址。当 APIBean 客户端进行 REST 调用时,它用作基本 URI。这个 hostName 属性 的初始值是从 application.properties.

中提取的

我面临的挑战是 hostName 属性 可能会发生变化。我有一个 Web 表单,其中用户将在其地址更改时更新 hostName 属性。这在单实例环境中非常简单,但我的应用程序分布在 AWS 中并位于 Elastic Load Balancer 后面。

那么我应该如何将此更改应用到此 Spring Boot 应用程序的所有其他实例?

我看过 Spring Cloud Config,它将 application.properties 外部化到一个集中的 Git 存储库。它甚至包括一个 /refresh 端点,您可以使用 POST 请求来更新用 RefreshScope 注释的 Beans。但此端点仅刷新您正在访问的单个实例。它不影响任何其他分布式实例。

这些框架很棒,我觉得解决方案很接近,但我在最后一英里需要一点帮助。这一定是分布式应用程序的常见开发问题。我们如何跨多个服务器更新 Spring Bean 属性?

我认为您正在寻找 Spring 云总线:https://github.com/spring-cloud/spring-cloud-bus