• Sentinal


    前言

    Sentinel 是面向分布式服务架构的高可用微服务防护组件;

    Sentinal可以从超时处理、仓壁模式、断路器、限流几个维度来保护微服务架构稳定运行;

    一、服务雪崩

    在微服务架构中,服务间调用关系错综复杂,因为调用链中的1个服务故障,引起整个链路都无法访问的情况。

    二、服务雪崩解决方案

    解决雪崩问题的常见方式有4种;

    限流是对服务的保护,避免因瞬间高并发流量而导致服务故障,进而避免雪崩,是1种预防措施

    超时处理、线程隔离、降级熔断是在部分服务故障时,将故障控制在一定范围,避免雪崩,是1种补救措施

    1.超时处理

    超时处理:设定超时时间,请求超过一定时间没有响应就返回错误信息,不会无休止等待

    2.仓壁模式

    仓壁模式来源于船舱的设计:

    船舱都会被隔板分离为多个独立空间,当船体破损时,只会导致部分空间进入,将故障控制在一定范围内,避免整个船体都被淹没。

    于此类似,我们可以限定每个业务能使用的线程数,避免耗尽整个Tomcat的资源,因此也叫线程隔离。

     

    3.断路器

    由断路器统计业务执行的异常比例,如果超出阈值则会熔断该业务,拦截访问该业务的一切请求。

    断路器控制熔断和放行是通过3个状态来完成的

    • closed:关闭状态,断路器放行所有请求,并开始统计异常比例、慢请求比例。超过阈值则切换到open状态

    • open:打开状态,服务调用被熔断,访问被熔断服务的请求会被拒绝,快速失败,直接走降级逻辑。Open状态5秒后会进入half-open状态

    • half-open:半开状态,间隔一段时间放行1次请求,根据执行结果来判断接下来的操作。

      • 请求成功:则切换到closed状态

      • 请求失败:则切换到open状态 

    4.限流

    限制业务访问的QPS,避免服务因流量的突增而故障。

    三、Jmeter

    ApacheJMeter是Apache组织基于Java语言开发的压力测试工具,用于对软件做压力测试。

    Jmeter能够对HTTP、FTP、数据库(通过JDBC)服务器进行压力和性能测试

    1.安装Jmeter

    Jmeter依赖于JDK,所以必须确保当前计算机上已经安装了JDK,并且配置了环境变量。

    1.1.下载

    可以Apache Jmeter官网下载,地址:http://jmeter.apache.org/download_jmeter.cgi

    1.2.解压

    因为下载的是zip包,解压缩即可使用,目录结构如下:

     其中的bin目录就是执行的脚本,其中包含启动脚本:

    1.3.运行

    双击即可运行,但是有两点注意:

    • 启动速度比较慢,要耐心等待

    • 启动后黑窗口不能关闭,否则Jmeter也跟着关闭了

    参考

  • 相关阅读:
    正则表达式详解<一>
    multimap详讲
    map详讲<二>
    map详解<一>
    priority_queue详解
    容器适配器(一):queue
    用 input() 函数返回的数据是字符串类型
    学习python的基本了解
    学习oracle的SQL语句 练习
    oracle 练习题
  • 原文地址:https://www.cnblogs.com/sss4/p/16445583.html
Copyright © 2020-2023  润新知