负载均衡方案

article/2025/8/25 6:41:57

负载均衡方案

1、负载均衡概念

一台普通服务器的处理能力是有限的,假如能达到每秒几万个到几十万个请求,但却无法在一秒钟内处理上百万个甚至更多的请求。但若能将多台这样的服务器组成一个系统,并通过软件技术将所有请求平均分配给所有服务器,那么这个系统就完全拥有每秒钟处理几百万个甚至更多请求的能力。这就是负载均衡最初的基本设计思想。
负载均衡是由多台服务器以对称的方式组成一个服务器集合,每台服务器都具有等价的地位,都可以单独对外提供服务而无须其他服务器的辅助。通过某种负载分担技术,将外部发送来的请求按照某种策略分配到服务器集合的某一台服务器上,而接收到请求的服务器独立地回应客户的请求。负载均衡解决了大量并发访问服务问题,其目的就是用最少的投资获得接近于大型主机的性能。

2、相关技术

2.1、基于DNS的负载均衡

DNS(Domain Name System,域名系统),因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析)。DNS协议运行在UDP协议之上,使用端口号53。
DNS负载均衡技术是最早的负载均衡解决方案,它是通过DNS服务中的随机名字解析来实现的,在DNS服务器中,可以为多个不同的地址配置同一个名字,而最终查询这个名字的客户机将在解析这个名字时得到其中的一个地址。因此,对于同一个名字,不同的客户机会得到不同的地址,它们也就访问不同地址上的Web服务器,从而达到负载均衡的目的。
如下图:

这里写图片描述

优点:实现简单、实施容易、成本低、适用于大多数TCP/IP应用;
缺点:
1、 负载分配不均匀,DNS服务器将Http请求平均地分配到后台的Web服务器上,而不考虑每个Web服务器当前的负载情况;如果后台的Web服务器的配置和处理能力不同,最慢的Web服务器将成为系统的瓶颈,处理能力强的服务器不能充分发挥作用;
2、可靠性低,如果后台的某台Web服务器出现故障,DNS服务器仍然会把DNS请求分配到这台故障服务器上,导致不能响应客户端。
3、变更生效时间长,如果更改NDS有可能造成相当一部分客户不能享受Web服务,并且由于DNS缓存的原因,所造成的后果要持续相当长一段时间(一般DNS的刷新周期约为24小时)。

2.2、基于四层交换技术的负载均衡

基于四层交换技术的负载均衡是通过报文中的目标地址和端口,再加上负载均衡设备设置的服务器选择方式,决定最终选择的内部服务器与请求客户端建立TCP连接,然后发送Client请求的数据。

如下图:

这里写图片描述

client发送请求至4层负载均衡器,4层负载均衡器根据负载策略把client发送的报文目标地址(原来是负载均衡设备的IP地址)修改为后端服务器(可以是web服务器、邮件服务等)IP地址,这样client就可以直接跟后端服务器建立TCP连接并发送数据。

具有代表意义的产品:LVS(开源软件),F5(硬件)

优点:性能高、支持各种网络协议

缺点:对网络依赖较大,负载智能化方面没有7层负载好(比如不支持对url个性化负载),F5硬件性能很高但成本也高需要人民币几十万,对于小公司就望而却步了。

2.3、基于七层交换技术的负载均衡

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

如下图:

这里写图片描述

七层负载均衡服务器起了一个代理服务器的作用,client要访问webserver要先与七层负载设备进行三次握手后建立TCP连接,把要访问的报文信息发送给七层负载均衡;然后七层负载均衡再根据设置的均衡规则选择特定的webserver,然后通过三次握手与此台webserver建立TCP连接,然后webserver把需要的数据发送给七层负载均衡设备,负载均衡设备再把数据发送给client。

具有代表意义的产品:nginx(软件)、apache(软件)

优点:对网络依赖少,负载智能方案多(比如可根据不同的url进行负载)

缺点:网络协议有限,nginx和apache支持http负载,性能没有4层负载高

3、确定使用四层+七层负载结合方案

四层负载使用lvs软件或F5硬件实现。
七层负载使用nginx实现。

如下图是lvs+nginx的拓扑结构:

这里写图片描述
这里写图片描述

喜欢就点赞评论+关注吧

这里写图片描述

感谢阅读,希望能帮助到大家,谢谢大家的支持!


http://chatgpt.dhexx.cn/article/KMKuSfvG.shtml

相关文章

负载均衡的多种解决方案

以下为原文 当一个Web系统从日访问量10万逐步增长到1000万,甚至超过1亿的过程中,Web系统承受的压力会越来越大,在这个过程中,我们会遇到很多的问题。为了解决这些性能压力带来问题,我们需要在Web系统架构层面搭建多个层…

信息熵笔记

观察两个事件同时发生时获得的信息量应该等于观察到事件各自发生时获得的信息之和? 两个事件的信息量之和等于两个事件和的信息量? 两个随机变量熵的和大于两个随机变量和的熵 图片引自:https://blog.csdn.net/luoxuexiong/article/details/…

一文弄懂信息熵

引言 今天我们来探讨一下信息熵是怎么来的。 信息熵 信息的价值在于消除事件的不确定性,那事件的不确定性要怎么度量呢?答案就是信息熵(information entropy)。 比如你告诉别人你中了500万彩票,别人会大吃一惊,因为他被消除了…

信息熵 entropy

熵 最早是由热力学定义的一个函数,是普朗克来中国讲学的时候引入的。英文是“entropy”这个字,中文词汇中没有相关的字眼。当时是一个有名的姓胡的学者作为普朗克的翻译。因为这个熵“S”是定义为热量Q与温度的比值,所以当时他翻译是立刻创造…

信息熵学习笔记

简介 在信息论中,熵(entropy)是接收的每条消息中包含的信息的平均量,又被称为信息熵、信源熵、平均自信息量。 熵最好理解为不确定性的量度而不是确定性的量度,因为越随机的信源的熵越大。 比较不可能发生的事情&…

信息熵到底是什么

信息是我们一直在谈论的东西,但信息这个概念本身依然比较抽象。在百度百科中的定义:信息,泛指人类社会传播的一切内容,指音讯、消息、通信系统传输和处理的对象。 但信息可不可以被量化,怎样量化?答案当然…

什么是信息熵

熵 当一件事情(宏观态)有多种可能情况(微观态)时,这件事情(宏观态)对某人(观察者)而言具体是哪种情况(微观态)的不确定性叫做熵(entropy&#xff…

信息熵是什么

信息熵是什么 通过前两节的学习,我们对于决策树算法有了大体的认识,本节我们将从数学角度解析如何选择合适的“特征做为判别条件”,这里需要重点掌握“信息熵”的相关知识。 信息熵这一概念由克劳德香农于1948 年提出。香农是美国著名的数学…

单选按钮html图片,js实现的 图片单选按钮效果

【实例简介】用js实现的radio图片选择按钮效果。 【实例截图】 【核心代码】 用JS实现的radio图片选择按钮效果-脚本之家 .lanrentuku img{border:1px solid #008800;} function myFun(sId) { var oImg document.getElementsByTagName(img); for (var i 0; i < oImg.lengt…

html自定义单选按钮,美化表单——自定义单选按钮和复选按钮

大家都知道&#xff0c;在Web的Form中美化是最头痛的&#xff0c;尤其是表单中的“input[typecheckbox]”、“input[type"radio"]”、“input[typefile]”和select这些元素我们单单只使用CSS是无法匹配设计图的&#xff0c;像背景颜色或者背景图片&#xff0c;甚至说…

Android开发单选按钮功能,android实现单选按钮功能

在我们平时在注册个人信息的时候,经常会让我们选择是男生还是女生,那么这个单选框在Android中是怎么实现的呢?现在我们就来学习一下吧 首先我们要明白实现这样一个效果需要哪几部? 1、在layout布局文件中建立一个文件,我起的名字为activity_radio.xml 代码为: android:la…

单选按钮RadioButton

效果示例&#xff1a; MRadioButton.h //******************************************************** /// brief 自定义单选按钮 /// author y974183789gmail.com /// date 2021/9/18 /// note 支持自定义设置单选指示器位置 /// version 1.0.0 //***************************…

单选按钮(RadioButton)与 复选框(CheckBox)的功能与 用法

按照惯例&#xff0c;先看看两者的区别&#xff1a; 顾名思义&#xff0c;单选俺就就是只能选中一项的&#xff0c;而复选框是可以多选的。 一般来说&#xff0c;单选按钮是用于只有唯一答案的问题的答案选项中&#xff0c;而复选框用于一些可以多选的问题的答案中。 下面看看…

Android——单选多选按钮的使用详解

一&#xff1a;单选按钮 单选按钮类&#xff1a;RadioButton android&#xff1a;checked"true"设置默认选中 单选按钮控件通常与RadioGroup搭配使用。 RadioGroup是LinearLayout的子类&#xff0c;用于将多个单选按钮组合为一组。 同一按钮组内的单选…

Android 之 RadioButton (单选按钮) Checkbox (复选框)

本节引言&#xff1a; 本节给大家带来的是Andoird基本UI控件中的RadioButton和Checkbox; 先说下本节要讲解的内容是&#xff1a;RadioButton和Checkbox的1.基本用法 2.事件处理&#xff1b; 3.自定义点击效果&#xff1b; 4.改变文字与选择框的相对位置&#xff1b; 5.修改文字…

FTP服务器-vsftpd

FTP服务基础 FTP&#xff08;File Transfer Protocol,文件传输协议&#xff09;是典型的C/S结构的应用层协议&#xff0c;需要由服务端软件、客户端软件两个部分共同实现文件传输功能。 FTP连接及传输模式 FTP服务器默认使用TCP协议的20、21端口与客户端进行通信。 20端口用…

ftpvsftpd服务

一. ftp ftp即文件传输,它是INTERNET上仍然常用的最老的网络协议之一,它为系统提供了通过网络与远程服务器传输的简单方法,FTP服务器包的名称为vsftpd 二. 部署ftp服务 1. 安装ftp yum install -y vsftpd #安装vsftpd软…

VSFTPD服务器配置

文章目录 一、实验环境二、实验目的三、实验任务任务一&#xff1a;根据以下要求配置服务器1&#xff09; 配置FTP匿名用户的主目录为/var/ftp,该账户只能下载&#xff0c;不能上传。2&#xff09;建立一个名为abc、口令xyz的FTP账户&#xff0c;设置账户具有上传、下载权限。3…

ftpd服务常见配置总结(/etc/vsftpd/vsftpd.conf)

命令端口&#xff1a; listen_port21 注意&#xff1a;该信息默认没有&#xff0c;使用的话&#xff0c;需要用户自己添加。默认是21。 主动模式端口&#xff1a; connect_from_port_20YES 主动模式端口为20&#xff08;该项配置文件默认已经添加&#xff09; ftp_data_por…

Linux系统中vsftpd配置及如何添加vsFTPd用户和设置权限

vsftpd是一款在Linux发行版中最受推崇的FTP服务器程序。特点是小巧轻快&#xff0c;安全易用。 如果你想在你的Linux/Unix服务器上搭建一个安全、高性能、稳定性好的FTP 服务器&#xff0c;那么vsftpd可能是你的首选应用。vsftpd意思为“very secure FTP daemon(非常安全的FTP…