我目前正在考虑使用 ff4j 为我们的应用程序实现功能切换。我们希望有一个远程中央配置应用程序,它将包含其中的所有功能,并且应用程序将通过 REST 与该中央配置应用程序通信以获取这些功能。我们将无法利用 Spring Cloud Config 或 Archaius 来实现此目的。
我浏览了文档,似乎支持 HttpClient ( https://github.com/ff4j/ff4j/wiki/Store-Technologies#httpclient )。但我找不到相同的样本。有人可以告诉我是否可以利用此方法从 REST 端点构建我的特征存储。另外,如果有人能给我提供一个示例,我将不胜感激。
最佳答案
这是一种常见的模式。
- 组件包含管理 UI(控制台)和 REST API。您可以将其称为“管理组件”。出于安全原因,它可能是唯一有权访问持久性单元的组件(可用的 15 个 DB 实现中的任何一个)
对于“管理组件”HERE是使用 JDBC DB 的独立 spring-bppt 应用程序的示例,并且 HERE您会发现一个简单的 Web 应用程序。
可以使用凭证用户/密码和/或 API key 来保护 REST API 的安全。更多信息HERE
所有微服务都作为客户端访问 REST API 并请求特征存储。您将需要保存客户端 http> 的依赖项
ff4j-webapi-jersey2x
或ff4j-webapi-jersey1x
然后您可以使用以下方式定义存储:FeatureStoreHttp storeHTT = new FeatureStoreHttp("http://localhost:9998/ff4j ");
警告:请考虑使用缓存来限制每次使用功能时访问 REST API 所带来的开销。有关缓存的更多信息 HERE
关于FF4J:REST 端点作为特征存储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51555453/