目录
1、负载均衡技术
1.1、应用层负载均衡
1.2、传输层负载均衡
2、有状态和无状态问题
3、CDN内容分发网络
4、持久化技术
1、负载均衡技术
1.1、应用层负载均衡
1)http 重定向
HTTP 重定向就是应用层的请求转发。用户的请求其实已经到了HTTP重定向负载均衡服务器,服务器根据算法要求用户重定向,用户收到重定向请求后,再次请求真正的集群。
特点:实现简单,但性能较差。
2)反向代理服务器
在用户的请求到达反向代理服务器时(已经到达网站机房),由反向代理服务器根据算法转发到具体的服务器。常用的apache、nginx都可以充当反向代理服务器。
特点:部署简单,但代理服务器可能成为性能的瓶颈。
1.2、传输层负载均衡
1)DNS域名解析负载均衡
在用户请求DNS服务器,获取域名对应的IP 地址时,DNS服务器直接给出负载均衡后的服务器IP。
特点:效率比 HTTP重定向高,减少维护负载均衡服务器成本。但一个应用服务器故障,不能及时通知 DNS,而且 DNS 负载均衡的控制权在域名服务商那里,网站无法做更多的改善和更强大的管理。
2)基于 NAT的负载均衡
将一个外部IP地址映射为多个IP地址,对每次连接请求动态地转换为一个内部节点的地址。
特点:技术较为成熟,一般在网关位置,可以通过硬件实现。像四层交换机一般就采用了这种技术。
3)硬件负载均衡:F5
4)软件负载均衡:LVS、Nginx、HAproxy
5)静态算法(不考虑动态负载):
轮转算法:轮流将服务请求(任务)调度给不同的节点(即:服务器)。
加权轮转算法:考虑不同节点处理能力的差异。
源地址哈希散列算法:根据请求的源IP地址,作为散列键从静态分配的散列表找出对应的节点
目标地址哈希散列算法:根据请求目标IP 做散列找出对应节点。
随机算法:随机分配,简单,但不可控。
6)动态算法(考虑动态负载)
最小连接数算法:每个节点处理能力相同的情况下,新请求分配给当前活动请求数量最少的节
点。
加权最小连接数算法:考虑节点处理能力不同,按最小连接数分配。
加权百分比算法:考虑了节点的利用率、硬盘速率、进程个数等,使用利用率来表现剩余处理能力。
2、有状态和无状态问题
1)无状态服务(stateless service)
对单次请求的处理,不依赖其他请求,也就是说,处理一次请求所需的全部信息,要么都包含在这个请求里,要么可以从外部获取到(比如说数据库),服务器本身不存储任何信息。
2)有状态服务(statefulservice)
它会在自身保存一些数据,先后的请求是有关联的。
3、CDN内容分发网络
全称是 Content Delivery Network,即内容分发网络。
其基本思路是尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快、更稳定。
4、持久化技术
ORM(Object Relational Mapping):对象与关系数据之间的映射。
映射关系表
实现技术比对