• Sentinel 授权规则 (AuthorityRule)


    Sentinel 是面向分布式、多语言异构化服务架构的流量治理组件,主要以流量为切入点,从流量路由、流量控制、流量整形、熔断降级、系统自适应过载保护、热点流量防护等多个维度来帮助开发者保障微服务的稳定性。

    Springboot+Dubbo+Nacos 集成 Sentinel(入门)-CSDN博客

    1.授权规则介绍

    授权规则,即黑白名单规则(AuthorityRule)。很多时候,我们需要根据调用方来限制资源是否通过,这时候可以使用 Sentinel 的访问控制(黑白名单)的功能。黑白名单根据资源的请求来源(origin)限制资源是否通过,若配置白名单则只有请求来源位于白名单内时才可通过;若配置黑名单则请求来源位于黑名单时不通过,其余的请求通过。

     流量控制规则 (AuthorityRule)主要属性如下:

    Field说明默认值
    resource资源名,即限流规则的作用对象
    limitApp对应的黑名单/白名单,不同 origin 用 , 分隔,如 appA,appB
    strategy限制模式,AUTHORITY_WHITE 为白名单模式,AUTHORITY_BLACK 为黑名单模式默认为白名单模式

    2.资源名称

    资源名,即限流规则的作用对象(可以是代码中指定名称或者指定路由)。

    3.流控应用

    对应的黑名单/白名单,不同 origin 用 , 分隔,如 appA,appB。

    4.授权类型

    限制模式,AUTHORITY_WHITE 为白名单模式,AUTHORITY_BLACK 为黑名单模式。

    5.客户端添加来源解析器 

    不会以为完成上面配置就OK了吧?

    NO NO NO! 还要在客户端添加来源解析器哈。

    1. @Component
    2. public class MyRequestOriginParser implements RequestOriginParser {
    3. @Override
    4. public String parseOrigin(HttpServletRequest request) {
    5. String origin = request.getHeader("origin");
    6. return StringUtils.isEmpty(origin) ? "xxxx" : origin;
    7. }
    8. }

    特别注意:origin获取为空时要么直接报错(强权没问题),或者给默认值如上"xxxx"。否则授权失效【1.8.1版本亲测】。
     


    6.规则持久化

    Sentinel 规则持久化-CSDN博客

    持久化Json数据格式

    1. [
    2. {
    3. "resource": "u-getUserInfo",
    4. "limitApp": "order",
    5. "strategy": 0
    6. }
    7. ]
    1. spring:
    2. application:
    3. name: user
    4. cloud:
    5. nacos:
    6. config:
    7. server-addr: 127.0.0.1:8848
    8. prefix: dubbo-user-api
    9. file-extension: yml
    10. sentinel:
    11. transport:
    12. dashboard: 127.0.0.1:6780
    13. eager: true # 取消懒加载
    14. datasource:
    15. ds-user-authority-rule:
    16. nacos:
    17. server-addr: 127.0.0.1:8848
    18. dataId: user-authority-rule
    19. groupId: user-sentinel
    20. namespace: sentinel
    21. rule-type: AUTHORITY # AUTHORITY(授权规则) DEGRADE(熔断规则) FLOW(流控规则) GW_API_GROUP GW_FLOW PARAM_FLOW(热点规则) SYSTEM(系统规则)

  • 相关阅读:
    RK3588开发笔记(二):基于方案商提供sdk搭建引入mpp和sdk的宿主机交叉编译Qt5.12.10环境
    【带头学C++】----- 三、指针章 ---- 3.8二维数组与数组指针的关系(二,补充)
    【方向盘】Java EE几十种技术,“活着的”还剩几何(Web应用技术篇)
    Docker 容器上部署 Zabbix
    asp.net6 blazor 文件上传
    UDP主要丢包原因及具体问题分析
    日志最佳实践
    Postman:完整指南
    达梦数据库答案
    深度学习 --- stanford cs231学习笔记七(训练神经网络之梯度下降优化器)
  • 原文地址:https://blog.csdn.net/qq_34253002/article/details/134422419