Skip to content

Architecture of distributed computing

distributed computing是一个非常宽泛的概念,非常多的架构都可以归入到distributed computing的范轴中。本章梳理这些架构,需要注意的是,架构之间没有优劣之分,只有谁比谁更加适合于具体的问题。

Client-server VS peer-to-peer

Peer-to-peerClient–server 这两种Architectures是 Distributed computing application 最最常见的两种architecture,有必要对这两种architecture进行对比。

在 wikipedia Peer-to-peer 中,一直拿他和 Client–server 进行对比,同样 Client–server 也专门总结了它和 Peer-to-peer 之间的差异。下面梳理一下设计到两者对比的内容的章节:

1、Peer-to-peer

在"Peer-to-peer # Resilient and scalable computer networks"小节中从 single point of failure 中对比了两者。

2、Client–server model

Client–server model # Comparison with peer-to-peer architecture中对两者进行了对比。这一段的内容给我的一个重要提示是:Peer-to-peerdecentralized system,但是Client–server architecture不是centralized system。

除此之外,在一些应用中,也能够看到对这两种架构的比较,比如:

1、git

在Progit book的1.1 Getting Started - About Version Control中就对比了Distributed version controlCentralized version control

TODO P2P VS shared nothing architecture

我觉得两种的一个共性是: decentralized。

Centralized VS Decentralized

搜罗了一下,维基百科中关于这两者的文章有如下:

上述文章中,Decentralised system是最最通俗易懂的,前两篇质量一般。