睿象云智能告警平台的分派策略
526
2023-07-10
本文讲了分布式负载机均衡技术中分类、原理、具体配置讲解。
本文分三个部分:
1、windows下负载机的配置
2、Linux下负载机的配置
3、遇到的问题
JMeter分布式执行原理如下图所示:
前提:
在调度机上安装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文件,进行如下配置:
4、在调度机上打开,Jmeter,如下图即可启动远程的负载机
5、验证:
启动后如果运行正常,在调度机上可以看到远端负载机的执行结果,如下图:
在执行机上有如下显示:
JMeter 是一个100%的纯 JAVA 应用,对机器 CPU 和内存的消耗比较大,在用 JMeter 做并发测试、负载测试、压力测试等时,模拟的用户数以千计,使用单台机器模拟所有用户会有些力不从心,甚至会引起JAVA内存溢出。
1、JMeter 分布式负载原理
这时,我们可以使用 JMeter 的分布式负载(也叫联机负载)功能,通过单个 JMeter 控制机(Controller)控制多个远程的 JMeter 负载机(Agent),使它们同步对服务器进行性能测试。
首先来看一下控制机和负载机的作用:
控制机(Controller):存放 JMeter 脚本的机器,负责在开始运行前把脚本发送到各个负载机,在运行后回收和统计各个负载机的运行结果。
负载机(Agent):被控制用来运行脚本的机器,负责产生负载。
2、配置负载机(Agent)
了解了控制机和负载机的作用后,接下来学习如何配置负载机。
负载机上安装和配置 JDK 环境变量,JDK 版本建议和控制机的保持一致,避免因版本不一致导致出现其他的问题;
负载机上配置 JMeter 环境,版本也建议和控制机保持一致;
启动负载机 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。
上文就是小编为大家整理的分布式负载机均衡技术中分类、原理、具体配置讲解。
国内(北京、上海、广州、深圳、成都、重庆、杭州、西安、武汉、苏州、郑州、南京、天津、长沙、东莞、宁波、佛山、合肥、青岛)睿象云智能运维平台软件分析、比较及推荐。
发表评论
暂时没有评论,来抢沙发吧~