原由
在介绍集群前,我们先讲一下,为什么要用到集群。
在公司的起步阶段,一般都是使用单体结构模式而不是分布式架构,为什么呢,因为有一句话要记住,架构要根据业务需要来跟进,而不能过多的去追求架构。
使用单体部署项目,首先,可以节约成本,在早期用户量较少的情况下,将所有功能以及内容都部署在同一个节点,或者独立部署在多个单个节点。如果出现bug,或者需求改动,单体停机部署,大概只要十几分钟就可以全部搞定,因此出现问题可以从本地到上线,做到立马修复。
这首先可以减少团队成员成本,并且在开发-测试-上线流程方面可以做到快狠准。
并且迭代周期短,打包方便,速度快,早期运维可以让开发一起完成。
随着时间推移,企业的不断发展,用户量会随之大大的增多,单体架构就会面临着各种新的挑战:
1.单节点宕机造成服务不可用
随着用户量的增多,系统承载量会逐渐乏力,性能达到瓶颈,服务器压力不断提高。
一旦因为压力过高导致服务器的宕机或者长时间卡顿,对企业的发展来说,是会受到很大的影响。
因此,在平时的观察中,要提前预知到单体架构的不足,及时规划架构,否则在真的出现问题的时候,再去亡羊补牢,那就真的是为时已晚了。
2.耦合度太高
代码整体越来越臃肿,对于阅读性,拓展性,维护性会越来越差,这对开发,测试,运维人员来说,一但出现一些问题,解决起来都是非常的头疼。
3.单节点并发能力有限
单机并发量是有上限的,容易因为大量负载导致宕机
解决方案:
1.集群实现高可用
2.业务拆分(分布式、解耦)
3.负载均衡 降低服务器负载压力
集群概念
计算机‘集群’构成了整个系统(即将同一个业务部署在多个服务器上)。
对于用户来说,这是一个整体,并非独立存在的,他们只要访问一下,不管你后台如何操作,最后都是从后台得出的一个结果。而对于我们后台来说,他们是必须可以相互内网互通。
群体提升并发与可用性,降低单服务器的压力。
多个服务器,共同去做同样的事情就称之为集群。
如果每个节点,做不同的业务,就称之为分布式。
以上,分别是部署在不同服务器上的订单集群和商品集群,以及单体结构的任务。
好处:
可提高系统性能
提高系统可用性 :
即使一到两个节点宕机 ,也可以继续提供服务
可拓展新高 :
可以提前预支流量,通过增加节点来应对,类似于双十一的时候,过后可以减少服务器节点
注意点:
有一个特别要注意的地方,就是要相互内网互通,否则就无法构成集群。