多层负载均衡实现

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

相关推荐
苹果醋37 分钟前
数据库索引设计:在 MongoDB 中创建高效索引的策略
java·运维·spring boot·mysql·nginx
✎﹏赤子·墨筱晗♪2 小时前
从反向代理到负载均衡:Nginx + Tomcat 构建高可用Web服务架构
nginx·tomcat·负载均衡
叶绪2582 小时前
Nginx 反向代理 + Tomcat 集群:负载均衡配置步骤与核心原理
nginx·tomcat·负载均衡
杏花春雨江南5 小时前
腾讯云 CLB (Cloud Load Balancer) 为例,详细讲解如何配置 Nginx 集群
nginx·云计算·腾讯云
牛奶咖啡137 小时前
Nginx+Tomcat集群Redis共享session方案
redis·nginx·tomcat·redisson·分布式session共享方案·分布式session实现·jdk1.8环境安装
荣光波比9 小时前
Nginx 实战系列(四)—— Nginx反向代理与负载均衡实战指南
运维·nginx·云计算·负载均衡
岚天start9 小时前
K8s Ingress Annotations参数使用指南
nginx·kubernetes·k8s·ingress·ingress控制器
Mr. Cao code10 小时前
探索OpenResty:高性能Web开发利器
linux·运维·服务器·前端·nginx·ubuntu·openresty
荣光波比20 小时前
Nginx 实战系列(一)—— Web 核心概念、HTTP/HTTPS协议 与 Nginx 安装
linux·运维·服务器·nginx·云计算
m0_749299951 天前
Nginx主配置文件
java·服务器·nginx