最新要闻

广告

手机

iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?

iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?

警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案

警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案

家电

读发布!设计与部署稳定的分布式系统(第2版)笔记05_层叠

来源:博客园


(资料图)

1.水平扩展

1.1.增加服务器来增加容量

1.1.1.这些服务器集群被称为“农场”

1.2.负载均衡的服务器集群

1.2.1.不易遭遇单点系统失效

1.2.2.高负载比低负载更易导致竞态条件的并发缺陷

1.3.如果双节点集群出现失效,那么幸存服务器的工作负载将增加一倍

1.4.承担其原始负载(占总负载的一半),也要承担失效节点的负载(另一半)

2.垂直扩展

2.1.构建越来越大的服务器

2.1.1.为主机添加CPU核数、内存和存储空间

3.部分交互式工作负载通过垂直扩展实现,大多数交互式工作负载则依赖水平扩展

4.同层连累反应

4.1.由于一台服务器停机,其他服务器必须负担其工作负载,这样就会发生同层连累反应

4.2.如果应用程序存在缺陷(通常是资源泄漏或与负载相关的崩溃),就会发生

4.2.1.如果应用程序发生内存泄漏,便会发生同层连累反应

4.2.2.同构层的每台服务器都会有同样的缺陷

4.2.3.当一台服务器耗尽内存并停机时,其他服务器不得不负担它的工作负载,但所增加的流量会加快内存泄漏

4.3.寻找难以捕捉的时序缺陷

4.3.1.流量状况也可能引发难以捕捉的竞态条件

4.3.2.同构层的每台服务器都会有同样的缺陷

4.3.3.如果一台服务器陷入死锁,其他服务器所增加的负载也极易使它们陷入死锁

4.4.修复潜在的软件缺陷成了避免同层连累反应的唯一方法

4.5.某一层上同层连累反应的系统失效容易导致其调用层上的层叠失效

4.6.舱壁模式

4.6.1.分隔服务器,可以防止同层连累反应毁掉整个系统服务

4.7.将一层细分成多个池

4.7.1.将单个同层连累反应分成速率不同的同层连累反应

4.8.采用自动扩展

4.8.1.将关闭未通过健康状况检查的服务器实例,并启动新的实例

4.8.2.只要自动扩展机制的响应速度比同层连累反应的蔓延速度快,那么系统服务就依然可用

5.层叠失效

5.1.有一个将系统失效从一个层级传到另一个层级的机制

5.2.当服务提供方的系统失效状态触发调用层的不良反应时,系统失效就会“跳过层级之间的间隙”,蔓延开来

5.3.推测性重试也会让系统失效“跳过层级之间的间隙”而蔓延

5.4.通常源于枯竭的资源池

5.4.1.资源池枯竭的原因往往是较低层级所发生的系统失效

5.5.下层提供的细节不足以区分是瞬态错误还是更严重的错误

5.5.1.一旦下层开始出现一些真正的问题

5.5.2.调用层就开始越来越频繁地访问下层

5.5.3.下层越难以响应,调用层访问越频繁

5.5.4.调用层会倾尽全部CPU资源调用下层,并把调用失败记录到日志中

5.6.没有设置超时时间的集成点,必定会导致层叠失效

5.6.1.集成点是裂纹的头号来源

5.6.2.层叠失效是裂纹的头号加速器

5.7.防止发生层叠失效,是保障系统韧性的关键

5.7.1.断路器和超时是克服层叠失效最有效的模式

5.7.2.断路器模式通过避免向已经陷入困境的集成点发出调用请求,进而保护系统

5.7.3.使用超时模式,可以确保对有问题的集成点的调用能及时返回

关键词: