JMeter分布式测试:无法连接远程Slave节点
解决JMeter分布式测试"non-JRMP server at remote endpoint"错误
这个错误表明JMeter Master通过RMI协议连接Slave时,目标端口运行的并非JMeter的RMI服务,以下是常见原因及对应解决方法:
1. 确认Slave以RMI服务模式启动
Slave不能直接打开JMeter GUI,必须通过命令行启动RMI服务:
# Windows系统 jmeter-server.bat # Linux/macOS系统 ./jmeter-server
启动后检查控制台日志,出现RemoteEngine started: [SlaveIP]:1099类信息,说明RMI服务正常运行。
2. 排查端口占用问题
JMeter默认用1099作为RMI注册端口、4000作为数据传输端口,检查端口是否被其他程序占用:
# Windows查看端口占用 netstat -ano | findstr "1099" # Linux/macOS查看端口占用 lsof -i :1099
若端口被占用,可停止占用程序,或修改jmeter.properties配置自定义端口:
remote_port=1099 server.rmi.localport=4000
修改后重启Slave服务。
3. 保证Master与Slave的JMeter版本完全一致
JMeter的RMI通信对版本兼容性要求严格,Master和Slave必须使用完全相同的JMeter版本(包括小版本号),否则会出现协议不兼容问题。
4. 检查网络与防火墙设置
- 验证Master能正常ping通Slave的IP地址:
ping [SlaveIP] - 关闭Master和Slave的防火墙,或在防火墙上开放JMeter使用的端口(默认1099、4000,以及自定义端口)。
- 禁用Slave机器的VPN或代理,避免网络路由异常。
5. 核对JMeter配置文件
- 在Master的
jmeter.properties中,确认remote_hosts配置了Slave的正确IP和端口:remote_hosts=SlaveIP:1099 - 在Slave的
jmeter.properties中,确保SSL配置一致(若未启用SSL):
注意:Master和Slave的SSL开关状态必须统一,否则会导致连接失败。server.rmi.ssl.disable=true
6. 确保Java版本一致
Master和Slave需使用相同版本的Java,且Java版本符合JMeter要求(如JMeter 5.5+推荐Java 8或11),执行java -version确认版本匹配。
内容的提问来源于stack exchange,提问作者Kumaran
相关产品推荐
相关产品推荐

