服务器架构演变
集群架构包括【单机架构,集群架构,分布式架构,微服务架构】
集群包括【负载均衡集群,高可用性集群,高性能集群】
集群架构演变过程: 单机架构->集群架构->分布式架构->微服务架构
单机架构: 所有业务,部署在同一服务器上; (一个人在做所有的事)
若服务器宕机会导致整个系统挂掉; 且单机服务器可以接受请求的数量有限;
集群架构: 同一个业务,部署在不同服务器上; (多个人在一起做同一件的事)
理解: 单机复制多份就成了集群; 即一堆计算机的集合,给用户提供同一服务,给用户感觉就像是不同计算机提供的服务;
集群中的每一台服务器称为"节点", 所有的节点构成一个集群;
优点:
(1)有组织性,一个节点(服务器)垮了,其它服务器顶上来;
(2)单机到集群的引进,无需修改代码,仅多部署几台服务器;
但集群引入了几个新问题:
1、每个服务器的都有自己的Ip, 每台服务器ip都不一样,用户如何知道到底要访问哪一台服务器?
2、session问题,之前用户登录信息,购物车信息等等都是存在服务器的内存中,服务器集群后如何保证每个服务器共享session数据?
集群分类:
LB负载均衡:用一台服务器作为分发器,经过算法计算,负责把用户的请求分发给后端比较空闲的服务器;【常用的软件 LVS,Haproxy,Nignx】
HA高可用性:通常为两台服务器,一台工作,另外一台作为备用,当提供服务的机器宕机,备用机将接替继续提供服务,不会因为某台服务器down机而停用;
HP高性能: 需要大量CPU运算
分布式架构: 一个业务拆分为多个子业务,部署在多个服务器上;(多个人在一起做不同的事协同完成一个特定任务)
理解:分布式的每一个节点都可以做集群;
优点:
(1)每一个节点完成不同的任务,一个节点跨了,则这个节点的业务不能被访问;
(2)缩短单个任务的执行时间提升效率;
微服务架构:
模块化开发
推荐这篇写的非常通俗易懂的文章, https://www.cnblogs.com/canflyfish/p/11637907.html