所谓分布式,好比一个超级大的项目,同一个服务,把数据库的不同部分分开建立到不同的服务器上。以缓解数据库大量数据访问的压力。
为什么会出现分布式架构(产生背景):
目的是解决单台普通计算机的无法完成的存储、计算问题, 尤其是在升级服务器性能特别昂贵时。
很多大公司的业务量比较大(比如淘宝网、京东等),每天的访问量都达到几百万上千万,甚至上亿的访问量,在访问量不是很大的情况下,是可以通过提高单台服务器的配置来满足需求的。但是当单台服务器已经满足不了需求的时候就需要做分布式处理了。毕竟一台服务器的处理能力是有限的。如果分散到几台甚至几十台几百天电脑上,其优势就显现出来了。
优点:
1, 性能提升, 多节点并行工作。
2,可用性更高, 节点之间互不影响, 故障可以转移。
缺点:
分布式系统需要大量机器协作,面临诸多的挑战:
第一,异构的机器与网络:
分布式系统中的机器,配置不一样,其上运行的服务也可能由不同的语言、架构实现,因此处理能力也不一样;节点间通过网络连接,而不同网络运营商提供的网络的带宽、延时、丢包率又不一样。怎么保证大家齐头并进,共同完成目标,这四个不小的挑战。
第二,普遍的节点故障:
虽然单个节点的故障概率较低,但节点数目达到一定规模,出故障的概率就变高了。分布式系统需要保证故障发生的时候,系统仍然是可用的,这就需要监控节点的状态,在节点故障的情况下将该节点负责的计算、存储任务转移到其他节点
第三,不可靠的网络:
节点间通过网络通信,而网络是不可靠的。可能的网络问题包括:网络分割、延时、丢包、乱序。
相比单机过程调用,网络通信最让人头疼的是超时:节点A向节点B发出请求,在约定的时间内没有收到节点B的响应,那么B是否处理了请求,这个是不确定的,这个不确定会带来诸多问题,最简单的,是否要重试请求,节点B会不会多次处理同一个请求。
综上:分布式就是一台服务器上取数据,多台服务器共享
---------------------
作者:Chauncy Nong
来源:CSDN
原文:https://blog.csdn.net/ChauncyNong/article/details/80962958
版权声明:本文为博主原创文章,转载请附上博文链接!