登录
/
注册
首页
论坛
其它
首页
科技
业界
安全
程序
广播
Follow
关于
导读
排行榜
资讯
发帖说明
登录
/
注册
账号
自动登录
找回密码
密码
登录
立即注册
搜索
搜索
关闭
CSDN热搜
程序园
精品问答
技术交流
资源下载
本版
帖子
用户
软件
问答
教程
代码
写记录
写博客
小组
VIP申请
VIP网盘
网盘
联系我们
发帖说明
道具
勋章
任务
淘帖
动态
分享
留言板
导读
设置
我的收藏
退出
腾讯QQ
微信登录
返回列表
首页
›
业界区
›
业界
›
读发布!设计与部署稳定的分布式系统(第2版)笔记17_中 ...
读发布!设计与部署稳定的分布式系统(第2版)笔记17_中间件、背压和调速器
[ 复制链接 ]
尹疋
2025-6-6 20:55:03
程序园永久vip申请,500美金$,无限下载程序园所有程序/软件/数据/等
1. 完全的解耦
1.1. 各台服务器、层级和应用程序解耦得越彻底,集成点、层叠失效、响应缓慢和线程阻塞等问题就越少
1.2. 应用程序解耦后,系统可以单独更改其他应用程序的所有配件,因此也更具适应性
2. 中间件
2.1. 在极其杂乱无章的环境中,集成原本就不在一起工作的系统
2.2. 中间件既可以做到将其集成,又可以做到将其解耦
2.3. 由于集成点是导致系统不稳定的首要原因,因此“既可集成,又能解耦”是件好事
2.4. 松耦合的中间件允许调用系统和接收系统在不同的地点和时间处理消息
2.4.1. IBM MQSeries
2.4.2. 所有基于队列或发布-订阅机制的消息传递系统
2.4.3. 实现系统间消息传递的SMTP或SMS系统
2.4.3.1. SMTP和SMS系统通常由人(而不是服务器)充当消息代理,且系统延迟往往很高
2.5. 面向消息的中间件,在空间和时间上实现端点解耦
2.5.1. 发出请求的系统不会“坐等回复”
2.5.2. 不会导致层叠失效
2.6. 从同步的“请求-回复”到异步的通信方式的转变,需要完全不同的设计
2.6.1. 需要考虑转换成本
2.6.2. 中间件解耦是架构决策
2.6.2.1. 相关的实施会波及系统的每个部分
2.6.3. 应该在最后责任时刻到来时,尽早做出这种几乎不可逆转的决策
3. 背压机制
3.1. 每个性能问题都源于其背后的一个等待队列
3.1.1. 套接字的监听队列
3.1.2. 操作系统的运行队列
3.1.3. 数据库的I/O队列
3.2. 如果队列无限长,那么它就会耗尽所有可用的内存
3.3. 随着队列长度的增加,完成队列中某项工作的时间也会增加
3.3.1. 当队列长度达到无穷大时,响应时间也会趋向无穷大
3.4. 要想获得有限的响应时间,就需要构建有限长度的等待队列
3.5. 如果队列的长度是有限的,那么当队列已满且生产者仍试图再塞入一个新请求时,必须立刻采取应对措施
3.5.1. 假装接受新请求,但实际上将其抛弃
3.5.2. 确实接受新请求,但抛弃队列中的某一个请求
3.5.2.1. 随着时间的推移价值迅速降低的数据,抛弃队列中最先发出的请求可能是最佳选择
3.5.3. 拒绝新请求
3.5.4. 阻塞生产者,直至队列出现空的位置
3.5.4.1. 一种流量控制手段,允许队列向发送数据包的上游系统实施“背压”措施
3.5.4.2. 消费者必须当心,不要永久阻塞
3.6. TCP在每个数据包中都采用额外的字段构建背压机制
3.6.1. 来自TCP接收方窗口的背压,会让发送方填满其发送缓冲区,这时后续写入套接字的调用将被阻塞
3.7. 背压机制通过让消费者放慢工作来实现安全性
3.8. 背压机制会导致线程阻塞
3.9. 背压机制最适合异步调用和编程
3.9.1. Rx框架、actor或channel工具实现这个机制
3.10. 在系统边界内运用背压机制效果最好
3.10.1. 在系统边界之间,还是需要使用卸下负载模式和异步调用
4. 卸下负载
4.1. 服务、微服务、网站和开放式API都有一个共同特点:无法控制其需求量
4.1.1. 总能对某个系统施加超出其处理能力的负载
4.2. 服务应该模仿TCP的做法
4.2.1. 当负载过高时,就开始拒绝新的工作请求
4.2.2. 当请求花费的时间超过SLA规定的响应时长时,就可以卸下一些负载
4.2.2.1. 让系统的响应时间得到控制,而不是任其让调用方超时
4.3. 将负载均衡器用作减震器
4.4. 运用背压机制会更有效
5. 自动化机制
5.1. 自动化机制缺乏判断能力,一旦出错,就错得惊人
5.2. 自动化机制处理人类不擅长的事情
5.2.1. 重复的任务和快速的响应
5.3. 自动化机制不擅长的事情
5.3.1. 自动化机制不擅长的事情
6. 调速器
6.1. 使用调速器限制发动机的速度,即使动力源可以更快地驱动,调速器也可以防止它以不安全的转速运转
6.2. 调速器可以感知状态和时间,知道一段时间以来自身执行的操作
6.3. 调速器往往是不对称的
6.3.1. 在不安全的方向上施加阻力
6.3.2. 一旦超出范围,就可以运用调速器增加操作阻力
6.4. 使用调速器的意义在于放缓做事的速度,以便人工干预
6.4.1. 需要监控响应曲线的两端,当有情况发生时能够提醒人们,并给他们足够的可视化信息理解所发生的事情
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
2版
调速
背压
中间件
笔记
相关帖子
LaTeX学习笔记:学术文档排版
docker学习笔记
docker学习笔记
复健笔记 - Pascal酒吧的爆破
【Agent】MemOS 源码笔记---(5)---记忆分类
C#+VisionMaster 学习笔记(目录)-目录
Flink学习笔记:状态后端
.Net-Avalonia学习笔记(目录)
Flink学习笔记:反压
原始类型与泛型对比笔记
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
千斤顶
照妖镜
相关推荐
业界
LaTeX学习笔记:学术文档排版
0
254
叟澡帅
2025-12-14
安全
docker学习笔记
0
703
咒卖箴
2025-12-14
安全
docker学习笔记
1
786
汪玉珂
2025-12-14
安全
复健笔记 - Pascal酒吧的爆破
0
375
凤患更
2025-12-15
业界
【Agent】MemOS 源码笔记---(5)---记忆分类
0
98
能杜孱
2025-12-15
业界
C#+VisionMaster 学习笔记(目录)-目录
0
519
寂傧
2025-12-15
业界
Flink学习笔记:状态后端
0
897
嫁蝇
2025-12-16
业界
.Net-Avalonia学习笔记(目录)
0
191
恙髡
2025-12-16
业界
Flink学习笔记:反压
0
819
盒礁泅
2025-12-16
业界
原始类型与泛型对比笔记
0
759
晖顶蝇
2025-12-17
回复
(5)
水苯
2025-11-20 12:20:27
回复
使用道具
举报
照妖镜
程序园永久vip申请,500美金$,无限下载程序园所有程序/软件/数据/等
谢谢分享,试用一下
梁丘艷蕙
2025-12-7 07:20:50
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
东西不错很实用谢谢分享
频鹏凶
2025-12-8 04:40:21
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
热心回复!
丧血槌
7 天前
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
过来提前占个楼
饨篦
3 天前
回复
使用道具
举报
照妖镜
程序园永久vip申请,500美金$,无限下载程序园所有程序/软件/数据/等
过来提前占个楼
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
回复
本版积分规则
回帖并转播
回帖后跳转到最后一页
浏览过的版块
安全
签约作者
程序园优秀签约作者
发帖
尹疋
3 天前
关注
0
粉丝关注
17
主题发布
板块介绍填写区域,请于后台编辑
财富榜{圆}
3934307807
991124
anyue1937
9994893
kk14977
6845358
4
xiangqian
638210
5
韶又彤
9997
6
宋子
9982
7
闰咄阅
9993
8
刎唇
9993
9
俞瑛瑶
9998
10
蓬森莉
9951
查看更多
今日好文热榜
99
从 Tool Calling 到 A2A,再到 MCP. 大模型
373
BUUCTF 0ctf_2018_heapstorm2 PWN house of
289
仅通过一句提示词,就可以让大模型变得更有
978
生成式引擎优化(GEO优化)全维度技术指南
543
GEO优化实战指南2025:六大服务商核心能力
758
原始类型与泛型对比笔记
683
印度股票数据 API 对接实战指南(含实时行
657
Apipost分支功能:为API开发打造专属的成本
328
OpenCVSharp:学习人脸检测例子
550
JSAPIThree 加载单体三维模型学习笔记:Sim
124
读捍卫隐私09匿名指南
72
工作中常用函数详解与示例-PostgreSQL(其他
589
很顶!零成本克隆你的声音,这款B站开源神
680
go语言/golang 自动升级配置
965
函数式编程与传统编程的对比——基于java
233
pgAdmin 后台命令执行漏洞复现及分析(CVE-
858
度假村亲子水上乐园设备哪家质量好?
286
上下文协议(MCP)Java SDK 指南
699
Mac办公效率翻倍?Charmstone教你玩转多任
774
深耕上海14年,专业防水补漏:如何为厂房、