链接: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.
-------------------------------------------------------------------
作者:Allen
链接:https://www.zhihu.com/question/66003492/answer/237259213
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。