授权规则可以对调用方的来源做控制,有白名单和黑名单两种方式
- 白名单:来源在白名单内的调用者允许访问
- 黑名单:来源在黑名单内的调用者不允许访问
可以解决绕过网关直接访问微服务的问题
授权方法
- 实现RequestOriginParser接口,自定义处理逻辑
1 |
|
- 在gateway服务中,利用过滤器添加指定请求头
1 | spring: |
- 在sentinel中添加约定好的授权规则
自定义异常
实现BlockExceptionHandler接口
BlockException包含多个子类:
异常 | 说明 |
---|---|
FlowException | 限流异常 |
ParamFlowException | 热点参数限流的异常 |
DegradeException | 降级异常 |
AuthorityException | 授权规则异常 |
SystemBlockException | 系统规则异常 |
规则持久化
规则管理模式
- 原始模式:默认模式,将规则保存在内存,重启服务丢失
- pull模式:控制台将配置的规则推送给Sentinel客户端,客户端会保存到本地文件或数据库中。之后定时轮询更新
- push模式:控制台将配置规则推送到远程配置中心,例如Nacos。Sentinel客户端监听Nacos,获取配置变更的推送消息,完成本地更新