前言
单体架构;集群概念;Nginx集群负载均衡;upstream指令参数;使用Keepalived提高吞吐量。
一、单体架构
单体架构—前端静态资源、后端API和数据库都放在同一台节点服务器。
单体架构—前端静态资源、后端API和数据库分别放在不同的节点服务器。
1.1 单体架构的优点
- 小团队成型即可完成开发-测试-上线
- 迭代周期短,速度快
- 打包方便,运维省事
1.2 单体架构面临的挑战
- 单节点宕机造成所有服务不可用
- 耦合度太高(迭代,测试,部署)
- 单节点并发能力有限
二、集群概念
- 计算机‘群体’构成整个系统
- 整个‘群体’构成一个整体,不能独立存在
- ‘人多力量大’,群体提升并发与可用性
组装汽车整车
电商平台集群
2.1 使用集群的优势
- 提高系统性能
- 提高系统可用性
- 可扩展性高
2.2 使用集群的注意点
- 用户会话
- 定时任务
- 内网互通
三、Nginx的集群负载均衡
3.1 单节点与集群
单节点:
集群:
3.2 OSI 网络模型
Nginx负载均衡,其实是七层负载均衡;LVS是四层负载均衡。七层和四层是什么概念呢?这就必须提到网络模型。网络模型是计算机网络基础的一部分内容,一般大学计算机系都会讲到此知识点,并且会作为考点。
网络模型就是 OSI(Open System Interconnect),意思为开放网络互联,是由国际标准化组织(ISO)和国际电报电话咨询委员会(CCITT)共同出版的,是一种网络互联模型,也是一种规范。
网络模型分为七层,也就是当用户发起请求到服务器接收,会历经七道工序,或者说用户利用互联网发送消息给另一个用户,也会历经七道工序。这七层可以分为如下:
层级 | 名称 | 说明 |
---|---|---|
第七层 | 应用层 | 与用户行为交互 |
第六层 | 表示层 | 定义数据格式以及数据加密 |
第五层 | 会话层 | 创建、管理以及销毁会话 |
第四层 | 传输层 | 创建、管理请求端到响应端(端到端)的连接 |
第三层 | 网络层 | 请求端的IP地址 |
第二层 | 数据链路层 | 提供介质访问与链路管理 |
第一层 | 物理层 | 传输介质,物理媒介 |
以上七层每层可以与上下相邻层进行通信。每一层都是非常复杂的,以举例的形式来阐述每一层的作用。
- 应用层:这是面向用户的,最靠近用户,为了让用户和计算机交互,在计算机里会有很多软件,比如eclipse,idea,qq,nginx等,这些都是应用软件,用户可以通过这些应用软件和计算机交互,交互的过程其实就是接口的调用,应用层为用户提供了交互的接口,以此为用户提供交互服务。在这一层最常见的协议有HTTP,HTTPS,FTP,SMTP,POP3等。Nginx在本层,为七层负载均衡。
举例:我要寄一封信给远在天边的老外LiLei,我会打开快