微服务保护 - Sentinel

news2024/11/26 13:35:06

1.概念:

一:sentinel 介绍

随着微服务的流行,服务和服务之间的稳定性变得越来越重要。Sentinel 是面向分布式服务架构的轻量级流量控制产品,主要以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度来帮助您保护服务的稳定性。

二:什么是服务雪崩?

在微服务中,服务之间电泳关系复杂,一个为服务往往依赖与多个其他微服务(服务调用其他服务),可想而知,如果一个服务出现问题,调用者拿不到数据,依赖服务的业务请求被阻塞,用户不会得到响应,则tomcat的这个线程不会释放,于是越来越多的用户请求到来,越来越多的线程会阻塞,服务器支持的线程和并发数有限,请求一直阻塞,会导致服务器资源耗尽,从而导致所有其它服务都不可用,那么当前服务也就不可用了。 依赖于当前服务的其它服务随着时间的推移,最终也都会变的不可用,形成级联失败,雪崩就发生了

1.常用的微服务保护方案【重点】

处理微服务雪崩问题,常见4中方案

1.微服务出错后的处理(3种)

        1.1 超时:设置请求的超时时间,一旦请求超时,就立即报错结束。可以快速失败,从而避免长时间占用资源

 

        1.2 隔离(舱壁模式):给每个业务设置一个线程池,不同业务之间的线程是隔离的。一旦某业务失败,不会影响其它业务

 这里也可以称之为舱壁模式,隔离,来源于船舱的设计 。船舱都会被隔板分离为多个独立空间,当船体破损时,只会导致部分空间进入,将故障控制在一定范围内,避免整个船体都被淹没。

 

        1.3 熔断降级:使用断路器技术统计异常请求的比例,一时超过指定的阈值,就拦截一切请求

                熔断:暂时切断对目标服务的一切访问,让目标服务有个缓冲时间

                降级:当不能正常调用目标服务时,就采用备用方案,这个过程就是降级

 

2. 预防微服务出错的方案:(1种)

         限流:根据服务的性能,限制业务访问的qps,避免服务因流量的突增而出现故障。

 三:微服务保护技术 Hystrix 和 Sentinel对比

在SpringCloud中支持多种服务保护技术:

  • NetFlix Hystrix

  • Alibaba Sentinel

  • Resilience4J

 早期比较流行的是Hystrix框架,但目前国内实用最广泛的还是阿里巴巴的Sentinel框架,这两个框架对比如下:

SentinelHystrix
隔离策略信号量隔离线程池隔离(默认)/信号量隔离
熔断降级策略基于慢调用比例或异常比例基于失败比率
实时指标实现滑动窗口滑动窗口(基于 RxJava)
规则配置支持多种数据源支持多种数据源
扩展性多个扩展点插件的形式
基于注解的支持支持支持
限流基于 QPS,支持基于调用关系的限流有限的支持
流量整形支持慢启动、匀速排队模式不支持
系统自适应保护支持不支持
控制台开箱即用,可配置规则、查看秒级监控、机器发现等不完善
常见框架的适配Servlet、Spring Cloud、Dubbo、gRPC 等Servlet、Spring Cloud Netflix

 隔离策略:

  • 线程池隔离:调用每个服务都有一个单独的线程池。所以调用这个服务出现问题,最多把这个专用的线程池耗干,不可能影响其它服务

  • 信号量隔离:不会创建新线程。 调用每个服务的时候,都要做一个计数+1;每个服务可以设置最多允许多个并发,达到并发阈值,就不允许再调用了

 熔断降级:

  • Hystrix基于失败比例:当短时间内,调用服务失败的比例达到阈值,就熔断。不能对慢调用进行熔断

  • Sentinel可以基于慢调用比例、也可以基于失败比例进行熔断

 限流:

  • Sentinel的限流功能非常强大

  • Hystrix的限流功能非常弱

 流量整形:

  • Sentinel可以进行流量整形,让所有请求按照时间匀速排队

  • Hystrix不支持流量整形

 控制台

  • Sentinel的控制台非常简单易用、非常强大

  • Hystrix控制台非常简陋

 Sentinel和Hystrix整体的对比:

  • Hystrix是一个简单的服务保护工具,Sentinel是一个强大的服务保护的框架

  • Hystrix相当于算盘,Sentinel相当于一台计算机

 四:Sentinel简介

官网地址:home | Sentinel

Sentinel 是面向分布式、多语言异构化服务架构的流量治理组件,主要以流量为切入点,从流量控制、流量路由、熔断降级、系统自适应保护等多个维度来帮助用户保障微服务的稳定性

 QPS:Query per Second,每秒请求数

 

 

它具有以下特征:

  • 丰富的应用场景

    Sentinel 承接了阿里巴巴近 10 年的双十一大促流量的核心场景,例如秒杀(即突发流量控制在系统容量可以承受的范围)、消息削峰填谷、集群流量控制、实时熔断下游不可用应用等。

  • 完备的实时监控

    Sentinel 同时提供实时的监控功能。您可以在控制台中看到接入应用的单台机器秒级数据,甚至 500 台以下规模的集群的汇总运行情况。

  • 广泛的开源生态:

    Sentinel 提供开箱即用的与其它开源框架/库的整合模块,例如与 Spring Cloud、Dubbo、gRPC 的整合。您只需要引入相应的依赖并进行简单的配置即可快速地接入 Sentinel。

  • 完善的 SPI 扩展点:

    Sentinel 提供简单易用、完善的 SPI 扩展接口。您可以通过实现扩展接口来快速地定制逻辑。例如定制规则管理、适配动态数据源等。

 

五:安装Sentinel 

sentinel官方提供了UI控制台,方便我们对系统做限流设置,下载:

  • 可以在GitHub下载:Releases · alibaba/Sentinel · GitHub。

 没资料可以找我

 我是在linux中安装,也可以在本地安装,我的本地可能多个jdk

 java -jar sentinel-dashboard-1.8.1.jar 命令

 服务熔断与限流:Sentinel_轻松的小希的博客-CSDN博客

 此文章真好

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/153822.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

黑马学ElasticSearch(六)

目录: (1)搜索结果处理-排序 (2)搜索结果处理-分页 (3)搜索结果处理-高亮 (1)搜索结果处理-排序 评分降序、价格升序查询 第二 第三 一旦进行了排序_score就没有值了 …

Qt 自定义流程图 diagram

Qt 自定义流程图 diagram前言程序执行效果程序源码下载图形视图框架成员介绍重写QGraphicsItem程序源码介绍重点代码前言 本文将对QGraphicsScene, QGraphicsView,QGraphicsItem这三个类进行简单介绍,并通过diagram流程图项目对自定义QGraphicsItem操作进行演示讲解…

Docker从无到有

随着各个软件的版本越来越多&#xff0c;软件开发、使用环境愈发复杂&#xff0c;Docker日益受到广泛应用。本文记录下从零开始了解、使用docker的各个步骤。 Docker有3个基本概念: Image&#xff0c;镜像。镜像就是系统的快照。静态。每个Image以<Repo Name>:<Tag …

求助:程序员得了结膜炎+干眼症怎么办?

大概是2022年12月初开始&#xff0c;我就感觉眼睛有看东西有点肿胀和模糊&#xff0c;还有就是总想眯眼。本来以为就是用眼过度导致的疲劳&#xff0c;想着周六周日好好休息一下应该就好了&#xff0c;但是没想到不仅没好还加重了。不得已去了医院求助医生。 我去的是杭州的浙…

TS:镜像构建过程中go下载第三方包失败-2023.1.8(已解决)

title: TS&#xff1a;镜像构建过程中go下载第三方包失败-2023.1.8(已解决) date: 2023-1-10 categories: Golang tags:Golang TS&#xff1a;镜像构建过程中go下载第三方包失败-2023.1.8(已解决) 注意&#xff1a;一定要注意项目代码里go版本和自己机器go版本是否一致&#x…

5.2中断系统中的设备树——Linux对中断处理的框架及代码流程简述

当发生中断时&#xff0c;CPU会跳到一个固定的地址去执行代码&#xff0c;这个固定的地址就被称为中断向量。 以ARM920T为例&#xff0c;它的中断向量默认是地址24&#xff08;0x18&#xff09;的地方。那么&#xff0c;就可以在这里放一条跳转指令。 一系列的跳转指令用来处…

基于配置系统和流水线的热更新方案

文章目录背景方案调研具体方案方案优缺点背景 最近我们要在一个新的 App 上增加热更新的能力&#xff0c;按照以往的设计思路&#xff0c;需要后台一起参与&#xff0c;并提供对应的接口&#xff0c;具体的接口如下&#xff1a; 接口参数返回值备注uploadBasePkgappVersion&a…

接口管理工具YApi怎么用?颜值高、易管理、超好用

众多接口管理工具如雨后春笋搬冒出。让人欣慰的是&#xff0c;有许多优秀作品来自国内&#xff0c;包含YApi和rap。看着中文的官网&#xff0c;熟悉的汉语&#xff0c;不禁让人暗爽。当然这也就带来另一个弊端&#xff0c;因为使用基数少&#xff0c;所以参考资料少。我们想学习…

Linux时间的获取与使用

Linux系统时间有两种。 &#xff08;1&#xff09;日历时间。该值是自协调世界时(UTC)1970年1月1日00:00:00这个特定时间以来所经过的秒数累计值。基本数据类型用time_t保存。最后通过转换才能得到我们平时所看到的24小时制或者12小时间制的时间。 &#xff08;2&#xff09;…

使用WSL获得Ubuntu系统环境

文章目录使用WSL获得Ubuntu系统环境为什么要用WSL什么是WSLWSL部署安装Windows Terminal软件使用WSL获得Ubuntu系统环境 为什么要用WSL WSL作为Windows10系统带来的全新特性&#xff0c;正在逐步颠覆开发人员既有的选择。 传统方式获取Linux操作系统环境&#xff0c;是安装完…

凯撒加密Caesar cipher

凯撒加密的由来凯撒加密正是凯撒大帝发明的&#xff0c;是一种古典的加密凯撒率军征服高卢&#xff0c;袭击日耳曼和不列颠&#xff0c;古罗马开启了走出意大利&#xff0c;征服全欧洲的征程仅用8年时间征服高卢后&#xff0c;凯撒率军越过卢比孔河&#xff0c;驱赶政敌&#x…

振弦采集模块参数配置工具的使用

振弦采集模块参数配置工具的使用 通常情况下&#xff0c;在计算机端对模块进行测试、读写时&#xff0c;可使用一些通用的免费工具完成&#xff0c;如基于 MODBUS 通讯协议的调试工具 MODSCAN、通用串口调试助手等&#xff0c; 这些工具可以通过网络搜索下载使用&#xff0c;在…

03【Response、ServletContext】

文章目录03【Response、ServletContext】一、HTTP响应概述1.1 什么是HTTP响应&#xff1a;1.2 响应信息的组成&#xff1a;1.2.1 响应行1.2.2 响应头1.2.3 响应体1.3 Http协议小结二、HttpServletResponse对象2.1 设置响应行2.2.1 设置响应状态码2.2.2 常见响应码1&#xff09;…

入选IDC报告,美创科技数据安全管理平台实力领跑

近日&#xff0c;国际权威研究咨询机构IDC发布《中国数据安全基础设施管理平台市场洞察&#xff0c;2022》报告。本次报告对行业用户以及技术提供商深入访谈&#xff0c;挑选出具有代表性的数据安全基础设施管理平台产品和方案&#xff0c;美创数据安全管理平台入选&#xff0c…

软件测试---概念篇

本文主要介绍软件测试相关的一些基础概念.主要内容包括 : 什么是需求 什么是bug 什么是测试用例 开发模型和测试模型 配置管理和软件测试 一 : 什么是需求 满足用户期望或正式规定文档&#xff08;合同、标准、规范&#xff09;所具有的条件和权能&#xff0c;包含用户需求和软…

【Kubernetes 企业项目实战】02、基于 Prometheus 和 K8s 构建智能化监控告警系统(中)

目录 一、安装和配置 node-exporter 1.1 node-exporter介绍&#xff1f; 1.2 安装 node-exporter 二、Prometheus server 安装和配置 2.1 创建 sa 账号&#xff0c;对 sa 做 rbac 授权 2.2 创建 prometheus 数据存储目录 2.3 安装 Prometheus server 服务 &#xff08;…

Python再入手-03

又过了半年,已经完全忘了当时8月份的python工作了。这半年,先是跑合同,然后张罗出海,完了又搞了两次验收,还做了两次汇报,开了无数的会,忙坏了。 现在,得重新张罗电磁这档子事儿了。下面记录下最近的操作。 1 打开编程环境。 都忘了怎么打开环境了,翻一下以前的博客…

Ant Design使用

目录官网在项目中使用下载引入方法1:全部引入方法2:按需引入-手动加载方法3:按需引入-自动加载组件Anchor作用&#xff1a;用于跳转到页面指定位置案例1-基础使用案例2-添加偏移量案例3-指定容器总结官网 Ant Design官网 在项目中使用 在react中使用Ant Design 下载 使用如…

【无人机学习之Mission Planner】RTK/GPS Inject 学习

█ 【无人机学习之Mission Planner】RTK/GPS Inject 学习 █ 系列文章目录 提示&#xff1a;这里是收集了无人机的相关文章 【无人机学习】无人机基础知识【无人机学习】Mission Planner&#xff08;pc端&#xff09;和QGroundControl&#xff08;android端&#xff09;【无人…

P1102 A-B 数对

题目背景 出题是一件痛苦的事情&#xff01; 相同的题目看多了也会有审美疲劳&#xff0c;于是我舍弃了大家所熟悉的 AB Problem&#xff0c;改用 A-B 了哈哈&#xff01; 题目描述 给出一串正整数数列以及一个正整数 CC&#xff0c;要求计算出所有满足 A - B CA−BC 的数对的…