jmeter集群5.4+默认强制要求TLS/RMI加密通讯
报错日志
Server failed to start: java.rmi.server.ExportException: Listen failed on port: 0;
java.io.FileNotFoundException: rmi_keystore.jks (No such file or directory)
意思是 JMeter worker 在启动 RMI 服务时找不到 rmi_keystore.jks 证书文件。
在 JMeter 5.4+ 之后,分布式模式 强制要求 TLS/RMI 加密,如果不提供 keystore,就直接挂掉。
解决方案
方案 A:关闭 TLS 校验(最简单)
加上环境变量 跳过 keystore 校验,在master/ worker 服务里加:
1 | jmeter-worker: |
这样 worker 启动时就不会去找 rmi_keystore.jks 了。
👉 适合测试环境/快速验证。
方案 B:配置 keystore(更安全,官方推荐)
生成 keystore 文件:
1
keytool -genkeypair -alias rmi -keyalg RSA -keysize 2048 -keystore rmi_keystore.jks -storepass changeit -validity 365
(注意存放到项目目录下,比如
./jmeter-ssl/)在
docker-compose.yml里挂载:1
2volumes:
- ./jmeter-ssl/rmi_keystore.jks:/opt/jmeter/bin/rmi_keystore.jks启动时设置系统属性:
1
2
3command: jmeter-server \
-Djavax.net.ssl.keyStore=/opt/jmeter/bin/rmi_keystore.jks \
-Djavax.net.ssl.keyStorePassword=changeit
👉 适合生产/正式压测场景。