您好!欢迎来到爱源码

爱源码

热门搜索: 抖音快手短视频下载   

浅谈“限流熔断器的磁滞回线” [免费源码]

  • 时间:2022-09-14 00:15 编辑: 来源: 阅读:301
  • 扫一扫,手机访问
摘要:浅谈“限流熔断器的磁滞回线” [免费源码]
本文用简单的语言描述了分布式系统中电流限制和熔断机制的通用库Hystrix,旨在理解其使用场景、原理以及如何实现。 不管你会不会敲码,不管你是大是小,尽量做到老少皆宜。 小白能理解的基本概念。我们先来想一个场景。 你还记得某宝每年的双十一秒杀吗?你们几乎都会看到“网络繁忙,稍后再试”的提醒,少数功能直接关闭。 比如2018年关闭了收货地址的编辑功能,让小马下了很多订单,有些想把地址从公司改成家的订单只能干着急。 有朋友幸灾乐祸:“哈哈,某宝的服务器崩溃了。” 小马在这里很负责任的告诉你,很可能不是人家服务器崩溃而是人家服务关闭,这在编码人的世界里叫“服务降级”。 佩吉是什么?不,什么是服务降级?即当系统短时间内并发访问量较高时,有时为了保证主营业务服务的稳定性,先关闭次要业务功能服务,将资源留给主营业务。 也就是上面的宝例中,为了保证秒浏览商品和下单过程的稳定性,收货地址的编辑功能被临时降级,这是典型的弃车保帅行为。 细心的朋友要问了,弃车真的能成为保护帅哥的直接方式吗?弃车了,车流量还是很大怎么办?好吧,举个栗子。 本来这条路是三车道的,右边的车道是货车车道,但是节假日车流量太大的时候就封闭货车交通,把货车车道留给汽车来缓解压力,降低了货车交通的服务。 但其实节假日的车流量还是很大的,只能临时扩建几条路。在码农的世界里,这被称为“横向扩张” 就算财大气粗,也不能无限扩张吧?继续扩建道路?答案自然可以是否定的。我们必须进行电流限制和熔断。 你什么意思?想象一下我们的电路安全制动机制。一旦超载,就会吹跳。原理是一样的。 还是刚才举的栗子 我们刚刚扩建了几条道路。就在这个时候,某军区突然接到运输命令要出去,于是大批的运输车也进来了。堵车导致寸步难行,大量的车流导致整个交通系统基本瘫痪。 交警拿着大喇叭来了。“左边车道的货车开,中间车道的车开,右边的货车开。” 好了,交通马上恢复了,为运输车顺利执行任务开辟了一条通道。码农把这种操作称为“资源隔离”,也就是我们各奔东西。车流量大的堵车,只能阻断运输车辆的通行,不能影响我们运输车辆车道的行驶。 这样局部错误造成的资源消耗就级联到整个系统,造成整个系统的雪崩。 嗯,中间车道的车不高兴了。“车不停地从各个路口开进来,我动不了。” " 没事,交警还有事。 通过大数据探头分析,计算出该路段30分钟内最大通行能力为300辆。嗯,301号车从红灯开始。请不要进入这个路段。走原路回去,因为走不进去。 这叫“限流保险丝”,这个探针分析就是开路计算器或者保险丝。 当然,除了交通拥挤,交通事故往往也是堵车的罪魁祸首。 交警早早地在出事车道的入口处亮了红灯:请不要开车撞上前方的事故,直接往回开。 汽车遇到事故,指示灯是红色的,所以不进来,直接回去。也可以认为这条车道被降级了,叫做“后退,优雅降级”。 当然也可以等绿灯亮了再进来(探头会计算车流量,事故车道交通恢复正常时,尽量开绿灯让行。这种检查的过程叫做“健康检查”),否则,会加重拥堵。 喝了几杯茶,我们已经谈了Hystrix涉及的几个基本概念,有这么简单吗? 趁热打铁,然后让我们正式揭开她的面纱。 什么是Hystrix?Hystrix是英文单词porcupine(有意思的是,很多IT技术栈都有自己的专属代言动物,比如PHP的大象,GO的土拨鼠等。).豪猪身强力壮,体长55-77cm,尾长8-14cm,体重10-14kg。 在自然界中,只有偶尔有经验的豹子或猎狗才有机会把它们踢翻,让它们柔软的肚子朝上,这样才能被制服。 豪猪的刺一旦扎进脸或皮肤,就很难拔出来。豪猪的刺深深扎进肉里,造成伤口感染,给伤者带来极大的痛苦,甚至死亡。 可见其自我保护能力之强。 用它来命名限流熔断器库是很自然的。 小马感觉Hystrix其实有点像交警的职能,维护交通系统的畅通。 在分布式系统中,服务之间的依赖是复杂的,不可避免地会有一些服务失败。 Hystrix是一个库,它提供服务到服务的容错。“容错”主要表现在延迟和异常,从而控制分布式系统中的联动故障。 Hystrix通过隔离服务的访问点、防止链接故障以及提供故障解决方案来提高这种分布式系统的灵活性。 HystrixHystrix的历史源自一个弹性项目,该项目由网飞API团队于2011年启动。 到2012年,Hystrix继续成长和成熟,网飞的许多团队都使用Hystrix。 如今,在网飞,Hystrix隔离技术维护的隔离线程数量每天达到数百亿和数十亿个信号量隔离(默认的隔离策略是线程池隔离,另一种隔离策略是信号量)。 目前在服务保障方面,除了Hystrix框架,阿里巴巴开源的sentinel框架也是不错的替代方案。 Hystrix特征1。为系统提供保护和控制,并在相关服务出现高延迟或故障时提供容错能力;2.防止分布式系统中的级联故障;3.快速失败的同时可以快速恢复;4.提供回退和优雅的服务降级机制;5.提供近乎实时的监控、报警和运维控制手段。 Hystrix怎么做的这么好?第一,是隔离资源。 如果不做资源隔离,一切正常,如下:正常情况下,一切正常。如果出现服务异常,将耗尽所有资源,导致系统崩溃,其他正常服务的请求将得不到响应。 如下:服务异常发生,资源没有及时释放,本地服务异常耗尽,整个系统阻塞。因此,资源隔离后,各业务异常互不影响,防止了级联错误导致的系统雪崩,如图所示。 资源隔离后,局部情况不影响全局。资源隔离后限流熔断怎么办?Hystrix是如何实现的?别担心,请滑下来。 Hystrix引入了保险丝,当达到正流量或正异常数时会触发保险丝的开关状态,从而快速降级后续请求。 画 Hystrix fuse(脑补探头的例子)在以下四种情况下触发降级动作:1 .1.run()方法引发非HystrixBadRequestException异常;2.2.run()方法调用超时;3.保险丝熔断,阻断通话;4.线程池/信号量能满运行吗? 流程图如下:Hystrix工作流程Hystrix的健康检查:fuse开启后,默认会每隔5秒尝试半开,放入一些流量请求,相当于对依赖服务的一次健康检查。如果它被恢复,熔丝状态将被关闭,并且相关服务将被恢复。 Hystrix代码示例不会说话但要练习。作为码农怎么用?以HystrixCommand为例(JAVA)。 当然,首先要加载相应的依赖库。 类并重写业务方法和降级的方法调用实例。好吧,就这样。 Hystrix在分布式微服务系统的容错性和可靠性方面的贡献是显著的。入门和实战是两回事。这里只是一个建议。详情请参考官方文件。 参考:公文Hystrix wiki git原创文章,未经允许请勿转载。


  • 全部评论(0)
资讯详情页最新发布上方横幅
最新发布的资讯信息
【技术支持|常见问题】1556原创ng8文章搜索页面不齐(2024-05-01 14:43)
【技术支持|常见问题】1502企业站群-多域名跳转-多模板切换(2024-04-09 12:19)
【技术支持|常见问题】1126完美滑屏版视频只能显示10个(2024-03-29 13:37)
【技术支持|常见问题】响应式自适应代码(2024-03-24 14:23)
【技术支持|常见问题】1126完美滑屏版百度未授权使用地图api怎么办(2024-03-15 07:21)
【技术支持|常见问题】如何集成阿里通信短信接口(2024-02-19 21:48)
【技术支持|常见问题】算命网微信支付宝产品名称年份在哪修改?风水姻缘合婚配对_公司起名占卜八字算命算财运查吉凶源码(2024-01-07 12:27)
【域名/主机/服务器|】帝国CMS安装(2023-08-20 11:31)
【技术支持|常见问题】通过HTTPs测试Mozilla DNS {免费源码}(2022-11-04 10:37)
【技术支持|常见问题】别告诉我你没看过邰方这两则有思想的创意广告! (2022-11-04 10:37)

联系我们
Q Q:375457086
Q Q:526665408
电话:0755-84666665
微信:15999668636
联系客服
企业客服1 企业客服2 联系客服
86-755-84666665
手机版
手机版
扫一扫进手机版
返回顶部