架构设计(负载均衡)


架构设计(负载均衡)

          

             

                                

负载均衡

            

                          

# DNS服务器
浏览器使用域名(如www.taobao.com)访问网址,
DNS服务器解析域名,返回一个具体的IP地址

# 硬件负载均衡器(专门开发的负载均衡设备)
获取到ip地址后,客户端向该ip发送http请求,
硬件负载均衡器会将请求分发,发送到具体的后端服务集群

# 软件负载均衡器
后端服务集群收到请求后,软件负载均衡器将请求分发给某个后端服务器,
后端服务器处理请求后,将响应结果返回给客户端

             

               

                                

DNS负载均衡

         

A 记录:保存域名和ip地址之间的映射,以及保存时长

                          

        

CName:保存真实域名和A记录中主机名之间的映射关系

                          

          

DNS负载均衡策略

# 不同的DNS服务商可能支持不同的负载均衡策略
加权:一个域名映射到2个主机名,对这两个主机名设置不同的权重
地理位置:优先选择靠近请求位置的主机
延时:优先返回响应时间最短的ip
故障:优先返回故障率最低的ip返回

        

                 

                                

LVS负载均衡

     

客户端请求到达lvs集群,lvs选出某个服务器处理请求并返回响应结果

                          

负载均衡实现方式:VS/NAT、VS/TUN、VS/DR

# LVS负载均衡:四层负载均衡(IP层负载均衡)
# VS/NAT(virtual server via network translation):通过网络地址转换实现负载均衡
负载均衡器(调度机)收到客户端请求,请求的源地址cip、目标地址dip
调度机通过算法选择一个服务器处理请求,请求源地址cip、目标地址改写为vip
后端服务器返回相应数据,响应的源地址vip、目标地址cip
请求到达调度机后,源地址修改为vip、目标地址不变
VS/NAT将后端地址完全隐藏,但是请求响应都需要经过调度机中转,延时增大

# VS/TUN(virtual server via ip tunneling):通过ip隧道实现负载均衡
调度机收到客户端请求,此时源地址cip、目标地址vip
调度机在原有请求基础上,封装一层报文,目标地址变为rip
后端服务器收到请求,解析出封装的报文,源地址cip、目标地址vip
后端处理完成后返回响应数据,源地址vip、目标地址cip,不需要经过调度机中转
VS/TUN收到请求时会转发,返回响应时不需要转发,减少延时,但是ip隧道会消耗系统资源

# VS/DR(virtual server via direct routing):直接路由
调度机收到客户端请求,源地址cip、目标地址vip、mac地址为调度机的mac地址
调度机改写请求的mac地址为真实的后端服务器地址,其余不变
后端服务器处理完成后,源地址vip、目标地址cip,直接将请求返回给客户端,不需要经过调度机中转
VS/DR请求响应都不需要经过调度机中转,性能最好,
但是调度机、后端服务器需要在同一网段,对集群拓展有一定限制

# ip说明
cip(client ip):客户端ip地址
vip(virtual ip):虚拟ip,lvs集群与客户端通信的ip
dip(direct ip):调度器ip,lvs集群与后端服务器通信的ip地址
rip(real ip):后端服务器的ip地址

          

LVS负载均衡策略

轮询:将请求一次发送给后端服务器
加权轮询:给后端服务器设置权重,权重越大的处理的请求数越多
最少连接数:将请求发送给当前请求连接最少的后端服务器
加权最少连接:给后端服务器设置权重,请求发送给加权连接最少的后端服务器
局部最少连接:将请求发送给最近的最少连接的服务器
基于复制的最少连接:与局部最少连接类似,维护ip到一组服务器的映射,防止请求最近的服务器负载过重
源地址hash:根据客户端ip,使用hash算法算出请求转发的服务器
目标地址hash:根据目标ip,使用hash算法算出请求转发的服务器

            

               

                                

nginx负载均衡

     

应用层负载均衡(7层负载均衡):nginx代理后端应用,使用算法将请求转发给后端服务器

                          

        

nginx 负载均衡策略

轮询:依次将请求发给后端服务器
加权轮询:给后端服务器设置权重,依次发送请求
随机:将请求随机发给后端服务器
加权随机:给后端服务器设置权重,随机发送请求
最少连接数:将请求发送给最少连接的后端服务器
ip hash:根据请求ip进行hash,发送到对应的后端服务器
自定义hash:自定义hash规则(如对请求路径hash),发送给对应的后端服务器

             

                   

                                

负载均衡选择

    

负载均衡流量指标

DAU(daily active user):每天活跃的用户数
qps(query per second):每秒请求数
tps(transaction per second):每秒事务数
IOPS(input output per second):每秒输入输出速率
请求连接数:服务端、客户端同一时间建立的连接数

流量:每秒请求数量与请求大小、或者响应数量与响应大小
每秒输入流量= 每秒输入流量数 * 输入流量平均大小
每秒输出流量= 每秒输出流量 + 输出流量平均大小

            

估算流量

# DAU+连接数、TPS+连接数
假设DAU=1000000,平均每秒用户数 = DAU/(24*60*60)=11.6
每个用户每天操作20次,TPS = 11.6*20 = 232

# tps、连接数
单台服务器最大能处理的tps,可用压测获取
高峰时段需要处理的tps = 平时最大tps * 3 = 696
高峰时段最大处理的连接数 = 高峰时段tps * 2 = 1392

# 假设使用一个nginx、n个后端服务器
tps:nginx的最大tps大于696、每台后端服务器*n > 696
连接数:nginx最大连接数 > 1392、每台后端服务器*n > 1392

# 集群高可用,冗余备份
考虑到集群的高可用,需要冗余部署,多配制nginx、后端服务器备用,
防止出现单点故障,只配置一个nginx时,nginx服务故障,会导致整个服务不可用

            

                     

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值