• 首页
  • 关于我
  • Note
  • 联系
全部笔记
2022年5月1日 作者:Qu

Sentinel服务保护(一)入门

Sentinel服务保护(一)入门
2022年5月1日 作者:Qu

为什么需要服务保护:
雪崩问题:在微服务项目中.因为一个服务故障不可用,导致所有该服务的消费方大量的请求积压,tomcat不可用,导致整个服务调用链上的服务全部不可用的现象

雪崩问题

解决雪崩问题的策略:

1.设置超时时间:
当请求超过一定的时间没有响应就返回错误信息,不会让服务进入无休止等待状态(只能缓解雪崩问题,不能从根本意义上解决)

2.舱壁模式
像大型轮船的船舱一样,把每个业务进行分离,限制每个业务能使用的线程数,避免某个业务消耗掉整个tomcat的所有资源,因此也叫线程隔离(但是会有一定的性能浪费) 会通过类似于给每一个业务一个线程池/信号量这样的方案

舱壁模式,同样会有一定的性能浪费掉

3.熔断降级
由断路器统计业务的异常比例,如果超出阈值则会熔断业务,拦截访问该业务的一切请求,快速的将这个访问拒绝掉. 直到业务恢复才放行请求

熔断降级不会造成线程的浪费

4.流量控制
限制业务的访问QPS,将雪崩问题扼杀在摇篮,避免出现故障

直接从源头解决雪崩问题

使用Sentinel做服务保护的优点:

Sentinel的优点和特征

运行控制台:使用java -jar就可以轻易的将控制台运行起来,常见可以指定的参数有:端口号,用户名密码等
java -Dserver.port=8090 -jar sentinel-dashboard-1.8.1.jar

微服务整合Sentinel:
1.首选在微服务中增加Sentinel的依赖:


1
2
3
4
5
        <!--sentinel-->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
        </dependency>

2.在yml配置文件中填写sentinel的服务地址配置:


1
2
3
4
5
spring:
  cloud:
    sentinel:
      transport:
        dashboard: localhost:8090

3.访问任意一个微服务的端点,即可触发Sentinel的监控

簇点链路: 项目内部的调用链路,链路中被监控的每个接口就是一个资源,默认情况下Sentinel会监控SpringMVC中的每一个端点(Endpint),因此SpringMVC中的每一个端点就是调用链路中的一个资源

上一篇JWT下一篇 Sentinel服务保护(二)流控

声明:

本网站仅用于技术分享。

开放时间:24小时开放

 

陕ICP备20001727号-5