在开始的时候,网站都是一个简单的架构,例如LAMP的架构,就在一台服务器上部署了各种应用程序,访问的人少,服务器能轻松应对。
当请求量增大的时候,服务器的资源已经扛不住这种压力了,从而将相关的应用放在不同的服务器上,提供更好的性能,当请求量进一步增大的时候,应用jboss和mysql可能都不能抗住这种请求压力了,从而也就引出了集群的由来。集群主要的使用场景是为了分担请求的压力,也就是在几个服务器上部署相同的应用程序,来分担客户端请求,当压力进一步增大的时候,可能在需要存储的部分如mysql无法面对很多的写压力,因为在mysql做成集群之后,主要的写压力还是在master的机器上面,其他slave机器无法分担写压力,从而这个时候,也就引出来分布式。
分布式的主要应用场景是单台机器已经无法满足这种性能的要求,必须要融合多个节点,并且节点之间是有交互的,相当于在写mysql的时候,每个节点存储部分数据,也就是分布式存储的由来,在存储一些非结构化数据,例如静态文件,图片,pdf,小视频,这些也就是分布式文件系统的由来。
废话了那么多,那么到底分布式和集群有啥区别呢?
集群和分布式都是由多个节点组成,但是集群之间的通信协调基本不需要,而分布式各个节点的通信协调必不可少。
集群主要是为了应对请求压力的分担,从而有了LB,负载均衡集群;为了应对可用性,从而有了HA,高可用性集群;为了更强的性能,从而有了HP,高性能集群;为了高并发大规模性能,从而有分布式系统集群。