Sentinel学习记录(大目视频 1-4章节)

1.雪崩效应

B服务发往A的请求,A服务挂了,那么这个请求就会强制等待,直到请求超时
java 程序中 一个请求往往代表一个线程,线程就会被强制阻塞,如果是高并发服务,阻塞的线程会越来越多,线程代表服务器的资源,比如:内存 CPU 这样B服务会慢慢被A拖垮,导致B服务也会挂掉 基础服务故障导致上层服务故障,并且不断放大,称之为雪崩效应。

2.探讨容错方案

2.1 超时

设置超时时间,比如设置一秒钟超时时间,不管请求是否成功,线程就会被释放。

2.2 限流

微服务被拖死的前提,这是一个高并发的应用系统,才可能有大量的线程阻塞。
如果经过评估,这个服务最大承载的QPS 是 1000 可以为该服务设置个800的QPS
如果达到这个阈值,后面的服务会被限流

2.3 仓壁模式

略 不同线程池

2.4 断路器模式

《断路器模式》 原文

例子:五秒以内的错误率,错误次数 达到阈值就不去调用其它API

2.5 总结服务容错思想

  • 超时(只要释放够快,不容易挂)
  • 限流(只吃一碗饭,给我三碗也只吃一碗)
  • 仓壁模式(不同线程池)
  • 断路器模式(监控+开关)

3.使用Sentinel 实现容错

3.1 Sentinel 是什么?

轻量级的流量控制,熔断降级Java库

3.2 整合Sentinel

// 添加依赖,版本根据自己情况
   <dependency>
            <groupId>com.alibaba.cloud</groupId>       
            <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>   
            <version>2.2.5.RELEASE</version>
  </dependency>

4. Sentinel 控制台

4.1 搭建Sentinel控制台

github地址 下载控制台jar包
在这里插入图片描述

// 启动 控制台
java -jar sentinel-dashboard-1.8.1.jar

// 访问 localhost:8080 账号 默认 :sentinel 密码 默认 :sentinel

4.2 整合应用&控制台

应用接入控制台,application.yml 文件修改如下:

server:
  port: 8081
spring:
  application:
    name: lxc-demo
  cloud:
    sentinel:
      transport:
        dashboard: localhost:8080
        port: 8719

ps: sentinel 是懒加载的,只有请求过才能加载出来

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值