登录
/
注册
首页
论坛
其它
首页
科技
业界
安全
程序
广播
Follow
关于
导读
排行榜
资讯
发帖说明
登录
/
注册
账号
自动登录
找回密码
密码
登录
立即注册
搜索
搜索
关闭
CSDN热搜
程序园
精品问答
技术交流
资源下载
本版
帖子
用户
软件
问答
教程
代码
写记录
写博客
小组
VIP申请
VIP网盘
网盘
联系我们
发帖说明
道具
勋章
任务
淘帖
动态
分享
留言板
导读
设置
我的收藏
退出
腾讯QQ
微信登录
返回列表
首页
›
业界区
›
业界
›
读发布!设计与部署稳定的分布式系统(第2版)笔记15_快 ...
读发布!设计与部署稳定的分布式系统(第2版)笔记15_快速失败和替换
[ 复制链接 ]
魁睥
2025-6-6 20:02:40
程序园永久vip申请,500美金$,无限下载程序园所有程序/软件/数据/等
1. 快速失败而非缓慢响应
1.1. 如果响应缓慢比没有响应更糟,那么最坏的情况肯定是缓慢的失败响应
1.2. 如果系统能够预先确定某次调用会失败,那么最好快速失败
2. 快速失败模式通过避免响应缓慢来提高整个系统的稳定性
2.1. 当系统由于部分失效而面临压力时,快速失败模式还有助于保持系统容量
2.2. 与超时模式配合使用,快速失败模式有助于避免层叠失效
3. 预留资源并尽早验证集成点有效
3.1. 确保在开始之前就能完成事务
3.1.1. 关键资源不可用,比如所需调用的断路器已跳闸,那么就不要再浪费精力去调用
3.2. 在事务的开始阶段和中间阶段,关键资源可用状态发生变化的可能性极小
3.3. 应用程序或服务可以从传入的请求或消息中,大致了解需要哪些数据库连接和外部集成点,然后可以快速检查所需的连接,并查看集成点周围的断路器状态
4. 使用输入验证
4.1. 即使在预留资源之前,也要进行基本的用户输入验证
4.2. 找到未输入的必需参数才是关键
5. 任其崩溃并替换
5.1. 有时,为了实现系统级稳定性,放弃组件级稳定性就是所能做的最好的事情
5.1.1. 通过组件崩溃保护系统
5.1.2. 通过组件级不稳定性构建系统级稳定性
5.1.3. 这可能是将系统恢复到已知良好状态的最佳方式
5.1.4. 隔离组件以实现独立崩溃
5.2. 在Erlang语言中,这被称为“任其崩溃并替换”的哲学
5.2.1. 任其崩溃并替换的方法认为错误恢复难以完成且不可信赖,所以我们的目标应该是尽快回到刚完成启动时的干净状态
5.3. 程序所能拥有的最干净的状态,就是在刚刚完成启动的那一刻
5.4. 前提
5.4.1. 有限的粒度
5.4.1.1. 必须为崩溃定义边界
5.4.1.2. 发生崩溃的组件应该是独立的,系统的其余部分必须能够自我防护,避免受到层叠失效的影响
5.4.1.3. 在微服务架构中,服务的整个实例可能是正确的崩溃粒度
5.4.1.4. 在Erlang和Elixir中,崩溃的自然边界就是actor
5.4.2. 快速替换
5.4.2.1. actor这样的进程内组件,重启时间以微秒为单位
5.4.2.2. 在容器中运行Go二进制文件
5.4.2.2.1. 启动一个新容器及其内部一个进程的时间以毫秒为单位计算,此时就可以通过让整个容器崩溃实现快速替换
5.4.2.3. NodeJS服务在AWS中一个长时间运行的虚拟机上运行
5.4.2.3.1. 启动NodeJS进程需要花几毫秒,但启动一台新的虚拟机则需要几分钟
5.4.2.3.2. 只需要让NodeJS进程崩溃,就可以实现快速替换
5.4.2.4. 不要让单体系统崩溃
5.4.2.4.1. 运行时负载较大或启动时间较长的大型进程,不适合运用“任其崩溃并替换”策略
5.4.2.4.2. 将许多特性耦合到单个进程中的应用程序,也不推荐运用该策略
5.4.2.4.3. 在数据中心的几台虚拟机上,运行着一个老旧的前端安装API的JavaEE应用程序
5.4.2.4.3.1. 启动时间以分钟为单位计算,此时,“任其崩溃并替换”并不是正确的策略
5.4.3. 监管
5.4.3.1. 监管器不是服务的消费者
5.4.3.2. 管理工人与要求服务是两码事
5.4.3.3. 如果把两者混淆,就会损害系统
5.4.4. 重新归队
5.4.4.1. 在一个actor或实例先崩溃然后由监管器重新将其启动之后,系统必须要恢复对新启动的服务提供方的调用
5.4.4.2. 如果实例被直接调用,则调用方的断路器应该自动将该实例重新归队
5.4.4.3. 如果实例是负载均衡池中的一部分,那么必须能够将实例加回池中,接受工作
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
失败
快速
笔记
2版
系统
相关帖子
C#+VisionMaster 学习笔记(目录)-目录
Flink学习笔记:状态后端
.Net-Avalonia学习笔记(目录)
Flink学习笔记:反压
原始类型与泛型对比笔记
MAF快速入门(7)工作流的状态共享
操作教程丨通过1Panel快速安装Zabbix,搭建企业级监控系统
C++学习笔记 23 宏 Macro
【Agent】MemOS 源码笔记---(6)---MemScheduler -- 总体
从繁琐到高效:招聘自动化系统优化招聘流程的关键步骤
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
千斤顶
照妖镜
相关推荐
业界
C#+VisionMaster 学习笔记(目录)-目录
1
524
寂傧
2025-12-15
业界
Flink学习笔记:状态后端
0
903
嫁蝇
2025-12-16
业界
.Net-Avalonia学习笔记(目录)
0
197
恙髡
2025-12-16
业界
Flink学习笔记:反压
0
827
盒礁泅
2025-12-16
业界
原始类型与泛型对比笔记
0
769
晖顶蝇
2025-12-17
业界
MAF快速入门(7)工作流的状态共享
0
75
兼罔
2025-12-18
业界
操作教程丨通过1Panel快速安装Zabbix,搭建企业级监控系统
0
463
距佰溘
2025-12-18
业界
C++学习笔记 23 宏 Macro
0
766
呼延冰枫
2025-12-18
业界
【Agent】MemOS 源码笔记---(6)---MemScheduler -- 总体
1
316
上官银柳
2025-12-18
安全
从繁琐到高效:招聘自动化系统优化招聘流程的关键步骤
0
473
蒋炸役
2025-12-19
回复
(6)
欧阳梓蓓
2025-10-21 23:11:06
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
鼓励转贴优秀软件安全工具和文档!
锄淫鲷
2025-11-6 23:24:25
回复
使用道具
举报
照妖镜
程序园永久vip申请,500美金$,无限下载程序园所有程序/软件/数据/等
这个有用。
求几少
2025-11-27 12:39:17
回复
使用道具
举报
照妖镜
程序园永久vip申请,500美金$,无限下载程序园所有程序/软件/数据/等
谢谢分享,辛苦了
圉棺
2025-12-1 21:03:06
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
这个好,看起来很实用
谲脾
2025-12-6 18:27:41
回复
使用道具
举报
照妖镜
程序园永久vip申请,500美金$,无限下载程序园所有程序/软件/数据/等
感谢发布原创作品,程序园因你更精彩
寇油
7 天前
回复
使用道具
举报
照妖镜
程序园永久vip申请,500美金$,无限下载程序园所有程序/软件/数据/等
热心回复!
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
回复
本版积分规则
回帖并转播
回帖后跳转到最后一页
签约作者
程序园优秀签约作者
发帖
魁睥
7 天前
关注
0
粉丝关注
13
主题发布
板块介绍填写区域,请于后台编辑
财富榜{圆}
3934307807
991124
anyue1937
9994891
kk14977
6845357
4
xiangqian
638210
5
韶又彤
9997
6
宋子
9982
7
闰咄阅
9993
8
刎唇
9993
9
俞瑛瑶
9998
10
蓬森莉
9951
查看更多
今日好文热榜
87
掌握相关性分析:读懂数据间的“悄悄话”
131
嵌入式UI框架-抗锯齿画圆弧算法
930
嵌入式UI框架的渐变原理、渐变算法
214
日本股票 API 对接实战指南(实时行情与 IP
557
解决Docker磁盘空间告急:认识并清理“悬空
393
别再只会算直线距离了!用“马氏距离”揪出
523
企业进行信息化后,一定会提高效率吗?真相
511
n8n整合ffmpeg
490
从random随机数看验证码重复数字
523
OceanBase 向量索引优化指南
232
Vue2中能否实现输入中文自动转化为拼音, 且
752
从项目成果到职业晋升:项目经理年终总结的
452
JS逆向-混淆加密-识别&还原-Eval&JSFuck&JS
936
2025年上海防水补漏谁家强?长三角标杆企业
610
正式接入DeepSeek-V3.2,国产AI“双剑合壁
397
守嘉陪诊师培训报名热潮引关注 独家实习机
911
顺序表实现线性结构
73
吴恩达深度学习课程四:计算机视觉 第二周
256
设计模式简述
193
vue 甘特图 vxe-gantt table 连接线的用法