前言

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也跟着关闭了

 

参考

posted on 2022-07-05 10:56  Martin8866  阅读(2484)  评论(0编辑  收藏  举报