我打算使用 Spring Boot 来完成我的任务。它是一个连接到数据库的典型服务器应用程序。我知道我可以使用Spring Configuration来外部化我的属性,例如数据库连接详细信息。但我还有其他需要在运行时更新的动态属性。例如鳍状肢/功能标志。我的应用程序的某些功能需要动态控制,例如想象一个像app.cool-feature.enable=true这样的属性,然后过一段时间,同样的功能会被app.cool-feature.enable=false关闭
任何建议在运行时摄取这种动态行为的最佳实践是什么?我可以想到以下选项来触发更改...
- 使用上述属性更改向服务器实例发送 JMS 消息
- 在服务器实例上调用公开的 API 端点,例如 POST http://myapp/admin/config/update { "config": { "app.cool-feature.enable": true } }
我知道我可以编写自己的自定义代码来实现这一点(这将是第三次),但只是想知道是否已经存在围绕动态属性配置的标准方式/常见做法,而我不知道。如果它可以与 Apache ZooKeeper、coreos etcd、Netflix curator 等其他解决方案一起使用并与 Spring 紧密集成,那就太好了。
想法?