写点什么

分布式计算的谬误在今天的意义有多大?

  • 2009-06-01
  • 本文字数:1068 字

    阅读完需:约 4 分钟

Sun Microsystemsg 的 Tim Bray 发表了一篇关于分布式计算八大谬误的博文;他指出,尽管(分布式计算的谬误)在分布式系统设计时具有深刻影响,然而“在构建大型网络系统的讨论中却很少被谈及”。

Tim 认为,一些谬误看起来不相关的原因可能是现今很多应用程序是基于 Web 技术创建的;而 Web 又让你相信了一些谬误。他在 Web 环境下逐一分析了这八项谬误,并解释了其中一些仍然还是谬误,而其他的在一定程度上有所减轻,或者至少因 Web 技术而呈现减轻的趋势。

1. 网络是可靠的

HTTP [……] 连接相当短暂;而传统的网络系统之间的连接,其生命周期几乎占据整个应用程序。

此外,GET、PUT 和 DELETE 具有幂等性,(对网络的可靠性)帮助很大,POST 不是幂等的。举个例子,如果一个 GET 操作碰到网络中断,只需要重新发送一次就好。它定义了清晰的修复和恢复的边界,以备应用程序在处理时使用。

2. 零网络延时

(Web 环境下情况其实更差),Web[……] 建立 / 销毁连接需要花时间,[而且] 很多用户已经将这些操作内部化,也清楚地知道通常情况下一个状态良好的服务器组装请求结果并送达响应所需的几秒钟和超负载情况下的行为之间的差别。

3. 无限制带宽

4. 零传输成本

从最近带宽上限的新闻可以明显看到。 或者如Tim 所说的“你会时不时看看到诸如此类的消息:‘对不起,您要传输的图片太大了’”。

5. 网络是安全的

这个谬误可能是 Web 处理的最差一个了。不管怎样,Web 技术意味着:应用开发者可以生存在受一个或多个谬误影响的环境里,但不包括这一个。

6. 稳定的拓扑结构

通过让我们大部分的应用程序都基于 Web,使得每个人都可以通过 URI 找到任何资源,我们都愿意分享解决路由和寻址问题的方法。[这] 意味着应用程序开发者几乎不需要考虑这个问题。

7. 有个管理员

很好,没有管理员。但是谁还关心有没有管理员?网络架构使寻址过程分散化了。

8. 网络是同构的

网络中没有 API 和数据模型,它只是一组规定了发送何种消息和期待返回何种消息的协议。所以,作为副作用,异构也不再是一个问题了。

作为博文的结束语,Tim 提醒到:

如果你要创建 Web 技术,你必须要考虑这些问题。但是,如果你只在网络技术上构建应用程序,那么大部分问题你都不需要考虑。不过,安全除外,请始终记得考虑安全。

查看英文原文: How Relevant Are The Fallacies Of Distributed Computing Today?


译者简介: 马国耀,2007 年毕业于北京大学信息技术学院,硕士学位。他感兴趣的技术领域是 SOA,ESB,J2EE,Java 编程,开源项目等。业余时间爱好五子棋,围棋。他热情乐观,愿与天下各路豪杰结为朋友,可以通过 maguoyao (at) gmail.com 联系到他。

2009-06-01 23:185089
用户头像

发布了 184 篇内容, 共 89.5 次阅读, 收获喜欢 8 次。

关注

评论

发布
暂无评论
发现更多内容

面试官:你是怎样进行react组件代码复用的

beifeng1996

React

前端二面react面试题(附答案)

beifeng1996

React

new Vue的时候到底做了什么

bb_xiaxia1998

Vue

当前API安全产品现状

阿泽🧸

API 11月月更

拿到大厂前端offer的前端开发是怎么回答面试题的

loveX001

JavaScript

一个程序员眼中的裁员潮

HoneyMoose

React源码分析3-render阶段(穿插scheduler和reconciler)

goClient1992

React

22道js输出顺序问题,你能做出几道

loveX001

JavaScript

前端面试中小型公司都考些什么

loveX001

JavaScript

面试官:说说React-SSR的原理

beifeng1996

React

主成分分析PCA与奇异值分解SVD-降维的实现方法

烧灯续昼2002

Python 机器学习 算法 sklearn 11月月更

裁员潮血洗硅谷是坏事还是好事

HoneyMoose

更快更稳更易用: Flink 自适应批处理能力演进

Apache Flink

大数据 flink

React源码分析2-深入理解fiber

goClient1992

React

前端代码规范常见错误 二

默默的成长

前端 Vue 3 11月月更

官宣|Apache Flink 1.16 发布公告

Apache Flink

80%的前端开发都答不上来的js异步面试题

loveX001

JavaScript

IO原理(二):多路复用

苏格拉格拉

reactor nio epoll IO多路复用 IO模型

Vue的computed和watch的区别是什么?

bb_xiaxia1998

Vue

自制操作系统日记(6):静态桌面初步

操作系统

最近面试被问到的vue题

bb_xiaxia1998

Vue

熬夜整理的vue面试题

bb_xiaxia1998

Vue

Docker Compose快速部署多容器服务实战

闫同学

Docker 容器 11月月更

Go易错集锦、优秀开源包、实战案例合集

Go学堂

Go 内容合集 签约计划第二季 技术专题合集

Python进阶(四十)应用matplotlib绘图实战

No Silver Bullet

Python matplotlib 11月月更

kubernetes下的jenkins如何设置maven

程序员欣宸

maven jenkins 11月月更

前端代码规范常见错误 一

默默的成长

前端 Vue 3 11月月更

React源码分析4-深度理解diff算法

goClient1992

React

通宵整理的react面试题并附上自己的答案

beifeng1996

React

分布式系统设计之常见的负载均衡算法

闫同学

负载均衡 11月月更 分布式系统设计

JS in CSS:一键支持响应式布局

iofod jude

前端 后端 低代码 iofod

分布式计算的谬误在今天的意义有多大?_SOA_Dilip Krishnan_InfoQ精选文章