关于负载均衡

一、负载均衡

1、负载均衡概述

网络->负载均衡:对云中多台服务器进行流量分发。访问流量->CLB->多台云服务器

2、实现过程/功能

设置虚拟服务地址,把同一地域多台云服务器资源虚拟成高性能、高可用的应用服务池。将客户端的网络请求分发到云服务器池中。
支持多种协议:TCP/UDP/TCP SSL/HTTP/HTTPS
检查云服务器中实例的健康状态,自动隔离异常状态的实例

3、应用效果

消除单点故障,提高可用性、稳定性,支持亿级连接和千万级并发。
适用于企业、社区、游戏、商务等
支持全局多地域负载均衡,保障异地容灾
扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性

4、典型架构

客户端层 浏览器或APP 从DNS-server拿到nginx的外网IP
负载均衡层 nginx(整个服务端的入口)负责反向代理与负载均衡工作
站点层 web-server 典型的用tomcat或者apache
服务层 service层 典型的是dubbo或者thrift等提供RPC调用的后端服务
数据层 包含cache和db

二、负载均衡相关技术

1、常用方式

1、HTTP重定向实现负载均衡
服务器IP地址封装在HTTP头的location字段中/响应消息状态码302,浏览器解析location并向该URL发起请求,指定服务器响应请求。
请求次数平均分配/调度服务器+后端服务器
2、DNS负载均衡
DNS域名服务器,把域名解析成IP地址。DNS根据调度策略选一个合适的IP返回给用户,用户向该IP发起请求。
请求次数平均分配:不了解每台服务器的负载情况
注意DNS的静态缓存,容易出现故障。
3、反向代理负载均衡 (各大公有云厂商常用)
反向代理服务器隐藏后端服务器,没有直接交互。故障转移。合理分配任务。
调度者压力大。

2、均衡算法/策略

1、轮询策略
(常用于DNS方案,向后端不同业务服务器轮流转发)
按顺序轮询/随机轮询/权重轮询(静态权重,动态权重)
2、负载度策略
负载均衡器转发流量时,先评估后端每台服务器的负载压力情况。
负载均衡器实现难,维护成本较高。
3、响应策略
优先转发给当前响应最快的后端服务器。需要不断统计当前每一台服务器的请求速度。
4、哈希策略
对请求中的某个信息进行hash,根据后端服务器数取模,算出相同结果的请求被转发到同一台后端服务器中。
对IP或ID进行哈希可以有利于处理缓存、回话。
5、最少连接路由
优先转发当前连接最少的服务器

1)【客户端层】到【反向代理层】的负载均衡,是通过“DNS轮询”实现的
2)【反向代理层】到【站点层】的负载均衡,是通过“nginx”实现的
3)【站点层】到【服务层】的负载均衡,是通过“服务连接池”实现的
4)【数据层】的负载均衡,要考虑“数据的均衡”与“请求的均衡”两个点,常见的方式有“按照范围水平切分”与“hash水平切分”

3、响应和请求分开处理

网络访问特点:请求报文极短/响应报文往往包含大量的数据

三、对比软件和硬件实现的负载均衡

硬件负载均衡(F5)可以理解为网络交换机,完全通过硬件来抗压力,每秒能处理百万级请求数,价格昂贵。
一般用在大型政企的流量入口最前端。

软件负载均衡:用软件的方式来分发和均衡流量。分为7层协议和4层协议。便宜
4层负载均衡:传输层做流量分发。LVS 几十万/秒
7层负载均衡:应用层做流量分发。Nginx 几万/秒
面向连接的->保证用户同一个请求的不同数据包发在同一个机器上
通过nginx可以扩展多个tomcat,通过lvs来扩展多个nginx

软件硬件
定义一台或多台服务器相应的操作系统上安装一个或多个附加软件来实现负载均衡直接在服务器和外部网络间安装负载均衡器
优点特定环境,配置简单,使用灵活,成本低廉功能和性能上优于软件方式
定义软件本身是成败关键;可扩展性受操作系统限制;操作系统本身bug引起安全问题成本昂贵

四、负载均衡指标分析

TPS(每秒新建连接数):负载均衡实例每秒新建 TCP 连接的能力。
最大并发连接数:在同一时刻,负载均衡实例能够承载的最大连接数。
QPS(query per second):也可以叫 RPS,每秒请求。请求数指客户端在建立完连接后,向 HTTP 服务发出 GET/POST/HEAD 数据包。
吞吐量:负载均衡实例可支持的总的流量带宽。

五、腾讯云CLB

客户根据自身需求购买不同的CLB实例配备到应用环境中,费用包括实例租用费用和后端服务器的带宽流量费。
实例:负载均衡/传统型负载均衡
使用场景:流量分发和消除单点故障/横向扩展/全局负载均衡
支持三种方式登陆管理CLB:控制台,CLI和API/SDK

六、补充

1、换新服务器是垂直扩展(Scale up);多买几台服务器部署系统,是横向扩展(Scale out)
2、关注点往往是可用性(允许挂掉部分机器),扩展性(可以增加机器),反向代理+扩展均衡
3、水平扩展scale out是解决扩展性问题的根本方案,DNS轮询是不能完全被nginx/lvs/f5所替代的

七、问题及整理

1、“58到家采用什么方案,58到家目前部署在阿里云上,前端购买了SLB服务(可以先粗暴的认为是一个lvs+keepalived的高可用负载均衡服务),后端是nginx+tomcat。”前后端分离的情况下怎么做负载均衡?(也就是腾讯云的分离型场景)
简单点可以把静态资源放到CDN上,后端接口放到负载均衡后面。
2、CDN和负载均衡?
网站流量不大的时候可以用CDN更划算

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值