(一)微服务保护——Sentinel

微服务保护——Sentinel

一、雪崩问题及解决方案

(一) 什么是雪崩

微服务调用链路中的某个服务故障,引起整个链路中的所有微服务都不可用,这就是雪崩。服务D故障引起服务A故障,服务A引起其他服务故障,渐渐导致所有微服务都不可用。有人说,服务A在向服务D发送请求的时候,设置连接超时不就可以了吗?要知道,在高并发的情况下,设置连接超时是不可取的,所以还是会导致雪崩现象。
在这里插入图片描述

(二)解决雪崩问题:

1、超时处理:

设定超时时间,请求超过一定时间没有响应就返回错误信息,不会无休止地等待。
但是这种解决方案只是缓解了雪崩问题,并不能解决雪崩问题。因为请求的超时时间设置为1s,也就是说每秒释放一个请求,但在高并发的情况下,假设每秒请求是2个,那么在一定的时间内,也会导致服务A不可用,最终导致雪崩问题的出现。所以说这种解决方案只是缓解雪崩问题。
在这里插入图片描述

2、舱壁模式:

限定每个业务能使用的线程数,避免耗尽整个tomcat的资源,因此也叫线程隔离。它是通过划分tomcat的资源,划分tomcat的线程,让每个业务最多使用n个线程,进而提高tomcat的容灾能力。但是这种模式会导致一定的资源浪费,比如,服务C已经宕机,但每次还是会尝试让服务A去向服务C发送请求。
在这里插入图片描述

3、熔断降级:

有断路器统计业务执行的异常比例,如果超出阈值则会熔断该业务,拦截访问该业务的一切请求。
请求失败占比达到阈值后,这个时候会出现熔断,此后服务A向服务D不能发送请求,请求直接在服务A给拦截。
在这里插入图片描述

4、流量控制:

限制业务访问的QPS,避免服务因为流量的突增而故障。这种是从预防层面来解决雪崩问题。Sentinel可以根据服务所能接收的访问频率,向服务发送请求,避免服务出现故障,就不会出现故障转移,也就避免了雪崩问题。也就是将大量的请求一点点的发送给服务,从而预防了雪崩问题。
在这里插入图片描述在这里插入图片描述

二、服务保护技术对比

在这里插入图片描述

三、Sentinel介绍和安装

(一)初始Sentinel

Sentinel是阿里巴巴开源的一款微服务流量控制组件。官网地址:https://sentinelguard.io/zh-cn/index.html

(二)安装Sentinel控制台

1、下载

sentinel官方提供了UI控制台,方便我们对系统做限流设置。大家可以在GitHub下载。

2、运行

将jar包放到任意非中文目录,执行命令:

java -jar sentinel-dashboard-1.8.1.jar

在这里插入图片描述

四、微服务整合Sentinel

1、在微服务中引入Sentinel依赖:

<dependency>
    	 <groupId>com.alibaba.cloud</groupId>
         <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
 </dependency>

2、配置控制台地址:

spring:
  cloud:
    sentinel:
       transport:    
           dashboard:localhost:8080

3、访问微服务的任意端点,触发Sentinel监控

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值