原文链接
黑白名单限流
黑白名单过滤是使用最为广泛的一种过滤规则,例如,用于实现接口安全的 IP 黑白名单规则过滤,用于防骚扰的短信、来电拦截黑白名单过滤。所以 Sentinel 中的黑白名单限流并不难理解,如果配置了黑名单,且请求来源存在黑名单中,则拦截(拒绝)请求,如果配置了白名单,且请求来源存在白名单中则放行。Sentinel 不支持一个黑白名单规则同时配置黑名单和白名单,因此不存优先级的问题。
黑白名单过滤功能更像是一种授权机制,它简单的将权限分为有权限和无权限两种情况,如果支持冲突,可使用优先级策略解决冲突问题。Sentinel 把黑白名作为授权策略,实现黑白名单限流即实现授权限流。Sentinel 在命名上也是使用 Authority,而非 BlackWhiteList。
一些关键类说明:
- AuthoritySlot:实现黑白名称授权功能的切入点(ProcessorSlot)
- AuthorityRule:授权规则类
- AuthorityRuleChecker:授权检测类