微服务容错、容灾

最近看分布式服务容错的相关内容,想起了之前经历过的一次服务器雪崩事件,决定结合这个事件回顾一下微服务的容灾,并简单提一下Hystrix这个大佬

一、雪崩

当山坡积雪内部的内聚力抗拒不了它所受到的重力拉引时,便向下滑动,引起大量雪体崩塌,人们把这种自然现象称做雪崩。

拿错了.jpg

服务的雪崩现象:服务雪崩现象是一种因服务提供者的不可用导致服务调用者的不可用,并将不可用 逐渐放大 的过程
通俗的讲,在分布式系统架构中多个系统之间通常是通过远程RPC调用进行通信,也就是 A 系统调用 B 系统服务,B 系统调用 C 系统的服务。当尾部应用 C 发生故障而系统 B 没有服务降级时候可能会导致 B,甚至系统 A 瘫痪,这种现象被称为雪崩现象

二、一次教科书式雪崩

  • 背景
    酒店CRS,订单系统需要依赖库存系统进行扣库存操作,而库存系统同时提供了对外的接口来实时更新酒店房间库存
  • 事件过程
    这次崩溃事件持续了近一小时,虽然那时候公司体量不大,损失不算严重,但订单系统长达一小时的服务崩溃仍然造成了不小的影响
    1. 大约上午十点开始,业务方反映订单系统无法下单
    2. 发现库存系统无响应,立即重启服务
    3. 服务正常,可下单,但数分钟后再次崩溃
    4. 发现库存推送接口访问量巨大,远超平时
    5. 联系合作方停止推送,重启服务,业务恢复
  • 事后复盘
    1. 库存数据库压力较大导致了响应变慢
    2. tomcat服务器超时断开连接,但service逻辑仍然在运转。
    3. 外部服务接收到超时异常马上重试
    4. 重复1、2、3步骤,导致库存服务压力增加
    5. 数据库恢复,但由于请求量暴增,服务已崩溃
    6. 重启服务后恢复,但外部有大量的重试请求再次压垮系统

三、 Hystrix

  也就是在这次事件之后,我们部门开始在服务容灾方面进行努力,并引进了Hystrix这个服务容错框架。Hystrix应该是当下最流行的限流容错框架了,由Netflix开发,现在是springcloud官方使用的容错框架
  Hystrix是Netflix解决自己业务不稳定性的一个限流容错框架,可以帮助我们解决微服务架构体系中的限流、降级、熔断等功能,提高系统稳定性。提供了完善的监控实现,并且Hystrix可以根据监控数据动态调整内部处理机制。

Hystrix的功能

  • 资源隔离:Hystrix通过舱壁模式来分隔服务提供者,使得某服务提供方失败不会影响整个项目系统的稳定性。
  • 熔断:Hystrix可以通过监控一段事件内的异常次数和响应速度来判断当前服务的健康状况,若服务健康状况不佳则进行熔断,熔断之后新的请求将不会调用实际的业务,而是通过快速失败降级的方式来快速给用户进行响应
  • 快速失败:熔断的后续选择之一,直接返回失败
  • 降级:熔断的后续选择之一,降级到静态响应或是下级服务
  • 监控报警:提供近实时的监控、报警和运维手段

指导这些功能的设计原则

  1. 防止单个依赖耗尽容器的用户线程
  2. 降低系统负载,对无法及时处理的请求使用快速失败机制而不是排队
  3. 通过隔离技术(*舱壁,泳道,断路器)来降低依赖服务对整个系统的影响
  4. 提供失败回退功能,意在必要时让失效对用户透明化
  5. 针对系统提供服务的监控、报警、度量,满足近实时性的要求

舱壁模式:在货船运输过程中,为防止某个货仓意外火灾,而导致整船货物的损失,通常会分隔货仓,从而使损失限制在一个货舱内

四、 最后的废话

服务的容错、容灾是分布式系统稳定性中非常重要的一环,Hystrix也是目前相当流行的解决方案,还是建议去阅读一下官方文档进行学习

参考

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,980评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,178评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,868评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,498评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,492评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,521评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,910评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,569评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,793评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,559评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,639评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,342评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,931评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,904评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,144评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,833评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,350评论 2 342