首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

FF4J简介及入门

FF4J

什么是FF4J

ff4j是一款开源的实现特性功能切换的框架。简单来说通过aop和各种配置,去替代用硬代码if…else

简单入门

ff4j.xml

ff4j提供多种持久化方式(jdbc、redis、mongodb等)

Usage

核心组件

Feature

Feature,顾名思义,就是特性,通过唯一标识来代表一个特性

FeatureStore

同理,特征持久化抽象(内存、jdbc、redis等)

Property

属性,特性的属性

PropertyStore

属性持久化

Cache

如果持久化方式为jdbc等(数据在磁盘),可以考虑将Feature、Property等缓存到内存, 具体可参考FF4JCacheManager

Security

老生常谈,认证和授权。可以用于线上做灰度,新特性功能只有灰度用户可以体验

FF4J集成了springSecurity和ApacheShiro

Flipping Strategy

FlippingStrategy的evaluate方法判断是否放开特性。自定义的strategy可以extends AbstractFlipStrategy

自实现

最常见的就是ReleaseDateFlipStrategy. 先开发验证好“国庆活动”等国庆当天再生效

Group

分组,将特性打包分组,把多个开关合成一个开关

存储形式

前面提到了FF4J提供了很多持久化方式,包括内存、jdbc等

内存

默认的方式,以xml作为存储介质,然后解析xml将Feature等加载到内存。

该方式会在应用重启后复原,即之前做的改动都不存在了,会重新读xml到内存

JDBC

主要是基于RDBMS,FF4J内置了JdbcFeatureStore、JdbcPropertyStore等,同时

提供了基于关系型数据库的DDL脚本

DDL脚本

简单使用

jdbc

spring-jdbc

Redis

非关系型的KV数据库, 内置了FeatureStoreRedis、PropertyStoreRedis等,相当于

将feature、property之类的存储在Redis

redis连接

ff4j curd

存储形式

其他相关

参考:https://github.com/ff4j/ff4j/wiki

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181031G1DPKX00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券