Architecture of distributed computing
distributed computing是一个非常宽泛的概念,非常多的架构都可以归入到distributed computing的范轴中。本章梳理这些架构,需要注意的是,架构之间没有优劣之分,只有谁比谁更加适合于具体的问题。
Client-server VS peer-to-peer
Peer-to-peer 和 Client–server 这两种Architectures是 Distributed computing application 最最常见的两种architecture,有必要对这两种architecture进行对比。
在 wikipedia Peer-to-peer 中,一直拿他和 Client–server 进行对比,同样 Client–server 也专门总结了它和 Peer-to-peer 之间的差异。下面梳理一下设计到两者对比的内容的章节:
在"Peer-to-peer # Resilient and scalable computer networks"小节中从 single point of failure 中对比了两者。
在 Client–server model # Comparison with peer-to-peer architecture中对两者进行了对比。这一段的内容给我的一个重要提示是:Peer-to-peer是 decentralized system,但是Client–server architecture不是centralized system。
除此之外,在一些应用中,也能够看到对这两种架构的比较,比如:
1、git
在Progit book的1.1 Getting Started - About Version Control中就对比了Distributed version control和Centralized version control。
TODO P2P VS shared nothing architecture
我觉得两种的一个共性是: decentralized。
Centralized VS Decentralized
搜罗了一下,维基百科中关于这两者的文章有如下:
- wikipedia Decentralized computing
- wikipedia Centralized computing
- wikipedia Decentralised system
上述文章中,Decentralised system是最最通俗易懂的,前两篇质量一般。