微服务框架 SpringCloud微服务架构 微服务面试篇 54 微服务篇 54.7 Sentinel的线程隔离与Hystix的线程隔离有什么差别

news2025/2/6 3:02:14

微服务框架

【SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式,系统详解springcloud微服务技术栈课程|黑马程序员Java微服务】

微服务面试篇

文章目录

      • 微服务框架
      • 微服务面试篇
      • 54 微服务篇
        • 54.7 Sentinel的线程隔离与Hystix的线程隔离有什么差别?
          • 54.7.1 Sentinel与Hystix的线程隔离有什么差别?

54 微服务篇

54.7 Sentinel的线程隔离与Hystix的线程隔离有什么差别?

54.7.1 Sentinel与Hystix的线程隔离有什么差别?

线程隔离有两种方式实现:

  • 线程池隔离(Hystix默认采用)
  • 信号量隔离(Sentinel默认采用)

【线程池隔离】

在这里插入图片描述

如果说现在 服务I 依赖于其他 服务,比如A、B

在这里插入图片描述

当用户请求来到 后,我们 会给它所依赖 的每个服务 都创建一个独立的线程池

这个请求要去调用 服务A 时,就必须去 服务A 线程池中 获取一个线程 来执行这个任务

在这里插入图片描述

即拿到 线程之后,再去通过Feign 的客户端 实现远程调用

如果现在池子里 的线程被取完了 ,再有新的请求,就没有可用 的线程 了,就相当于 限制了对服务A 的远程调用

即对A 的远程调用 只能并发的有 10 个【作用:限流、隔离】,同理 B 为5个

如果现在 服务A 出现了故障,那么请求在 访问服务A 的时候就 最多阻塞 10 个请求。现在对于服务I 自己而言,如果它自己的Tomcat 里面 有 500 个线程。即服务A 挂掉后,只会 占 10个,就不会把服务I 的资源给耗尽,这也是隔离的体现。

这种方式的弊端就是 会频繁地去 “创建线程”

【信号量隔离】

这种方式没有线程池,其实就是维护了 一个计数器,

在这里插入图片描述

虽然说 来就访问,但是会进行计数【计数器 有上限】操作,当计数器 到 0,说明就没有可用的 信号量了,之后再有 新的请求,就拒绝了,不让访问 了

这种方式同样 的并发 最多就10 个请求。

这种方式 实现更加轻量( 不用创建线程池),只有维护 计数器 就行了

【差别总结】

在这里插入图片描述

以前也讲过了

【现在来回答这个问题】

Sentinel的线程隔离与Hystix的线程隔离有什么差别?

问题说明:考察对线程隔离方案的掌握情况

难易程度:一般

参考话术

Hystix默认是基于线程池实现的线程隔离,每一个被隔离的业务都要创建一个独立的线程池,线程过多会带来额外的CPU开销,性能一般,但是隔离性更强。

Sentinel是基于信号量(计数器)实现的线程隔离,不用创建线程池,性能较好,但是隔离性一般。

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

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

相关文章

计算机毕设Python+Vue学生社团管理(程序+LW+部署)

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

基于蓝牙AOA技术的智慧医疗解决方案

1. 应用背景 医院需求分析在医疗体制不断完善的今天,医院的信息化程度已经大大提高,现在的大型医院都已经用上了医院信息系统(HIS),它是医院管理同现代软件技术、网络技术相结合的产物。应用HIS系统后,确实方便了群众就医&#x…

【docker】DockerFile

一、DockerFile dockerfile是用来构建docker镜像的文件!命令参数脚本! 构建步骤: 编写一个dockerfile文件docker build构建成为一个镜像docker run 运行镜像docker push 发布镜像(DickerHub 阿里云镜像仓库!&#x…

【Python机器学习】分类算法任务、分类模型评价指标详解(图文解释)

分类任务 设样本集S{s_1,s_2,…,s_m}包含m个样本,样本s_i(x_i,y_i)包括一个实例x_i和一个标签y_i,实例由n维特征向量表示,即x_i(x_i^(1),x_i^(2),…,x_i^(n))。 在学习过程,分类任务将样本集中的知识提炼出来,形成模…

进程程序替换

文章目录进程程序替换是什么概念原理为什么要进行程序替换如何进行程序替换使用接口execl引入进程创建execvexeclpexecvpexecle进程程序替换是什么 概念 通过之前的学习,我们知道子进程执行的是父进程的代码片段。 如果我们想让创建出来的子进程,执行的…

PPT丑哭了?这个工具做报表上手更简单,效果更酷炫,送40套模板

如果2023年你还做着万年不变的饼图、折线图,你将会再次错失涨薪的机会! 数据有多重要,已经不言而喻,随之而来的是职场对数据分析与展示能力的要求也越来越高。 但是你是不是这种情况?一用图表就只会用饼图、折线图&a…

ice.js 3 的体验优化策略介绍

ice.js 3 已经正式发布,期待更多的业务来使用、验证,一起建设更好的用户体验。ice.js 3 地址:https://v3.ice.work/本文将简单介绍 ice.js 3 中已经落地和正在进行的一些体验优化策略,以供探讨。Chrome 在去年成立了一个名为 Auro…

Allegro如何导出光绘和颜色设置到其它单板上操作指导

Allegro如何导出光绘和颜色设置到其它单板上操作指导 Allegro有个非常强大的功能,支持把光绘设置和颜色设置等等参数从一个PCB导入到另外一块PCB中,如下图 具体操作如下 导出参数设置,file-export选择Parameters

优优绿能冲刺创业板:年营收4.3亿估值25亿 小米是股东

雷递网 雷建平 12月19日深圳市优优绿能股份有限公司(简称:“优优绿能”)日前递交招股书,准备在深交所创业板上市。优优绿能计划募资7亿元,其中,2.7亿元用于深圳市优优绿能股份有限公司充电模块生产基地建设…

[附源码]计算机毕业设计Python二次元信息分享平台的设计及实现(程序+源码+LW文档)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程 项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等等…

数商云采购管理系统支付结算功能详解,实现建筑工程企业采购业务智能化管理

建筑工程行业企业过去受技术、场地等限制,一直采用传统的采购方式,再加上整个行业内部信息相对割裂、采购面临层层传播、中间沟通亦面临多层税费等问题,为建筑工程采购工作增添了不少困难。随着互联网时代的发展,在大数据、云计算…

云原生之使用Docker部署Dashdot服务器仪表盘

云原生之使用Docker部署Dashdot服务器仪表盘一、Dashdot介绍二、检查本地系统环境1.检查本地系统版本2.检查docker状态3.检查docker版本三、下载Dashdot镜像四、部署Dashdot应用1.创建安装目录2.创建Dashdot容器3.查看Dashdot容器状态五、访问Dashdot一、Dashdot介绍 Dashdot是…

未来十年,Python将如何发展?

随着人工智能的发展和普及,作为人工智能首选语言的Python,也越来越受到大家的欢迎。可能也有很多同学想知道未来十年,Python会有什么样的发展。如果发展得非常好,就值得我们亲自去机构进行考察试学,值得我们花时间、花…

克隆一个虚拟机

文章目录1、打开虚拟机2、选择要克隆的虚拟机3、选择当前状态4、创建完整克隆(链接克隆会导致本体和克隆体在一些资源上是公用的,不太合适)5、重命名克隆虚拟机的名字,并且更改克隆的虚拟机所在位置7、登录这个虚拟机8、因为两个虚…

[附源码]计算机毕业设计Python防疫物资捐赠(程序+源码+LW文档)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程 项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等…

[附源码]计算机毕业设计Node.jswai音乐网站(程序+LW)

项目运行 环境配置: Node.js最新版 Vscode Mysql5.7 HBuilderXNavicat11Vue。 项目技术: Express框架 Node.js Vue 等等组成,B/S模式 Vscode管理前后端分离等等。 环境需要 1.运行环境:最好是Nodejs最新版,我…

Docker-Nacos的持久化和集群部署

目录 一,准备工作 1.1 修改虚拟机内存大小 二,docker mysql:5.7的持久化存储及远程连接 1.1 下载相关镜像 1.2 在宿主机中相关目录,用于挂载容器的相关数据 1.3.创建mysql5.7容器 1.4.修改mysql允许Navicat远程连接 1.5 创建数据库nacos_…

实用指南:手把手搭建坚若磐石的DevSecOps框架

长期以来,安全问题一直被当作软件开发流程中的最后一步。开发者贡献可以实现软件特性的代码,但只在开发生命周期的测试和部署阶段考虑安全问题。随着盗版、恶意软件及网络犯罪事件飙升,开发流程需要做出改变。 开发过程中的“安全左移”是…

基于java的fofa爬虫

文章目录下载链接介绍使用方法关键字生成器API爬虫Fofa爬虫导出功能修改配置文件下载链接 github : https://github.com/13337356453/FofaSpidercsdn : https://download.csdn.net/download/realmels/87320066 介绍 顾名思义,fofa爬虫。可以用api爬,也…

leetcode:1192. 查找集群内的关键连接【tarjan模版 + 找割边】

目录题目截图题目分析割边割点强连通子图ac codetarjan模版总结题目截图 题目分析 找割边 割边 割点 强连通子图 我觉得就是割边左右的两个子图?应该是去掉n条割边后,剩下n 1个强连通子图的意思吧。。。 ac code class Solution:def criticalConne…