欢迎来到电脑知识学习网,专业的电脑知识大全学习平台!

手机版

win7打开端口211出错-(电脑打开端口211出错怎么办)

软件应用 发布时间:2022-11-29 06:51:56
win77打开端口211出错 (电脑打开端口211怎么办?

Jmeter端口通过Java的RMI大家都知道默认端口是1099,用于技术实现。RMI即调用远程方法(Remote Method Invocation)支持存储在不同地址空间的程序级对象之间的通信,实现远程对象之间的无缝远程调用)。Java RMI 用于不同虚拟机之间的通信,可以在不同的主机或相同的主机上使用;一个虚拟机中的对象调用另一个虚拟机中的对象,但允许远程调用的对象通过一些标志进行标识。

RMI的交互图

RMI第一部分由三部分组成rmiregistry(JDK在bin),第二个是server端程序提供远程对象,第三个是client端程序,想调用远程对象的方法。
首先,先开始rmiregistry服务,启动时可指定服务监控端口,也可使用默认端口(1099,默认端口不配置)。
其次,server在本地,先实例化提供服务的实现类,然后通过RMI提供的Naming/Context/Registry(以下实例使用Registry)等类的bind或rebind该方法将才实例化的实现类注册到rmiregistry一个名字暴露在外面。
最后,client端通过本地界面和已知名称(即rmiregistry再次使用暴露的名称)RMI提供的Naming/Context/Registry等类的lookup方法从RMIService然后得到实现类。这样,虽然本地没有这类实现类,但所有方法都在接口中,可以实现远程调用对象的方法。

方法从客户对象中调用(stub)、远程引用层(Remote Reference Layer)和传输层(Transport Layer)向下传递给主机,然后通过传输层再次向上穿过远程调用层和骨干网(Skeleton),到达服务器对象。

说完这些,我们再来看看。Jmeter,其实Jmeter我们需要注意的端口有三个,一个是server_port(默认1099和server.rmi.port是用来覆盖server_port),这是每个压测节点(压测服务)都必须使用的端口,另一个是节点(Slave/Server)的server.rmi.localport(默认情况下没有设置,很多人也设置为1099),主节点(Master/Client)的client.rmi.localport(默认为随机,设置为0或不设置为随机),因为后两个端口是随机的,我们一般不注意,但如果是在防火墙下,或者是Docker在环境中,我们不允许随机端口,因此必须设置固定端口:

我们需要每个节点 或者 服务器打开两个端口(数据从主节点发送到节点,有时可以同时设置为1099)。
Server_port=1099
server.rmi.localport=50000

文件可在节点配置jmeter.properties中设置,启动节点时也可设置:

$JMETER_HOME/bin/jmeter-server \\ -Dserver.rmi.localport=50000 \\ -Dserver_port=1099

在客户端计算机上打开端口,从属服务器将结果发送给主服务器。
client.rmi.localport=60000

可在主服务中配置文件jmeter.properties也可以在压测命令中设置(如果在配置文件中也设置了端口,以配置文件为准):

jmeter -n -t sample-test/sample-test.jmx -Dclient.rmi.localport=60000 -R172.17.0.5,172.17.0.6,172.17.0.7

从上述关系调用的角度来看,我们也可以了解端口的设置关系,但如果我们严格按照上述方式配置,并且相应的端口也放在防火墙下,是否没有问题,不一定,我们也应该结合日志分析一些异常。

情况一:RMI打开附加端口,导致防火墙下主节点传输端口仍堵塞

我们在master设置了主控端client.rmi.localport=60000端口,但事实上,当我们按下测试时,过程将打开另外两个端口(60001和60002)。

为保证压测顺利,这两个端口也应放在防火墙下,否则压测时可能会卡住,如下日志:

SLF4J: Class path contains multiple SLF4J bindings.SLF4J: Found binding in[jar:file:/root/.jmeter/apache-jmeter-5.1.1/lib/log4j-slf4j-impl-2.11.1.jar!/org/slf4j/impl/StaticLoggerBinder.class]SLF4J: Found binding in[jar:file:/root/.jmeter/apache-jmeter-5.1.1/lib/ext/jmeter-plugins-dubbo-2.7.3-jar-with-dependencies.jar!/org/slf4j/impl/StaticLoggerBinder.class]SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.SLF4J: Actual binding is of type[org.apache.logging.slf4j.Log4jLoggerFactory]Creating summariser <summary>Created the tree successfully using weixin-Test.jmxConfiguring remote engine: 192.168.0.154Using local port: 1099Starting remote enginesStarting the test @ Thu Mar 25 08:52:37 CST 2021 (1616633557889)Remote engines have been startedWaiting for possible Shutdown/StopTestNow/HeapDump/ThreadDump message on port 4445

一般一直卡在里面Waiting中,这意味着端口不开放,或者端口不完全开放(本例属于此情况,只开放6万,没有额外的端口),或者java.rmi.server.hostname没有设置(多网卡没有设置)hostname也可能导致RMI我们可以看到连通信息被堵塞)jmeter.log发现日志无异常,slave发动机正常启动:

2021-03-25 08:52:40,543 INFO o.a.j.r.RmiUtils: Disabling SSL for RMI as server.rmi.ssl.disable is set to 'true'2021-03-25 08:52:40,543 INFO o.a.j.s.BatchSampleSender: Using batching (client settings) for this run. Thresholds: num=100, time=600002021-03-25 08:52:40,543 INFO o.a.j.s.DataStrippingSampleSender: Using DataStrippingSampleSender for this run2021-03-25 08:56:55,186 INFO o.a.j.e.ClientJMeterEngine: sent test to 192.168.0.154 basedir='.'2021-03-25 08:56:55,187 INFO o.a.j.e.ClientJMeterEngine: Sending properties{}2021-03-25 08:56:55,193 INFO o.a.j.e.ClientJMeterEngine: sent run command to 192.168.0.1542021-03-25 08:56:55,193 INFO o.a.j.e.DistributedRunner: Remote engines have been started

我们再到slave端看jmeter-server.log主节点拒绝连接日志:

2021-03-25 08:56:55,179 INFO o.a.j.e.RemoteJMeterEngineImpl: Creating JMeter engine on host 192.168.0.154 base '.'2021-03-25 08:56:55,179 INFO o.a.j.e.RemoteJMeterEngineImpl: Remote client host: 192.168.0.1822021-03-25 08:56:55,180 INFO o.a.j.e.StandardJMeterEngine: StandardJMeterEngine Start ... 192.168.0.1542021-03-25 08:56:55,182 INFO o.a.j.s.FileServer: Default base='/opt/apache-jmeter-5.1.1/bin'2021-03-25 08:56:55,185 INFO o.a.j.s.FileServer: Set new base='.'2021-03-25 08:56:55,189 INFO o.a.j.e.StandardJMeterEngine: Applying properties{}2021-03-25 08:56:55,190 INFO o.a.j.e.RemoteJMeterEngineImpl: Running test2021-03-25 08:56:55,193 INFO o.a.j.e.StandardJMeterEngine: Running the test!2021-03-25 08:56:55,193 INFO o.a.j.s.SampleEvent: List of sample_variables:[]2021-03-25 08:56:55,197 INFO o.a.j.e.u.CompoundVariable: Note: Function class names must contain the string: '.functions.'2021-03-25 08:56:55,197 INFO o.a.j.e.u.CompoundVariable: Note: Function class nam es

责任编辑:电脑知识学习网

软件应用