之前一直搞不太懂分布式和集群的区别,今天看了一些论坛记录下,都是不同的网友的回答和描述,有点乱,看看就行
分布式和负载均衡,简单的说就是多个服务器跑不同的项目和多个服务器跑相同的项目。举个实际的例子。
因为我是做游戏服务端开发的我就用游戏举例子。魔兽世界知道吧,我们都知道魔兽世界有很多个区服,玩家通常都会选择不需要排队,延迟低的区服。所以,如果我们把游戏的逻辑服务端看成一个业务,通过增加多个服务器来跑游戏的逻辑服务端提供多个区服,这个就是负载均衡,用来解决服务器压力。
同样的,刚刚说的是以游戏服务端这个看成一个业务,然而一个完整的网络游戏可不止这么一个业务比如我们需要有一个公用的账号系统,因为我不可能换个区就要重新注册一个账号。我们还需要日志分析,用户行为分析,GM 工具等等各种其他的业务,这些业务肯定是跑在其他服务器上的,那么由这一堆业务所组成的完整的游戏运营服务,这个就是用分布式,用来解决模块的过度耦合。
然后,楼主你有一个误区,就是分布式主要是用来解决高并发或者其他因为系统资源不足所导致的瓶颈,这是错误的。我个人的观点是,分布式主要解决的是模块重用和系统边界问题,注重的是业务问题。依旧用上面那个例子,假如我们不采用分布式开发游戏整体业务,把账号系统在逻辑服务端里实现,那么就会出现换个区需要重新注册账号的问题。
什么是分布式系统?
分布式系统是一个硬件或软件组件分布在不同的网络计算机上,彼此之间仅仅通过消息传递进行通信和协调的系统。通俗的理解,所谓分布式系统,就是一个业务拆分成多个子业务,分布在不同的服务器节点,共同构成的系统称为分布式系统,同一个分布式系统中的服务器节点在空间部署上是可以随意分布的,这些服务器可能放在不同的机柜中,也可能在不同的机房中,甚至分布在不同的城市。