分布式负载机均衡技术中分类、原理、具体配置讲解

4747 526 2023-07-10

本站部分文章、图片属于网络上可搜索到的公开信息,均用于学习和交流用途,不能代表睿象云的观点、立场或意见。我们接受网民的监督,如发现任何违法内容或侵犯了您的权益,请第一时间联系小编邮箱jiasou666@gmail.com 处理。

本文讲了分布式负载机均衡技术中分类、原理、具体配置讲解。

本文分三个部分:

1、windows下负载机的配置

2、Linux下负载机的配置

3、遇到的问题


JMeter分布式执行原理如下图所示:

image.png

前提:

在调度机上安装JDK(我们这里使用1.8版本的)+Jmeter(3.3)

参考文档:http://www.cnblogs.com/beginner-boy/p/7707255.html

一、windows下负载机的配置(执行机)

1、在执行机上安装相同版本的JDk和Jmeter(参考调度机的安装)

注意:JDK和Jmeter都要配置环境变量

Jmeter 环境变量的配置:

在系统环境变量中添加:

JMETER_HOME

C:\jmeter\apache-jmeter-3.3\bin

在这里插入图片描述

在path系统变量中添加如下配置:

%JMETER_HOME%\bin;

在这里插入图片描述

2、在执行机上自定义端口号

1、进入Jmeter的bin目录,找到Jmeter.properties文件,打开该文件修改如下两个配置项,比如修改端口号为:1355(默认端口号为:1099)

server_port=1355

server.rmi.localport=1355

(记得取消注释)

2、启动执行机上的Jmeter-server.bat,如下图,端口号已经修改为:1355

3、在调度机上添加远程的负载机

进入Jmeter的bin目录,找到Jmeter.properties文件,进行如下配置:

image.png

4、在调度机上打开,Jmeter,如下图即可启动远程的负载机

image.png

5、验证:

启动后如果运行正常,在调度机上可以看到远端负载机的执行结果,如下图:

image.png

在执行机上有如下显示:

image.png

JMeter 是一个100%的纯 JAVA 应用,对机器 CPU 和内存的消耗比较大,在用 JMeter 做并发测试、负载测试、压力测试等时,模拟的用户数以千计,使用单台机器模拟所有用户会有些力不从心,甚至会引起JAVA内存溢出。

1、JMeter 分布式负载原理

这时,我们可以使用 JMeter 的分布式负载(也叫联机负载)功能,通过单个 JMeter 控制机(Controller)控制多个远程的 JMeter 负载机(Agent),使它们同步对服务器进行性能测试。

首先来看一下控制机和负载机的作用:

控制机(Controller):存放 JMeter 脚本的机器,负责在开始运行前把脚本发送到各个负载机,在运行后回收和统计各个负载机的运行结果。

负载机(Agent):被控制用来运行脚本的机器,负责产生负载。

2、配置负载机(Agent)

了解了控制机和负载机的作用后,接下来学习如何配置负载机。

  1. 负载机上安装和配置 JDK 环境变量,JDK 版本建议和控制机的保持一致,避免因版本不一致导致出现其他的问题;

  2. 负载机上配置 JMeter 环境,版本也建议和控制机保持一致;

  3. 启动负载机 JMeter bin 目录下的 jmeter-server.bat 文件;

    如果你使用的是4.0版本 JMeter ,在启动 jmeter-server.bat 文件时会出现上面的错误提示。这个是因为 JMeter 在4.0版本中,RMI的默认传输机制将使用SSL,SSL需要密钥和证书才能工作 。

    解决这个问题的方式有2种,可以生成 jks 格式的密钥文件,另外也可以去修改负载机 JMeter bin目录下的 jmeter.properties 配置文件。在这里,我们只学习修改配置文件的方式。

负载均衡有两方面的意义:

1)首先,大量的并发访问或数据流量分担到多台节点设备上分别处理,减少用户等待响应的时间;

2)其次,单个重负载的运算分担到多台节点设备上做并行处理,每个节点设备处理结束后,将结果汇总,返回给用户,系统处理能力得到大幅度提高。

简单来说就是:

1)将大量的并发处理转发给后端多个节点处理,减少工作响应时间;

2)将单个繁重的工作转发给后端多个节点处理,处理完再返回给负载均衡中心,再返回给用户。

目前负载均衡技术大多数是用于提高诸如在Web服务器、FTP服务器和其它关键任务服务器上的Internet服务器程序的可用性和可伸缩性。

总之,它的目的就通过调度集群,达到最佳化资源使用,最大化吞吐率,最小化响应时间,避免单点过载的问题。

内容概述:本文将从负载均衡技术的分类、技术原理、常见实现算法、常用方案等入手,为您详细讲解负载均衡技术的方方面面。这其中,四层和七层负载均衡技术最为常用,它们也是本文介绍的重点。

2、负载均衡分类

TCP/IP协议的OSI模型:

根据OSI模型可将负载均衡分为:

1)二层负载均衡(一般是用虚拟mac地址方式,外部对虚拟MAC地址请求,负载均衡接收后分配后端实际的MAC地址响应);

2)三层负载均衡(一般采用虚拟IP地址方式,外部对虚拟的ip地址请求,负载均衡接收后分配后端实际的IP地址响应);

3)四层负载均衡(在三层负载均衡的基础上,用 ip+port 接收请求,再转发到对应的机器);

4)七层负载均衡(根据虚拟的url或是IP,主机名接收请求,再转向相应的处理服务器)。

这其中,最常见的是四层和七层负载均衡,也是本文接下来介绍的重点。

当客户端发起请求,会经过层层的封装,发给服务器,服务器收到请求后经过层层的解析,获取到对应的内容。

下图是一个典型的HTTP请求分层传递原理:

3、二层负载均衡

二层负债均衡是基于数据链路层的负债均衡,即让负债均衡服务器和业务服务器绑定同一个虚拟IP(即VIP),客户端直接通过这个VIP进行请求。

那么如何区分相同IP下的不同机器呢?没错,通过MAC物理地址,每台机器的MAC物理地址都不一样,当负载均衡服务器接收到请求之后,通过改写HTTP报文中以太网首部的MAC地址,按照某种算法将请求转发到目标机器上,实现负载均衡。

这种方式负载方式虽然控制粒度比较粗,但是优点是负载均衡服务器的压力会比较小,负载均衡服务器只负责请求的进入,不负责请求的响应(响应是有后端业务服务器直接响应给客户端),吞吐量会比较高。

4、三层负载均衡

三层负载均衡是基于网络层的负载均衡,通俗的说就是按照不同机器不同IP地址进行转发请求到不同的机器上。

这种方式虽然比二层负载多了一层,但从控制的颗粒度上看,并没有比二层负载均衡更有优势,并且,由于请求的进出都要经过负载均衡服务器,会对其造成比较大的压力,性能也比二层负载均衡要差。

5、四层负载均衡

四层的负载均衡就是基于IP+端口的负载均衡:在三层负载均衡的基础上,通过发布三层的IP地址(VIP),然后加四层的端口号,来决定哪些流量需要做负载均衡,对需要处理的流量进行NAT处理,转发至后台服务器,并记录下这个TCP或者UDP的流量是由哪台服务器处理的,后续这个连接的所有流量都同样转发到同一台服务器处理。

对应的负载均衡器称为四层交换机(L4 switch),主要分析IP层及TCP/UDP层,实现四层负载均衡。

此种负载均衡器不理解应用协议(如HTTP/FTP/MySQL等等),常见例子有:LVS,F5。

6、七层负载均衡

七层的负载均衡就是基于虚拟的URL或主机IP的负载均衡:在四层负载均衡的基础上(没有四层是绝对不可能有七层的),再考虑应用层的特征,比如同一个Web服务器的负载均衡,除了根据VIP加80端口辨别是否需要处理的流量,还可根据七层的URL、浏览器类别、语言来决定是否要进行负载均衡。

举个例子,如果你的Web服务器分成两组,一组是中文语言的,一组是英文语言的,那么七层负载均衡就可以当用户来访问你的域名时,自动辨别用户语言,然后选择对应的语言服务器组进行负载均衡处理。

对应的负载均衡器称为七层交换机(L7 switch),除了支持四层负载均衡以外,还有分析应用层的信息,如HTTP协议URI或Cookie信息,实现七层负载均衡。此种负载均衡器能理解应用协议,常见例子有:  haproxy,MySQL Proxy。

上文就是小编为大家整理的分布式负载机均衡技术中分类、原理、具体配置讲解。

国内(北京、上海、广州、深圳、成都、重庆、杭州、西安、武汉、苏州、郑州、南京、天津、长沙、东莞、宁波、佛山、合肥、青岛)睿象云智能运维平台软件分析、比较及推荐。

上一篇:实时告警方法及系统与流程介绍,实时告警有几档资费
下一篇:Web端性能监控平台,浏览器端性能监控平台
相关文章

 发表评论

暂时没有评论,来抢沙发吧~