好好爱自己!

什么是分布式系统,分布式系统例子?

作者:6hu2t32
链接:https://www.zhihu.com/question/66003492/answer/237094916
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
这个问题,要研究一下。

 

------------------------

Client/Server

When two parties communicate with each other, if they don't play the same role. We call one of them client, the other server. For example, Git, there could be many clones of same repository, and by design no clone is superior to others. However, when pushing some commits from clone A to clone B, clone A plays as the client, clone B plays as the server. And when pushing some commits from clone B to clone A, clone B plays as the client, clone A plays as the server.

Furthermore, they may play different roles at one layer, and play the same role at another. For example, BitTorrent, at TCP layer, two nodes play different roles if the connection is not opened simultaneously, however at application layer, they always play the same role.

So whether or not there are clients and servers has nothing to do with whether it is distributed or not.

Distributed

As opposed to centralized systems, distributed systems would distribute work load to more than one machine, to scale out or to tolerate failures or both. For example, Google's GFS is to scale out and to tolerate failures, but Chubby alone is just to tolerate failures.

Programming

Most often, a program which by design is centralized, would not automatically make good use of more than one machine, unless you have a sufficiently smart compiler.

-------------------------------------------------------------------

我觉得要先清楚什么是集中式的处理系统,然后它的瓶颈是啥,这也是为什么会出现分布式系统的原因。单机的计算能力和存储能力是有限的,面对海量的数据,往往需要很多机器共同协作处理,也就是集群来处理。这种场景会比单机复杂得多,比如硬盘存储的瓶颈会变成网络传输的瓶颈,不同机器的计算怎么协调,保证计算的正确性。这也就出现了各种分布式的解决方案,如分布式存储(如hadoop的hdfs),分布式计算(如spark)等。分布式系统可以从宏观看也是对外提供类似单机的服务,只是它能突破单机的处理瓶颈,理论上可以一直横向扩展机器来满足更大的处理需求。


作者:Allen
链接:https://www.zhihu.com/question/66003492/answer/237259213
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
posted @ 2018-03-28 13:48  立志做一个好的程序员  阅读(3540)  评论(0编辑  收藏  举报

不断学习创作,与自己快乐相处