首页 > 代码库 > 分布式与集群的区别

分布式与集群的区别

分布式与集群的区别: 

    分布式:分布式是指在不同的服务区中部署不同的服务模块,通过远程调用协同工作,对外提供服务。

    集群: 是指在不同的服务器中部署相同应用和服务模块,构成一个集群,通过负载均衡设备对外提供服务

 

分布式系统的定义

 简单来说就是一群独立计算机集合共同对外提供服务,但是对于系统的用户来说,就像是一台计算机在提供服务一样,分布式意味着可以采用更多的普通的计算机,组成分布式集群对外提供服务,计算机越多,cpu,内存,存储资源等也就越多,能够处力越大的并发访问量。

分布式的特性:

各个主机之间通信和协调主要通过网络进行,所以分布式系统中的计算机在空间上几乎没有任何限制,这些计算机可能被放在不同的机柜上,也可能被部署在不同的机房中,还可能在不同的城市中,对于大型网站可能分布在不同的国家和地区,但是无论空间上如何分布,一个标准的分布式系统应该具备以下几个应用特征:

   分布性:分布式系统中的多台计算机在空间位置上可意随意分布,系统中的多台计算机之间没有主从之分,即没有控制整个系统的主机,也没有受控的从机。

   透明性:系统资源被所有计算机共享,每台计算的用户不仅可以使用本机的资源,还可以使用本分布式系统中其他计算机的资源,

   同一性:系统中的若干台计算机可以互相协作来完成一个共同的任务,或者说一个程序可以分布在几台计算机上并行的运行。

   通信性: 系统中任意两台计算机都可以通过通信来交换信息。

和集中式系统相比,分布式系统的性价比更高,处理能力更强,可靠性更高,也有很好的扩展性,但是分布式在解决了网站的高并发问题的同时,也带来了一些其他问题,首先分布式的必要条件就是网络,这可能对性能甚至服务能力造成一定的影响,其次,一个集群中的服务器数量越多,服务器宕机的概率也就越大,另外由于服务在集群中分布式部署,用户的请求只会落到其中一台机器上,所以一旦处理不好就很容易产生数据的一致性问题。

 

  分布式设计开发注意问题:

 

系统如何拆分为子系统

如何规划子系统之间的通信

通信过程中的安全如何考虑

如何让子系统可以扩展

子系统的可靠性如何保证

如何实现数据的一致性

分布式系统有着漫无边际的扩展性,毕竟任何计算机都会有性能的极限,分布式系统可以通过不断扩张主机的数量以实现横向水平性能的扩展,相对集群的另一个好处就是巴菲特的一句名言 不要把鸡蛋放在一个篮子里。

 

分布式与集群的区别