多层负载均衡实现

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

相关推荐

  1. 个gradio服务实现负载均衡

    2023-12-21 06:44:03       65 阅读
  2. Nginx四负载均衡

    2023-12-21 06:44:03       27 阅读
  3. Nginx七负载均衡

    2023-12-21 06:44:03       13 阅读
  4. Nginx实现负载均衡

    2023-12-21 06:44:03       37 阅读

最近更新

  1. TCP协议是安全的吗?

    2023-12-21 06:44:03       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-21 06:44:03       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-21 06:44:03       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-21 06:44:03       20 阅读

热门阅读

  1. KNN算法详解与Python实现

    2023-12-21 06:44:03       37 阅读
  2. Hadoop伪分布式集群安装

    2023-12-21 06:44:03       39 阅读
  3. 定制@ResponseBody

    2023-12-21 06:44:03       30 阅读
  4. 【GIT】新建分支

    2023-12-21 06:44:03       40 阅读
  5. iOS 收集 SDK 内部 log

    2023-12-21 06:44:03       48 阅读
  6. Web 安全之文件上传漏洞详解

    2023-12-21 06:44:03       42 阅读
  7. 【ARM 安全系列介绍 3.2 -- Base64 介绍】

    2023-12-21 06:44:03       28 阅读
  8. 探索Node.js包管理器npm:介绍与使用指南

    2023-12-21 06:44:03       33 阅读
  9. 【工业智能】音频信号相关场景

    2023-12-21 06:44:03       31 阅读
  10. C语言实现寻找10000以内的完数

    2023-12-21 06:44:03       38 阅读
  11. Oracle中Null和‘‘的区别

    2023-12-21 06:44:03       38 阅读