负载均衡(DNS、F5、反向代理、LVS)

1.负载均衡
负载均衡:将负载(大量请求)均匀的、平衡的分摊到多个服务节点上进行处理。

实现负载均衡有很多种手段,例如:DNS、硬件负载均衡设备、Nginx反向代理、LVS。

1.1.DNS
DNS:Domain Name System,域名系统,更加专业的名字为域名解析系统。

域名解析系统部署在DNS服务器上,提供域名解析服务。

简单来说,域名解析就是将一个域名解析成多个ip地址。

如下图是通过某个域名解析网站对www.baidu.com的解析结果:


最早的负载均衡就是利用搭建本地DNS服务器实现的,实现方式简单易懂,为同一个主机名分配多个映射 ,可采用轮循,随机等方式分配请求。

作为负载均衡的缺点

DNS中有缓存,但是如果机器出现故障,缓存不能及时更新。

此时,如果访问域名,返回的IP可能是一个正在故障的IP地址,最终导致所有访问该IP的请求都发送故障。

1.2.F5
硬件负载均衡设备又叫负载均衡器(Load Balancer),通常作为独立硬件存在。

负载均衡设备拥有非常好的负载均衡性能,他拥有众多的负载均衡策略(权重,动态比率,最快模式,最小连接数等),可以保证以相对较优的方式分配请求。

常见的负载均衡器有:F5、BIGIP。

一台负载均衡器的售价往往高达十几万甚至几十万,许多企业并不愿意为它买单。

1.3.Nginx反向代理
反向代理:服务器根据客户端的请求,从其关联的一组或多组后端服务器上获取资源,然后再将这些资源返回给客户端,客户端只会得知反向代理的IP地址,而不知道在代理服务器后面的服务器簇的存在。

可以通过Nginx服务器的反向代理功能实现负载均衡。

为什么叫反向代理呢?与正向代理有什么区别呢?可以通过下面的描述简单理解:

代理访问网络有三个角色:客户端、代理、服务器。
正向代理举例:fanqiang软件。反向代理举例:Nginx负载均衡。
无论正向还是反向,代理访问网络的基本流程:客户端—>代理—>服务器。
两者关键区别:代理服务器的代理对象。
正向代理中的代理是代替客户端去访问服务器。
反向代理中的代理是代替服务器去应对客户端的访问。
下面用一张图来简单描述两者区别:

1.4.LVS
LVS是章文嵩博士在1998年5月成立的自由软件项目,现在已经是Linux内核的一部分。

LVS实现负载均衡有多种,下面就其中的NAT和DR两种方式进行简单的描述。

更多关于LVS的内容请自行了解。

NAT

客户端发出用户请求。此时,请求报文的源IP为CIP,目标IP为VIP。
请求报文到达LVS,LVS修改数据包的目标IP为RIP。此时,请求的报文源IP为CIP,目标IP为RIP。
请求报文根据目标IP=RIP发送到后端服务器。
服务器处理完请求逻辑,开始构建响应报文回复给LVS。此时,请求的报文源IP为RIP,目标IP为CIP。
响应报文到达LVS,LVS修改数据包的源IP为VIP。此时,请求的报文源IP为VIP,目标IP为CIP。
响应报文返回至客户端。
DR

客户端发出用户请求。此时,请求报文的源IP为CIP,目标IP为VIP。
请求报文到达LVS,LVS将数据包的源MAC修改为DIPMAC,目标MAC修改为RIPMAC。此时,请求的报文源IP为CIP,目标IP为VIP。
请求报文根据目标MAC=RIPMAC发送到后端服务器。
服务器处理完请求逻辑,开始构建响应报文回复给客户端。此时,请求的报文源IP为VIP,目标IP为CIP。
响应报文通过虚拟网络接口lo传送至物理网络接口eth0之后发出,最终返回至客户端。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值