好好爱自己!

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

作者: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 @   立志做一个好的程序员  阅读(3571)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
历史上的今天:
2017-03-28 influxDB系列(二)
2017-03-28 influxDB系列(一)

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

点击右上角即可分享
微信分享提示