栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Sentinel 学习笔记

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Sentinel 学习笔记

Sentinel 分布式系统的流量防卫兵

Sentinel 介绍

Sentinel是⼀个⾯向云原⽣微服务的流量控制、熔断降级组件。 替代Hystrix,针对问题:服务雪崩、服务降级、服务熔断、服务限流

Sentinel 分为两个部分 : 核⼼库:( Java 客户端)不依赖任何框架 / 库,能够运⾏于所有 Java 运⾏时环境,同时对 Dubbo / Spring Cloud 等框架也有较好的⽀持。 控制台:( Dashboard )基于 Spring Boot 开发,打包后可以直接运⾏,不需要额外的 Tomcat 等应⽤容器。 Sentinel 具有以下特征: 丰富的应⽤场景: Sentinel 承接了阿⾥巴巴近 10 年的双⼗⼀⼤促流量的核⼼场景,例如秒杀(即突发流量控制在系统容量可以承受的范围)、消息削峰填⾕、集群流量控制、实时熔断下游不可⽤应⽤等。 完备的实时监控: Sentinel 同时提供实时的监控功能。您可以在控制台中看到接⼊应⽤的单台机器秒级数据,甚⾄ 500 台以下规模的集群的汇总运⾏情况。 ⼴泛的开源⽣态: Sentinel 提供开箱即⽤的与其它开源框架 / 库的整合模块,例如与 SpringCloud 、 Dubbo 的整合。您只需要引⼊相应的依赖并进⾏简单的配置即可快速地接⼊ Sentinel 。 完善的 SPI 扩展点: Sentinel 提供简单易⽤、完善的 SPI 扩展接⼝。您可以通过实现扩展接⼝来快速地定制逻辑。例如定制规则管理、适配动态数据源等。 Sentinel 的主要特性:

Sentinel 部署  下载地址: https://github.com/alibaba/Sentinel/releases 我们使⽤ v1.7.1 启动: java -jar sentinel-dashboard-1.7.1.jar & ⽤户名 / 密码: sentinel/sentinel

 

工程改造 pom.xml 引⼊依赖

 com.alibaba.cloud
 spring-cloud-starter-alibaba-sentinel
application.yml修改(配置sentinel dashboard)
spring:
  cloud:
    sentinel:
      transport:
        dashboard: 192.168.1.7:8080
        port: 8719
基于 Nacos 实现 Sentinel 规则持久化 pom.xml 中添加依赖

    com.alibaba.csp
    sentinel-datasource-nacos
application.yml 中配置 Nacos 数据源
spring:
  application:
    name: login-alibaba-server-gateway
  cloud:
    nacos:
      discovery:
        server-addr: 192.168.1.7:8848,192.168.1.7:8849,192.168.1.7:8850
        namespace: 821227e8-16a0-4cac-9920-421d8a531f54
      config:
        server-addr: 192.168.1.7:8848,192.168.1.7:8849,192.168.1.7:8850
        #锁定nacos server端的配置文件
        namespace: 821227e8-16a0-4cac-9920-421d8a531f54
        group: DEFAULT_GROUP
        prefix: login-alibaba-parent-gateway
        file-extension: yaml
        #多配置文件配置
        ext-config[0]:
           # 指定文件名
          data-id: login-alibaba-parent-black.yaml
          # 分组
          group: DEFAULT_GROUP
          #开启动态刷新
          refresh: true
    sentinel:
      transport:
        dashboard: 192.168.1.7:8080
        port: 8719
      datasource:
        flow:
          nacos:
            server-addr: ${spring.cloud.nacos.discovery.server-addr}
            namespace: ${spring.cloud.nacos.discovery.namespace}
            data-id: ${spring.application.name}-flow-rules
            groupId: DEFAULT_GROUP
            data-type: json
            rule-type: flow
        degrade:
          nacos:
            server-addr: ${spring.cloud.nacos.discovery.server-addr}
            namespace: ${spring.cloud.nacos.discovery.namespace}
            data-id: ${spring.application.name}-degrade-rules
            groupId: DEFAULT_GROUP
            data-type: json
            rule-type: degrade
Nacos Server 中添加对应规则配置集(可以指定命名空间) 流控规则配置集 lagou-service-autodeliver-flflow-rules
[
 {
 
 "resource":"findResumeOpenState",
 "limitApp":"default",
 "grade":1,
 "count":1,
 "strategy":0,
 "controlBehavior":0,
 "clusterMode":false
 }
]
resource :资源名称 limitApp :来源应⽤ grade :阈值类型 0 线程数 1 QPS count :单机阈值 strategy :流控模式, 0 直接 1 关联 2 链路 controlBehavior :流控效果, 0 快速失败 1 Warm Up 2 排队等待 clusterMode: true/false 是否集群 降级规则配置集 lagou-service-autodeliver-degrade-rules
[
 {
 
 "resource":"findResumeOpenState",
 "grade":2,
 "count":1,
 "timeWindow":5
 }
]
resource :资源名称 grade :降级策略 0 RT 1 异常⽐例 2 异常数 count:阈值 timeWindow :时间窗
注意 1 )⼀个资源可以同时有多个限流规则和降级规则,所以配置集中是⼀个 json 数组 2 ) Sentinel 控制台中修改规则,仅是内存中⽣效,不会修改 Nacos 中的配置值,重启后恢复原来的值; Nacos 控制台中修改规则,不仅内存中⽣效, Nacos中持久化规则也⽣效,重启后规则依然保持
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/298608.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号