首页 > 其他分享 >1.初识Sentinel

1.初识Sentinel

时间:2022-11-12 22:47:01浏览次数:42  
标签:服务 请求 业务 访问 初识 线程 雪崩 Sentinel

1.雪崩问题及解决方案

1.1微服务中,服务间调用关系错综复杂,一个微服务往往依赖于多个其它微服务

如图,如果服务提供者D发生了故障,当前的应用的部分业务因为依赖于服务D,因此也会被阻塞。此时,其它不依赖于服务I的业务似乎不受影响。

1.2但是,依赖服务D的业务请求被阻塞,用户不会得到响应,则tomcat的这个线程不会释放,于是越来越多的用户请求到来,越来越多的线程会阻塞:服务器支持的线程和并发数有限,请求一直阻塞,会导致服务器资源耗尽,从而导致所有其它服务都不可用,那么当前服务也就不可用了

1.3那么,依赖于当前服务的其它服务随着时间的推移,最终也都会变的不可用,形成级联失败,雪崩就发生了:

2.解决雪崩问题的常见方式有四种:

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

2.2仓壁模式:限定每个业务能使用的线程数,避免耗尽整个tomcat的资源,因此也叫线程隔离。

2.3断路器模式:由断路器统计业务执行的异常比例,如果超出阈值则会熔断该业务,拦截访问该业务的一切请求。断路器会统计访问某个服务的请求数量,异常比例:当发现访问服务D的请求异常比例过高时,认为服务D有导致雪崩的风险,会拦截访问服务D的一切请求,形成熔断:

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

标签:服务,请求,业务,访问,初识,线程,雪崩,Sentinel
From: https://www.cnblogs.com/zhangdashuaige/p/16884907.html

相关文章

  • NoneBot笔记(一):初识Bot
    Windows开发安装NoneBot配置电脑python环境用pycharm创建一个项目,启用新的虚拟环境开发项目,避免依赖冲突在pycharm内使用Terminal安装包管理工具nb-cli,Nonebot2......
  • 初识C语言3
    前言承接上文,我们继续学习1.关键字static上一篇博客我们讲解到static修饰局部变量,现在我们讲解一下static修饰全局变量1.1static修饰全局变量源文件1intg_val=2022;源文......
  • 【spring mvc(一)】初识spring mvc——环境搭建
    spring和struts是J2EE的两个主流框架。下面介绍spring3.0的springmvc搭建方式。1.下载jar包   这里包括两种类型的jar包,一个是spring3.0的包,另一个是叫做commons-l......
  • 初识设计模式 - 解释器模式
    简介在某些情况下,为了更好地描述某一些特定类型的问题,我们可以创建一种新的语言,这种语言拥有自己的表达式和结构,即文法规则。解释器设计模式(InterpreterDesignPattern)......
  • 初识结构体
    结构体结构体可以让C语言创建新的类型例如:创建一个学生structstu{ charname[20];//成员变量 intage; doublescore;};intmain(){ structstus={"张三"......
  • 初识指针
    指针intmain(){ inta=10;//a在内存中要分配空间的—4个字节 printf("%p\n",&a);//%p专门用来打印地址的 int*pa=&a;//pa是用来存放地址的,在C语言中pa叫指针......
  • 初识设计模式 - 访问者模式
    简介访问者设计模式(VisitorDesignPattern)的定义是,允许一个或多个操作应用到一组对象上,解耦操作和对象本身。在使用访问者模式的时候,被访问的元素通常不是单独存在的,它......
  • javascript初识以及总结
    今天主要学习了js的概述,书写的三种位置(和css一样内嵌外联和内联三种)以及变量的定义,变量的定义用的是var来定义的并且学了五种数据类型 有number数值型strin......
  • 初识常见关键字
    C语言提供的关键字//1.C语言提供的,不能自己创建关键字//2.关键字不能做变量名//关键字(先了解以下)//auto是自动的---每个局部变量都是auto修饰的//extern是用来申......
  • 微服务健康监控之Spring Actuator初识
    对于一个应用来说,特别是当开发者将至转化为微服务架构之后,就不仅仅是提供业务功能了,还需要提供服务运行的将状态数据。通过这些健康状态数据可以让开发者时刻指定服务......