负载均衡概述

负载均衡

负载均衡 建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。

四层负载均衡 vs 七层负载均衡

四层负载均衡(目标地址和端口交换)

主要通过报文中的目标地址和端口,再加上负载均衡设备设置的服务器选择方式,决定最终选择的内部服务器。

以常见的 TCP 为例,负载均衡设备在接收到第一个来自客户端的 SYN 请求时,即通过上述方式选择一个最佳的服务器,并对报文中目标 IP 地址进行修改(改为后端服务器 IP),直接转发给该服务器。TCP 的连接建立,即三次握手是客户端和服务器直接建立的,负载均衡设备只是起到一个类似路由器的转发动作。在某些部署情况下,为保证服务器回包可以正确返回给负载均衡设备,在转发报文的同时可能还会对报文原来的源地址进行修改。实现四层负载均衡的软件有:

F5:硬件负载均衡器,功能很好,但是成本很高。

lvs:重量级的四层负载软件。

nginx:轻量级的四层负载软件,带缓存功能,正则表达式较灵活。

haproxy:模拟四层转发,较灵活。

七层负载均衡(内容交换)

所谓七层负载均衡,也称为“内容交换”,也就是主要通过报文中的真正有意义的应用层内容,再加上负载均衡设备设置的服务器选择方式,决定最终选择的内部服务器。

七层应用负载的好处,是使得整个网络更智能化。例如访问一个网站的用户流量,可以通过七层的方式,将对图片类的请求转发到特定的图片服务器并可以使用缓存技术;将对文字类的请求可以转发到特定的文字服务器并可以使用压缩技术。实现七层负载均衡的软件有:

haproxy:天生负载均衡技能,全面支持七层代理,会话保持,标记,路径转移;

nginx:只在 http 协议和 mail 协议上功能比较好,性能与 haproxy 差不多;

apache:功能较差

Mysql proxy:功能尚可。

负载均衡算法**/策略**
轮循均衡(Round Robin)

每一次来自网络的请求轮流分配给内部中的服务器,从 1 至 N 然后重新开始。此种均衡算法适合于服务器组中的所有服务器都有相同的软硬件配置并且平均服务请求相对均衡的情况。

权重轮循均衡(Weighted Round Robin)

根据服务器的不同处理能力,给每个服务器分配不同的权值,使其能够接受相应权值数的服务请求。例如:服务器 A 的权值被设计成 1,B 的权值是 3,C 的权值是 6,则服务器 A、B、C 将分别接受到 10%、30%、60%的服务请求。此种均衡算法能确保高性能的服务器得到更多的使用率,避免低性能的服务器负载过重。

随机均衡(Random)

把来自网络的请求随机分配给内部中的多个服务器。

权重随机均衡(Weighted Random)

此种均衡算法类似于权重轮循算法,不过在处理请求分担时是个随机选择的过程。

响应速度均衡(Response Time 探测时间)

负载均衡设备对内部各服务器发出一个探测请求(例如 Ping),然后根据内部中各服务器对探测请求的最快响应时间来决定哪一台服务器来响应客户端的服务请求。此种均衡算法能较好的反映服务器的当前运行状态,但这最快响应时间仅仅指的是负载均衡设备与服务器间的最快响应时间,而不是客户端与服务器间的最快响应时间。

最少连接数均衡(Least Connection)

最少连接数均衡算法对内部中需负载的每一台服务器都有一个数据记录,记录当前该服务器正在处理的连接数量,当有新的服务连接请求时,将把当前请求分配给连接数最少的服务器,使均衡更加符合实际情况,负载更加均衡。此种均衡算法适合长时处理的请求服务,如 FTP。

处理能力均衡(CPU、内存)

此种均衡算法将把服务请求分配给内部中处理负荷(根据服务器 CPU 型号、CPU 数量、内存大小及当前连接数等换算而成)最轻的服务器,由于考虑到了内部服务器的处理能力及当前网络运行状况,所以此种均衡算法相对来说更加精确,尤其适合运用到第七层(应用层)负载均衡的情况下。

DNS 响应均衡(Flash DNS)

在此均衡算法下,分处在不同地理位置的负载均衡设备收到同一个客户端的域名解析请求,并在同一时间内把此域名解析成各自相对应服务器的 IP 地址并返回给客户端,则客户端将以最先收到的域名解析 IP 地址来继续请求服务,而忽略其它的 IP 地址响应。在种均衡策略适合应用在全局负载均衡的情况下,对本地负载均衡是没有意义的。

哈希算法

一致性哈希一致性 Hash,相同参数的请求总是发到同一提供者。当某一台提供者挂时,原本发往该提供者的请求,基于虚拟节点,平摊到其它提供者,不会引起剧烈变动。

IP 地址散列(保证客户端服务器对应关系稳定)

通过管理发送方 IP 和目的地 IP 地址的散列,将来自同一发送方的分组(或发送至同一目的地的分组)统一转发到相同服务器的算法。当客户端有一系列业务需要处理而必须和一个服务器反复通信时,该算法能够以流(会话)为单位,保证来自相同客户端的通信能够一直在同一服务器中进行处理。

URL 散列

通过管理客户端请求 URL 信息的散列,将发送至相同 URL 的请求转发至同一服务器的算法。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/589518.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[C#]使用ONNXRuntime部署一种用于边缘检测的轻量级密集卷积神经网络LDC

源码地址: github.com/xavysp/LDC LDC: Lightweight Dense CNN for Edge Detection算法介绍: 由于深度学习方法的快速发展,近年来,用于执行图像边缘检测的卷积神经网络(CNN)模型爆炸性地传播。但边缘检测…

【42页动态规划学习笔记分享】动态规划核心原理详解及27道LeetCode相关经典题目汇总

《博主简介》 小伙伴们好,我是阿旭。专注于人工智能AI、python、计算机视觉相关分享研究。 ✌更多学习资源,可关注公-仲-hao:【阿旭算法与机器学习】,共同学习交流~ 👍感谢小伙伴们点赞、关注! 《------往期经典推荐--…

计算机视觉工程师就业前景如何

计算机视觉主要涵盖了图像处理、模式识别等多个领域,可以应用到很多行业中。随着人工智能技术的快速发展,计算机视觉作为其中的重要分支之一,其就业前景非常广阔。 为进一步贯彻落实中共中央印发《关于深化人才发展体制机制改革的意见》和国…

Sensor Demosaic IP 手册PG286笔记

《 UG1449 Multimedia User Guide》中包含了大量的多媒体IP简介。 本IP 用于对bayer RGB(每个pixel只有单个R/G/B)做去马赛克处理,恢复成每个pixel点都有完整的RGB值。通过axi接口配置IP内部erg。 1、算法手册中的描述 提到了几种插值算法&…

MySQL基础笔记(1)基础理论

一.基本概念 DB:数据库,存储数据的仓库,数据是有组织地进行存储DBMS:操纵和管理数据库的大型软件 SQL:结构化查询语言,操作关系型数据库的编程语言,定义了一套操作关系型数据库的统一标准 &…

关于Python里xlwings库对Excel表格的操作(二十四)

这篇小笔记主要记录如何【如何使用xlwings库中的“api”类设置单元格边界线型、粗细、颜色】。前面的小笔记已整理成目录,可点链接去目录寻找所需更方便。 【目录部分内容如下】【点击此处可进入目录】 (1)如何安装导入xlwings库;…

C++的面向对象学习(9):文件操作

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 一、类的封装的多文件实现回顾二、文件操作1.对文件进行操作需要头文件<fstream>2.操作文件的三大类方法&#xff1a;读、写、读写 三、实现文本文件的读、写…

《2023年企业IoT和OT威胁报告》:物联网恶意软件攻击增长400%

内容概括&#xff1a; 物联网&#xff08;IoT&#xff09;设备无疑改变了我们生活、工作和管理运营技术&#xff08;OT&#xff09;环境的方式。总体而言&#xff0c;到2027年&#xff0c;全球物联网设备数量预计将超过290亿&#xff0c;比2023年的167亿大幅增加。设备和智能技…

SiteGround 注册无法接收短信验证码问题的解决方法

在购买SiteGround后&#xff0c;有时会出现需要进行账号验证的情况&#xff0c;要求通过短信或电话完成验证。然而&#xff0c;有些用户无论如何操作都无法收到短信验证码。以下是解决这个问题并成功完成服务器购买的方法。 Thank You for Your Purchase! Lets Verify Your Ord…

虚拟专线网络(IP-VPN)

虚拟专线网络(IP-VPN)&#xff0c;因为它的安全性和可靠性。通过亚洲领先的 IP VPN 提供商。享受更高的可管理性和可扩展性&#xff0c;在多个站点之间交付 IP 流量或数据包&#xff0c;拥有亚太地区最大的 IP 骨干网。 1&#xff0c;保证正常运行时间&#xff0c;在网络链路发…

C++数据结构-栈

目录 栈顺序栈链栈 栈 栈是允许在表的一端进行插入和删除的线性表。表中允许插入删除的一端是栈顶&#xff0c;栈顶的当前位置是动态变化的&#xff1b;不允许插入和删除的一端是栈底&#xff0c;栈底的位置是不变的。当表中没有元素时称为空栈&#xff0c;插入数据的运算称为…

字符串与模拟法

加密英文 输入一个字符串可用getline(cin,数组名) 字典序 在字符串中寻找子字符串 分糖果 代码 猴子选大王 代码 如果n号猴子被选中&#xff0c;则使得n号的猴子变成false&#xff0c;未出局的猴子为true。 if(pn1) p1;这个是将超出的下标重新变回1号&#xff0c;使其重新循…

PromQL语法

PromQL&#xff08;Prometheus Query Language&#xff09;是 Prometheus 内置的数据查询语言&#xff0c;它能实现对事件序列数据的查询、聚合、逻辑运算等。它被广泛应用在 Prometheus 的日常应用当中&#xff0c;包括对数据查询、可视化、告警处理当中。简单地说&#xff0c…

易趋产品升级(EasyTrack 11_V1.3) | 集成飞书、WPS、个性化设置,增强团队协作和用户体验

企业在项目管理过程中&#xff0c;经常会遇到项目信息同步不及时、沟通障碍以及管理软件使用不便捷等难题&#xff0c;导致团队协作效率低下。这种情况下&#xff0c;如果使用了多个办公软件&#xff08;如&#xff1a;钉钉、企业微信、项目管理软件等&#xff09;&#xff0c;…

35--JDK新特性

1、新语法结构 新的语法结构&#xff0c;为我们勾勒出了 Java 语法进化的一个趋势&#xff0c;将开发者从复杂、繁琐的低层次抽象中逐渐解放出来&#xff0c;以更高层次、更优雅的抽象&#xff0c;既降低代码量&#xff0c;又避免意外编程错误的出现&#xff0c;进而提高代码质…

【VB测绘程序设计】案例6——华氏温度与摄氏温度之间的转换程序(附源代码)

【VB测绘程序设计】案例6——华氏温度与摄氏温度之间的转换程序(附源代码) 文章目录 前言一、界面显示二、程序说明三、程序代码1程序变换2程序变换四、数据演示总结前言 本文主要掌握Val()函数以及String数据类型的应用,通过2个text来输入数据,2个Command控件来执行转换…

Java——功能开发思路

目录 前言一、准备工作—准备各类文件1、准备实体类、枚举类、常量类2、准备配置文件 二、先编写Controller三、再编写Service、serviceImpl四、再编写mapper后续敬请期待 前言 Java开发功能简单思路 一、准备工作—准备各类文件 提前知道需要用到哪些类可以提前准备好&#…

智能客服系统要素分析:提升客户满意度与工作效率的关键要素

智能客服系统是企业建立完善服务框架的重要工具。市面上存在着形态各异的各种客服系统&#xff0c;如何选择一款最适合自己企业的产品是很多采购人员想知道的问题。事实上&#xff0c;不同的智能客服系统之间的主要功能并未存在太大的区别&#xff0c;它们往往会在一些亮点功能…

09 标准库软件模拟I2C时序

引言&#xff1a; 你需要的I2C知识这里都有&#xff0c; 本文涵盖了I2C的基本知识和在各个主流平台的开发实例&#xff0c; 总之&#xff0c; 你需要的&#xff0c;都在这里&#xff0c; 后续我也会继续更新在嵌入式开发中常见的通信协议。 一、I2C的基本知识 1. I2C介绍 IIC总…

留言板(Mybatis连接数据库版)

目录 1.添加Mybatis和SQL的依赖 2.建立数据库和需要的表 3.对应表中的字段&#xff0c;补充Java对象 4.对代码进行逻辑分层 5.后端逻辑代码 之前的项目实例【基于Spring MVC的前后端交互案例及应用分层的实现】https://blog.csdn.net/weixin_67793092/article/details/134…