版权声明:原创作品,转贴请注明出处! https://blog.csdn.net/sa19861211/article/details/90441633
目录
一、负载均衡技术
各负载均衡技术对比
1. 硬件负载均衡
2. 软件负责均衡
3. DNS负载均衡
负载均衡策略:
LVS负载均衡策略
HAProxy负载均衡策略
Nginx负载均衡策略
二、高可用技术
三、成熟的Linux负载均衡和高可用架构
DBRD三种复制协议
一、负载均衡技术
各负载均衡技术对比:
1. 硬件负载均衡:
- F5 BIG-IP(推荐)
- Citrix NetScaler
2. 软件负责均衡:
技术 |
虚拟服务器实现 |
适用场景 |
LVS |
通过NAT实现虚拟服务器(VS/NAT) |
第四层负载均衡,真实服务器数量在不能超过20台。 |
通过IP隧道实现虚拟服务器(VS/TUN) |
第四层负载均衡负载。调度器只负责调度请求,而响应直接返回给客户。 |
通过直接路由实现虚拟服务器(VS/DR) |
第二层负载均衡。调度器和服务器都必须有一个物理网卡通过局域网相连。 |
HAProxy |
N/A |
支持第四层和第七层负载均衡。 |
Nginx |
N/A |
支持第四层和第七层负载均衡。 |
3. DNS负载均衡:
负载均衡策略:
LVS负载均衡策略:
负载均衡策略 |
策略说明 |
适用场景 |
简单轮询 |
将外部请求按顺序轮流分配到集群中的真实服务器上。 |
服务器性能相同 |
加权轮询 |
在简单轮询的基础上,根据分配的权重来调度访问请求。 |
服务器性能不同 |
最少连接 |
动态地将网络请求调度到已建立的连接数最少的服务器。 |
服务器性能不同 |
加权最少连接 |
在最少连接算法的基础上,具有较高权值的服务器将承受较大比例的活动连接负载 |
服务器性能差异较大 |
基于局部性的最少连接 |
根据请求的目标IP地址找出该目标IP地址最近使用的服务器,若该服务器是可用的且没有超载,则将请求发送到该服务器;若服务器不存在,或者该服务器超载且有服务器处于一半的工作负载,则用“最少连接”的原则选出。 |
主要用于Cache集群系统 |
带复制的基于局部性的最少连接 |
根据请求的目标IP地址找出该目标IP地址对应的服务器组,按“最小连接”原则从服务器组中选出一台服务器,若服务器没有超载,将请求发送到该服务器;若服务器超载,则按“最小连接”原则从这个集群中选出一台服务,将该服务器加入到服务器组中,将请求发送到该服务器。 |
主要用于Cache集群系统 |
目标地址散列 |
根据请求的目标IP地址,作为散列键(Hash Key)从静态分配的散列表找出对应的服务器,若该服务器是可用的且未超载,将请求发送到该服务器,否则返回空。 |
|
源地址散列 |
根据请求的源IP地址,作为散列键从静态分配的散列表找出对应的服务器,若该服务器是可用的且未超载,将请求发送到该服务器,否则返回空。 |
|
HAProxy负载均衡策略:
- roundrobin:简单轮询
- static-rr:加权轮询
- source:根据请求源IP,可以作为解决session同步问题的一种方法。
Nginx负载均衡策略:
- 简单轮询
- 加权轮询
- ip_hash
- url_hash
二、高可用技术
实现技术 |
适用场景 |
使用案例 |
Keepalived |
前端负载均衡器一般采用双机方案,保证前端负载均衡器的高可用。 |
|
Heartbeat |
在生产环境下,Heartbeat可以与DRBD一起应用于线上的高可用文件系统 |
MySQL官方推荐将其作为实现MySQL高可用的一种手段 |
DRBD |
高可用设备块。当将数据写入本地文件系统时,数据还将会被发送到网络中的另一台主机上,并以相同的形式记录在一个文件系统中。本地(主节点)与远程主机(备节点)的数据可以保证实时同步。 |
DRBD已被MySQL官方写入文档手册并作为推荐的高可用方案之一 |
三、成熟的Linux负载均衡和高可用架构
- LVS+Keepalived
- HAProxy+Keepalived
- Nginx+Keepalived
- DRBD+Heartbeat
- DRBD+Heartbeat+NFS:可以构建高可用文件服务器
DBRD三种复制协议
- 同步复制协议:只有在本地和远程磁盘都确定写入已完成时,主节点才会认为写入完成。
- 异步复制协议:只要主节点完成本地写操作就认为写操作完成,并且需要复制的数据包会被存储到本地TCP发送缓存中。
- 内存同步复制协议:当本地磁盘的写已经完成,并且复制数据包已经到达对应从节点,此时主节点才认为磁盘写已经完成。