ff4j 和 togglz 的性能比较
Performance comparaison betwen ff4j and togglz
我们正在做一个项目,我们想使用一些切换功能工具,如 ff4j 或 togglz,但我们对性能有真正的限制,我的意思是我们真的需要一个执行时间更短的工具,我我检查了一点 ff4j 和 togglz,但我不知道什么最适合这个解决方案,或者如果你知道一些其他工具可能是。
项目上下文:它是一个 netflix 微服务架构,所以我们有 eureka、ribbon、zuul 和微服务。
否则,如果您有其他解决方案,可能是开发一个 sidecar,请给我一些想法。
提前谢谢你:)
免责声明:我创建了 FF4j,因此我不会就性能比较给您答案。我会提供架构设计原则。
微服务意味着分布式架构,因此您必须将功能的状态存储在通用持久性存储 (DB) 中。
功能切换框架的 成本 不会是评估功能状态谓词(这是一个简单的条件)的时间,而是 的时间从持久性存储访问数据。
FF4j同时支持REDIS和CONSUL:
- Redis 似乎是一个很好的候选者,因为 put/get 和分发速度非常快。
- Consul 在分布式微服务中也是一个好主意:它提供了一个键值存储。
- Eureka 可能也是这样,我不知道,ff4j 还没有商店。
如果您必须将功能存储在较慢的数据库中,例如 SQL-Like,那么您可以考虑使用缓存。 FF4j 提供了一些 cacheProxy
来处理此类用例。
其他注意事项:
- 仅将管理控制台放在后端应用程序中,而不是每个微服务中(安全性 + 性能开销)
- 功能切换可以通过配置管理和监控做更多事情。
你可能想看看这个15min talk exactly on that subject. LIVE DEMO starting at 7:10
和 related github repository 示例 Spring-Cloud
我们正在做一个项目,我们想使用一些切换功能工具,如 ff4j 或 togglz,但我们对性能有真正的限制,我的意思是我们真的需要一个执行时间更短的工具,我我检查了一点 ff4j 和 togglz,但我不知道什么最适合这个解决方案,或者如果你知道一些其他工具可能是。
项目上下文:它是一个 netflix 微服务架构,所以我们有 eureka、ribbon、zuul 和微服务。
否则,如果您有其他解决方案,可能是开发一个 sidecar,请给我一些想法。
提前谢谢你:)
免责声明:我创建了 FF4j,因此我不会就性能比较给您答案。我会提供架构设计原则。
微服务意味着分布式架构,因此您必须将功能的状态存储在通用持久性存储 (DB) 中。
功能切换框架的 成本 不会是评估功能状态谓词(这是一个简单的条件)的时间,而是 的时间从持久性存储访问数据。
FF4j同时支持REDIS和CONSUL:
- Redis 似乎是一个很好的候选者,因为 put/get 和分发速度非常快。
- Consul 在分布式微服务中也是一个好主意:它提供了一个键值存储。
- Eureka 可能也是这样,我不知道,ff4j 还没有商店。
如果您必须将功能存储在较慢的数据库中,例如 SQL-Like,那么您可以考虑使用缓存。 FF4j 提供了一些 cacheProxy
来处理此类用例。
其他注意事项:
- 仅将管理控制台放在后端应用程序中,而不是每个微服务中(安全性 + 性能开销)
- 功能切换可以通过配置管理和监控做更多事情。
你可能想看看这个15min talk exactly on that subject. LIVE DEMO starting at 7:10
和 related github repository 示例 Spring-Cloud