
Linuxeden 开源社区 --
libwxfreq 是腾讯 2018 年开源的首个项目,这是一个采用多级 hash 作为底层存储模型的高性能通用频率控制组件。通过简洁的几个接口,既可以单机使用,也可以配合其他网络框架,轻松搭建一个通用的频率控制服务。
组件特性:
- 高度可配置:统计维度可配置、统计时长可配置、频率规则可配置
- 支持任意 key 类型
- 底层存储模型无锁化设计
配置文件
- 格式
appid 的元信息,指明 apppid 的统计时长。默认第一个统计时长是 60s,第二个统计时
时长是 3600s, 第三个是 86400s。可以手动修改任何一个统计时长为 [0, 86400]
[appid]
5 = 30, 60, 90 // appid 为 5 的统计时长分别是 30s 60s 90s
25 = 10, 60 // appid 为 25 的统计时长分别是 10s 60s 86400s
频率规则, 用于说明某个 appid 的阈值, 拦截等级等
[match_rule_name] // 规则名字,用户指明中了哪条规则
match_appid = 5 // 匹配的 appid
block_level = 1 // 拦截等级, 大于 0
rule_type = user // 规则对应的 key 类型
item = min_interval >= 4 // 具体的阈值表达式, 支持大于和等于
min_interval 表示第一个统计时长的统计值, mid_interval 表示第二个统计时长的统计值, max_interval 表示第三个统计时长的统计值.
- 例子
[appid] 100 = 30, 60, 90 [rule1] match_appid = 100 item = min_interval >= 10 block_level = 1 rule_type = user [rule2] match_appid = 100 item = mid_interval >= 15 block_level = 1 rule_type = user [rule3] match_appid = 100 item = max_interval >= 20 block_level = 1 rule_type = user [rule4] match_appid = 100 item = min_interval >= 100 block_level = 1 rule_type = ip [rule5] match_appid = 100 item = mid_interval >= 150 block_level = 1 rule_type = ip [rule6] match_appid = 100 item = max_interval >= 200 block_level = 1 rule_type = ip
转自 http://ift.tt/2EtllLL
The post 腾讯开源高性能通用频率控制组件 libwxfreq appeared first on Linuxeden开源社区.
http://ift.tt/2lEwssr
没有评论:
发表评论