1.什么是分布式?
关于“分布式系统”的定义,我们先看下老外是怎么说的。《分布式系统原理和范型》一书中是这样定义分布式系统的:“分布式系统是若干独立计算机的集合,这些计算机对于用户来说就像是单个相关系统”。
不同的业务模块部署在不同的服务器上或者同一个业务模块分拆多个子业务,部署在不同的服务器上
2.分布式的利弊?
利:
1. 可靠性、高容错性。
一台服务器的系统崩溃不会影响到其他的服务器。
2. 可扩展性
在分布式计算系统可以根据需要增加更多的机器。毕竟任何主机(哪怕是小型机、超级计算机)都会有性能的极限。而分布式系统可以通过不断扩张主机的数量以实现横向水平性能的扩展。
3. 灵活性
他可以很容易的安装、实施和调试新的服务。
4. 计算速度快
分布式计算机系统可以有多台计算机的计算能力,使得比其它系统有更快的处理速度。
5. 开放性
由于他是开放的系统,本地和远程都可以访问到该服务。
6. 高性能
相较于集中式计算机网络集群可以提供更高的性能,及更好的性价比。
弊:
1. 故障排除难度高,故障率高
由于分布在多台服务器上,故障排除和诊断问题难度较高。虽然单个节点的故障概率较低,但节点数目达到一定规模,出故障的概率就变高了。分布式系统需要保证故障发生的时候,系统仍然是可用的,这就需要监控节点的状态,在节点故障的情况下将该节点负责的计算、存储任务转移到其他节点
2. 软件支持少
更少的软件支持是分布式计算机系统的主要缺点。
3. 网络基础设施成本高
网络基础设置问题,包括传输、高负载、信息丢失问题。
4. 安全性问题
开放式系统的特性让分布式计算机系统存在着数据的安全性和共享的风险问题。
5.一致性
数据被分散或者复制到不同的机器上,如何保证各台主机之间的数据的一致性将成为一个难点。
6.不可靠的网络
节点间通过网络通信,而网络是不可靠的。可能的网络问题包括:网络分割、延时、丢包、乱序。
相比单机过程调用,网络通信最让人头疼的是超时:节点A向节点B发出请求,在约定的时间内没有收到节点B的响应,那么B是否处理了请求,这个是不确定的,这个不确定会带来诸多问题,最简单的,是否要重试请求,节点B会不会多次处理同一个请求。