知识卡片
透明RPC范式的争议催生分布式计算八宗罪
内容
既然本地套接字接口能统一支撑本地与跨机通信(见[[六种进程间通信机制按数据量 与跨机能力递进]]),早期设计者很自然地想把远程调用的通信细节隐藏在操作系统 底层,让远程调用在编码上和本地进程间通信完全一致。但1987年Andrew Tanenbaum 的论文对这种”透明RPC”提出一连串质问:谁是服务端谁是客户端、异常怎么处理、 多线程竞争怎么办、连接能否复用、参数字节序如何统一、链接中断怎么办……核心 观点是把本地调用和远程调用当同一件事处理,本身就是方向性错误,”透明化” 反而会增加复杂度而不是减少。这场争论最终在1994-1997年间由Sun公司的一批 专家(含套接字接口发明者Bill Joy、Java之父James Gosling)总结成”分布式 计算八宗罪”:网络可靠、延迟为零、带宽无限、网络安全、拓扑不变、只有一个 管理员、传输免费、网络同质——这八条全部是程序员在网络编程中容易想当然 忽略的假设,一旦当真,系统就会在生产环境里付出代价。这份清单确立了此后的 主流共识:RPC应该是语言层次的特征,而不该假装是IPC那样透明的系统层次特征。
参考来源
- 位置:《凤凰架构:构建可靠的大型分布式系统》第2章"访问远程服务"2.1.2节
"通信的成本"(源文件:_epub-src对应OEBPS/Text/chapter15.xhtml)
- 结论依据:原文引用Tanenbaum 1987年论文对透明RPC的一系列质问,以及Sun
公司专家1994-1997年总结的"分布式计算八宗罪",并明确指出这场争论的结果是
确立"RPC是语言层次特征而非系统层次特征"这一主流观点,直接支撑本卡片结论。
- 原始内容:The network is reliable. Latency is zero. Bandwidth is infinite.
The network is secure. Topology doesn't change. There is one administrator.
Transport cost is zero. The network is homogeneous.——8 Fallacies of
Distributed Computing