流量防卫兵sentinel

如果你不相信努力和时光,那么成果就会是第一个选择辜负你的。不要去否定你自己的过去,也不要用你的过去牵扯你现在的努力和对未来的展望。不是因为拥有希望你才去努力,而是去努力了,你才有可能看到希望的光芒。流量防卫兵sentinel,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

1. 基本概念

1.1. 官方文档

流量防卫兵sentinel

1.2. sentinel是什么

随着微服务的流行,服务和服务之间的稳定性变得越来越重要。Sentinel 是面向分布式服务架构的流量控制组件,主要以流量为切入点,从限流、流量整形、熔断降级、系统负载保护、热点防护等多个维度来帮助开发者保障微服务的稳定性。

1.3. sentinel的特性(了解)

1: 丰富的应用场景
    Sentinel 承接了阿里巴巴近 10 年的双十一大促流量的核心场景,例如秒杀(即突发流量控制在系统容量可以承    受的范围)、消息削峰填谷、集群流量控制、实时熔断下游不可用应用等。
    
2: 完备的实时监控
    Sentinel 同时提供实时的监控功能。您可以在控制台中看到接入应用的单台机器秒级数据,甚至 500 台以下规    模的集群的汇总运行情况 
    
3: 广泛的开源生态
    Sentinel 提供开箱即用的与其它开源框架/库的整合模块,例如与 Spring Cloud、Dubbo、gRPC 的整合。您只    需要引入相应的依赖并进行简单的配置即可快速地接入 Sentinel。
    
4: 完善的 SPI 扩展点
    Sentinel 提供简单易用、完善的 SPI 扩展接口。您可以通过实现扩展接口来快速地定制逻辑。例如定制规则管    理、适配动态数据源等。

流量防卫兵sentinel

1.4. sentinel的基本组成

核心库(Java 客户端):不依赖任何框架/库,能够运行于 Java 7 及以上的版本的运行时环境
                    可以结合springcloud一起使用 
                    
控制台(Dashboard):控制台主要负责管理推送规则、监控、集群限流分配管理等

2. 控制台安装

2.1. 控制台下载

流量防卫兵sentinel

2.2. 控制台运行

流量防卫兵sentinel

2.3. 访问登录

 

流量防卫兵sentinel

流量防卫兵sentinel

3. 案例学习流程

3.1. 环境搭建

3.1.1. 新建项目

 

流量防卫兵sentinel

3.1.2. 添加依赖

     <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
        </dependency>
    </dependencies>

3.1.3. 编写主配置类

流量防卫兵sentinel

3.1.4. 编写配置文件

流量防卫兵sentinel

3.1.5. 编写controller

流量防卫兵sentinel

3.1.6. 启动测试

流量防卫兵sentinel

 

3.1.7. 控制台查看

流量防卫兵sentinel

3.2. 控制台和代码对应关系

流量防卫兵sentinel

 

3.3. 控制台限流使用

3.3.1. QPS直接快速失败

  • controller添加方法

流量防卫兵sentinel

  • 访问测试

流量防卫兵sentinel

  • 流控规则

流量防卫兵sentinel

 

  • 测试

流量防卫兵sentinel

  • 3.3.2. 线程数直接失败

  • controller添加

 

流量防卫兵sentinel

 

  • 运行测试

 

流量防卫兵sentinel

 

 

  • 流控规则

    流量防卫兵sentinel

  • 测试

流量防卫兵sentinel

3.3.3. 关联失败

  • controller添加

 

流量防卫兵sentinel

  • 启动访问

流量防卫兵sentinel

 

 

  • 限流规则

流量防卫兵sentinel

  • 测试访问

 

流量防卫兵sentinel

 流量防卫兵sentinel

3.3.4. 链路失败

 

  • 添加service

​​​​​​​流量防卫兵sentinel

  • controller添加

​​​​​​​流量防卫兵sentinel

  • 启动测试

流量防卫兵sentinel

  • 控制台说明

​​​​​​​流量防卫兵sentinel

  • 流控规则

​​​​​​​流量防卫兵sentinel

  • 测试失败

流量防卫兵sentinel

​​​​​​​3.3.5. 链路失败解决方案

流量防卫兵sentinel

  • 解决方案

    • 修改版本(如果使用alibaba 2.1.0)

流量防卫兵sentinel

  • 排除低版本(如果使用alibaba 2.1.0)

流量防卫兵sentinel

  • 加入高版本(如果使用alibaba 2.1.0)

流量防卫兵sentinel

<dependency>
            <groupId>com.alibaba.csp</groupId>
            <artifactId>sentinel-web-servlet</artifactId>
            <version>1.7.2</version>
</dependency>
  • 添加配置
 @Bean
    public FilterRegistrationBean sentinelFilterRegistration() {
        FilterRegistrationBean registration = new FilterRegistrationBean();
        registration.setFilter(new CommonFilter());
        registration.addUrlPatterns("/*");
        // 入口资源关闭聚合
        registration.addInitParameter(CommonFilter.WEB_CONTEXT_UNIFY, "false");
        registration.setName("sentinelFilter");
        registration.setOrder(1);
        return registration;
    }
  • ​​​​​​​取消默认过滤器

流量防卫兵sentinel

  • 启动测试

流量防卫兵sentinel

  • 测试限流

​​​​​​​流量防卫兵sentinel

3.3.6. 冷启动

  • controller添加

流量防卫兵sentinel

  • 启动测试

流量防卫兵sentinel

  • 流控规则

流量防卫兵sentinel

  • 测试

流量防卫兵sentinel

  • 3.3.7. 排队等待

  • controller添加

流量防卫兵sentinel

  • 启动测试

流量防卫兵sentinel

  • 流控规则

流量防卫兵sentinel

  • 测试

流量防卫兵sentinel

3.4. 控制台降级使用

3.4.1. 设置和代码对照关系

流量防卫兵sentinel

3.4.2. 平均响应时间

  • controller添加

流量防卫兵sentinel

  • 启动访问

流量防卫兵sentinel

  • 降级规则

流量防卫兵sentinel

  • 测试

流量防卫兵sentinel

​​​​​​​3.4.3. 异常比例降级

  • controller

流量防卫兵sentinel

 

  • 启动访问

 

流量防卫兵sentinel

 

  • 降级规则

 

流量防卫兵sentinel

 

  • 测试

流量防卫兵sentinel

3.4.4. 异常数量降级

  • controller添加

 

流量防卫兵sentinel

  • 启动测试

 

流量防卫兵sentinel

  • 降级规则

 

流量防卫兵sentinel

 

  • 测试

 

流量防卫兵sentinel

 

3.5. 控制台热点限流

热点即经常访问的数据。很多时候我们希望统计某个热点数据中访问频次最高的数据,并对其访问进行限制。

3.5.1. 热点限流准备工作

  • controller编写

    流量防卫兵sentinel

  • 启动访问

​​​​​​​流量防卫兵sentinel

3.5.2. 第一种热点限流

  • 限流规则

 

流量防卫兵sentinel

  • 测试

 

流量防卫兵sentinel

3.5.3. 第二种热点限流

  • 限流规则

     

流量防卫兵sentinel

  • 测试

 

流量防卫兵sentinel

3.6. 限流降级后处理

3.6.1. URL限流处理

3.6.1.1. 问题搭建

  • controller添加

 

流量防卫兵sentinel

  • 运行测试

 

流量防卫兵sentinel

 

  • 添加规则

 

流量防卫兵sentinel

 

  • 测试

流量防卫兵sentinel

3.6.1.2. 解决方式一

  • 编写代码测试 

流量防卫兵sentinel​​​​​​​

  • 测试 

流量防卫兵sentinel​​​​​​​

3.6.1.3. 解决方式二

  • 添加配置

流量防卫兵sentinel

  • 测试

 流量防卫兵sentinel

3.6.1.4. 特殊的URL

  • controller添加

 

流量防卫兵sentinel

  • 控制台查看

 

流量防卫兵sentinel

  • URL清洗的方式

 

流量防卫兵sentinel

  • 控制台

流量防卫兵sentinel

3.6.2. Resource限流处理

3.6.2.1. 问题搭建

  • controller添加

 

流量防卫兵sentinel

  • 流控规则

 

流量防卫兵sentinel

  • 测试

​​​​​​​流量防卫兵sentinel

3.6.2.2. 解决方式一

流量防卫兵sentinel

3.6.2.3. 出异常的情况

流量防卫兵sentinel

3.6.2.4. 异常解决

流量防卫兵sentinel

3.6.2.5. 测试

流量防卫兵sentinel

 

 

 

 

 

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/192866.html

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!