Spring Pulsar Admin无法创建云Apache Pulsar主题,遇RemotelyClosedException
问题描述
我尝试使用Spring Pulsar连接云端Apache Pulsar实例创建主题,完成连接配置后持续报错:
Caused by: org.apache.pulsar.shade.org.asynchttpclient.exception.RemotelyClosedException: Remotely closed.
请问我的配置是否存在问题?
配置信息如下:
spring: pulsar: admin: service-url: http://localhost:8080/ authentication: plugin-class-name: org.apache.pulsar.client.impl.auth.AuthenticationTls param: tlsCertFile: /Users/user/Desktop/project/my-project/tls-ca-cert.pem tlsKeyFile: /Users/user/Desktop/project/my-project/tls-key.pem trustedCertFile: /Users/user/Desktop/project/my-project/tls-ca-cert.pem
Spring Boot版本:3.3.2
问题分析与解决方案
你的配置存在两处核心问题,是导致连接失败的直接原因:
Service-URL配置错误
你使用了http://localhost:8080/,但云端Pulsar实例启用了TLS认证(配置了AuthenticationTls),必须切换为https协议;同时localhost是本地地址,无法连接云端集群,需替换为云端Pulsar提供的实际Admin Service公网地址(格式通常为https://xxx.pulsar.example.com:8443)。TLS证书参数混淆
tlsCertFile应指定客户端证书文件(一般命名为client-cert.pem),你当前填写的是CA根证书,会导致服务端无法验证客户端身份。- 确保
tlsKeyFile对应的客户端私钥文件路径正确,且文件权限设置为仅当前用户可读(执行chmod 600 tls-key.pem),避免因权限不足读取失败。
修正后的配置示例:
spring: pulsar: admin: service-url: https://your-cloud-pulsar-admin-address:8443/ authentication: plugin-class-name: org.apache.pulsar.client.impl.auth.AuthenticationTls param: tlsCertFile: /Users/user/Desktop/project/my-project/client-cert.pem tlsKeyFile: /Users/user/Desktop/project/my-project/client-key.pem trustedCertFile: /Users/user/Desktop/project/my-project/tls-ca-cert.pem
额外排查要点:
- 确认云端Pulsar集群的Admin端口已对外开放,且你的机器IP在集群的访问白名单内。
- 检查证书文件是否完整、未过期,且与云端Pulsar集群使用的CA证书一致。
- 验证Spring Pulsar版本与云端Pulsar集群版本的兼容性(Spring Boot 3.3.2对应的Spring Pulsar版本为1.2.x,适配Pulsar 2.10及以上版本)。
内容的提问来源于stack exchange,提问作者J. Hu
相关产品推荐
相关产品推荐

