jmeter分布式部署,master和slave不在同一局域网下,通信不通怎么办

学院的jmeter分布式部署课程,配置文件不懂怎么配置,希望老师能给解答一下:

环境:

master:Mac (ip: 10.1.4.56)
slave: centos7 (ip:101.201.67.83)

因为是个人练习,所以买了个云服务器,根据录播内容,

对slave节点,修改配置如下:

vim jmeter.properties

设置:
server.rmi.ssl.disable=true

对master节点设置如下:

vim jmeter.properties

配置:
server.rmi.ssl.disable=true
remote_hosts=101.201.68.94:1099(这个是slave节点的ip和port)

最后在master运行的时候,报错截图如下:
image

疑问:

1、录播课程中老师讲需要修改slave节点的
system.properties
的配置,讲课截图如下,不明白的是,这个ip配置的是slave节点的,还是master节点的?配置的目的是什么呢?


2、为什么会报错呢?我搜索的时候有的教程贴说必须把slave和master放在同一局域网下,不能用公网ip,这种说法是对的吗?因为我现在的slave和master是不在同一局域网下的。

先谢谢各位老师了 :rose:

1、目的是让java的rmi知道自己的ip
2、所有的服务器必须在一个网段

好的,谢谢老师。

请问所有服务必须在一个网段,是针对jmeter的分布式而言,还是对于所有的服务都是这样呢?

你的问题解决了吗?

我已尝试在不同网段下,搭建分布式JMeter压测,已成功。

  • Step1: 保证两台服务器之间TCP协议能之间互通。
  • Step2: 不用在配置中修改。通过命令行的方式,就可以实现压测。
  • Slave端:执行命令:jmeter-server -Jserver.rmi.ssl.disable=true -Dserver.rmi.localport=1099 -Djava.rmi.server.hostname=<local_public_ip> 这里的IP必须是能和对端能通信的IP.
  • Master端: 执行命令: jmeter.sh -n -t jmeter.jmx -l result.jtl -Jserver.rmi.ssl.disable=true -Djava.rmi.server.hostname=<local_public_ip> -R <remote_public_ip1> … 这里的IP是Slave的公网IP.

如果有问题,请回复。