jmeter从站连接和配置错误

问题描述

我正在使用 JMeter 运行分布式负载测试。我配置了几个新服务器,但问题是它抛出错误“远程端点的非 JRMP 服务器”。

我按照正确的程序生成jks,启动master,启动slave等。在客户端和服务器,我都可以启动jmeter-server.bat文件,我看到两台机器都启动了。

请注意 - 防火墙已被禁用

奴隶: 创建的远程对象: UnicastServerRef2 [liveRef: [endpoint:192.168.0.3:3424,SSLRMIServerSocketFactory(host=192.168.0.3,keyStoreLocation=rmi_keystore.jks,type=JKS,trustStoreLocation=rmi_keystore.jks,alias=rmi) SSLRMIClientSocketFactory(keyStoreLocation=rmi_keystore.jks,alias=rmi),objID:[-39bc9d70:176812fac65:-7fff,1785184603070>p]]3

大师: 找到 ApacheJMeter_core.jar 创建的远程对象: UnicastServerRef2 [liveRef: [endpoint:192.168.0.1:27849,objID:[-763a229d:176811229c1:-7fff,-5773628807602928343]]]

有人可以建议是否有什么可以做的吗?所有机器都在同一个子网中。

ma​​ster 的 jmeter 日志: 2020-12-20 09:41:34,608 INFO o.a.j.e.distributedRunner:配置远程引擎:192.168.0.3 2020-12-20 09:41:34,608 INFO o.a.j.r.RmiUtils:禁用 RMI 的 SSL,因为 server.rmi.ssl.disable 设置为“true” 2020-12-20 09:41:34,624 错误 o.a.j.e.distributedRunner:无法在 192.168.0.3 创建引擎 java.rmi.ConnectIOException: 远程端点的非 JRMP 服务器 在 sun.rmi.transport.tcp.TCPChannel.createConnection(UnkNown Source) ~[?:1.8.0_241] 在 sun.rmi.transport.tcp.TCPChannel.newConnection(UnkNown Source) ~[?:1.8.0_241] 在 sun.rmi.server.UnicastRef.newCall(UnkNown Source) ~[?:1.8.0_241] 在 sun.rmi.registry.RegistryImpl_Stub.lookup(来源不明)~[?:1.8.0_241] 在 org.apache.jmeter.engine.ClientJMeterEngine.getEngine(ClientJMeterEngine.java:72) ~[ApacheJMeter_core.jar:5.2.1] 在 org.apache.jmeter.engine.ClientJMeterEngine.(ClientJMeterEngine.java:85) ~[ApacheJMeter_core.jar:5.2.1] 在 org.apache.jmeter.engine.distributedRunner.createEngine(distributedRunner.java:244) ~[ApacheJMeter_core.jar:5.2.1] 在 org.apache.jmeter.engine.distributedRunner.getClientEngine(distributedRunner.java:221) ~[ApacheJMeter_core.jar:5.2.1] 在 org.apache.jmeter.engine.distributedRunner.init(distributedRunner.java:94) ~[ApacheJMeter_core.jar:5.2.1] 在 org.apache.jmeter.gui.action.RemoteStart.doAction(RemoteStart.java:80) ~[ApacheJMeter_core.jar:5.2.1] 在 org.apache.jmeter.gui.action.ActionRouter.performAction(ActionRouter.java:88) ~[ApacheJMeter_core.jar:5.2.1] 在 org.apache.jmeter.gui.action.ActionRouter.lambda$actionPerformed$0(ActionRouter.java:70) ~[ApacheJMeter_core.jar:5.2.1] 在 java.awt.event.InvocationEvent.dispatch(UnkNown Source) [?:1.8.0_241] 在 java.awt.EventQueue.dispatchEventImpl(UnkNown Source) [?:1.8.0_241] 在 java.awt.EventQueue.access$500(来源不明)[?:1.8.0_241] 在 java.awt.EventQueue$3.run(UnkNown Source) [?:1.8.0_241] 在 java.awt.EventQueue$3.run(UnkNown Source) [?:1.8.0_241] 在 java.security.AccessController.doPrivileged(Native Method) ~[?:1.8.0_241] 在 java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(UnkNown Source) [?:1.8.0_241] 在 java.awt.EventQueue.dispatchEvent(UnkNown Source) [?:1.8.0_241] 在 java.awt.EventdispatchThread.pumpOneEventForFilters(UnkNown Source) [?:1.8.0_241] 在 java.awt.EventdispatchThread.pumpEventsForFilter(UnkNown Source) [?:1.8.0_241] 在 java.awt.EventdispatchThread.pumpEventsForHierarchy(UnkNown Source) [?:1.8.0_241] 在 java.awt.EventdispatchThread.pumpEvents(UnkNown Source) [?:1.8.0_241] 在 java.awt.EventdispatchThread.pumpEvents(UnkNown Source) [?:1.8.0_241] 在 java.awt.EventdispatchThread.run(UnkNown Source) [?:1.8.0_241]

解决方法

你有

  • server.rmi.ssl.disable=true - 在母版上
  • server.rmi.ssl.disable=false - 在奴隶身上

这会导致以下情况:master 尝试使用纯文本与 slave 通信,而 slave 期望 SSL 加密消息,因此它们无法“理解”彼此,因此通信失败。

您要么需要enable SSL on master、生成密钥库等,要么在从属设备上禁用它

更多信息: