多层负载均衡实现

1、单节点负载均衡

1)站点层与浏览器层之间加入了一个反向代理层,利用高性能的nginx来做反向代理

2)nginx将http请求分发给后端多个web-server

优点:

1)DNS-server不需要动

2)负载均衡:通过nginx来保证

3)只暴露一个外网ip,nginx->tomcat之间使用内网访问

4)扩容实时:nginx内部可控,随时增加web-server随时实时扩容

5)能够保证站点层的可用性:任何一台tomcat挂了,nginx可以将流量迁移到其他tomcat

缺点:

1)延时增加+架构更复杂了:中间多加了一个反向代理层

2)反向代理层成了单点,非高可用

2、双机主从负载均衡

1)两台nginx组成一个集群,分别部署上keepalived,设置成相同的虚IP,保证nginx的高可用

2)当一台nginx挂了,keepalived能够探测到,并将流量自动迁移到另一台nginx上,整个过程对调用方透明

优点:相比单节点负载,解决了高可用的问题

缺点:

1)资源利用率只有50%

2)nginx仍然是接入单点

3、双主模式负载均衡(4+7层级负载)

LVS是一种集群(Cluster)技术:采用IP负载均衡技术和基于内容请求分发技术。调度器具有很好的吞吐率,将请求均衡地转移到不同的服务器上执行,且调度器自动屏蔽掉服务器的故障,从而将一组服务器构成一个高性能的、高可用的虚拟服务器。整个服务器集群的结构对客户是透明的,而且无需修改客户端和服务器端的程序。工作在四层,在内核空间工作,基于ipvs模块,不占用流量。LVS主要用来做四层负载均衡。

特点:

1)可以通过lvs来扩展多个nginx

2)通过keepalived+VIP+LVS的方案可以保证可用性

使用两台负载均衡服务器,互为主备,且都处于活动状态(这样达到不浪费服务器),同时各自绑定一个公网虚拟IP,提供负载均衡服务;当其中一台发生故障时,另一台接管发生故障服务器的公网虚拟IP(这时由非故障机器一台负担所有的请求)。

原理描述:

四层负载均衡工作在OSI模型的传输层,由于在传输层,只有TCP/UDP协议,这两种协议中除了包含源IP、目标IP以外,还包含源端口号及目的端口号。四层负载均衡服务器在接受到客户端请求后,以后通过修改数据包的地址信息(IP+端口号)将流量转发到应用服务器。

七层负载均衡工作在OSI模型的应用层,应用层协议较多,常用http、radius、dns等。七层负载就可以基于这些协议来负载。这些应用层协议中会包含很多有意义的内容。比如同一个Web服务器的负载均衡,除了根据IP加端口进行负载外,还可根据七层的URL、浏览器类别、语言来决定是否要进行负载均衡。

四层通过虚拟 IP + 端口接收请求,然后再分配到真实的服务器,七层通过虚拟的 URL 或主机名接收请求,然后再分配到真实的服务器。所谓的四到七层负载均衡,就是在对后台的服务器进行负载均衡时,依据四层的信息或七层的信息来决定怎么样转发流量。

方案配置参考网址:https://blog.csdn.net/tladagio/article/details/106380996

相关推荐
恩爸编程2 小时前
探索 Nginx:Web 世界的幕后英雄
运维·nginx·nginx反向代理·nginx是什么·nginx静态资源服务器·nginx服务器·nginx解决哪些问题
努力--坚持4 小时前
电商项目-网站首页高可用(一)
nginx·lua·openresty
loong_XL10 小时前
服务器ip:port服务用nginx 域名代理
服务器·tcp/ip·nginx
苹果醋312 小时前
SpringBoot快速入门
java·运维·spring boot·mysql·nginx
永卿00113 小时前
nginx学习总结(不包含安装过程)
运维·nginx·负载均衡
人类群星闪耀时14 小时前
大模型技术优化负载均衡:AI驱动的智能化运维
运维·人工智能·负载均衡
小湿哥17 小时前
ubuntu22.04 nginx配置下载目录,亲测成功
运维·nginx
ZVAyIVqt0UFji1 天前
go-zero负载均衡实现原理
运维·开发语言·后端·golang·负载均衡
BUG研究员_1 天前
LoadBalancer负载均衡和Nginx负载均衡区别理解
nginx·rpc·负载均衡
见欢.1 天前
Nginx解析漏洞靶场通关(nginx_parsing&CVE-2013-454)
nginx