我正在使用ApachePulsar的JavaSpring消费者,我的应用程序无法启动。
我们已经验证了以下内容:
脉冲星标记是正确的(我们正在使用pulsar令牌auth。)
我们可以使用telnet和curl命令命中目标ssl pulsar端口(6651),因此这不是防火墙或网络问题
该角色在pulsar中有足够的权限
我们找到了正确的脉冲星群的端点
我们正在为此环境在客户端中使用正确的信任证书
我们还可以使用以下客户机代码从另一个环境复制问题:
import org.apache.pulsar.client.api.PulsarClient;
PulsarClient client = PulsarClient.builder()
.serviceUrl("pulsar+ssl://pulsarUrl:6651/")
.tlsTrustCertsFilePath("path/to/ca.cert.pem")
.enableTlsHostnameVerification(true)
.allowTlsInsecureConnection(false)
.authentication(AuthenticationFactory.token("yourTokenHere"))
.build();
我们在日志中看到此异常:
2021年7月26日10:00:19-0600[15277 1]com.newrelic信息:使用默认收集器主机:collector.newrelic.com{“@timestamp”:“2021-07-26t16:01:31.184z”,“log.level:“error”,“message:”应用程序运行失败”,“ecs.version:”1.2.0”,“service.name:”productexamplewoker”,“event.dataset:”appexamplewoker.log”,“process.thread.name:“main”,“log.logger”:“org.springframework.boot.springapplication”,“log.origin”:{“file.name”:“springapplication.java”,“function”:“reportfailure”,“file.line”:826},“error.type”:“org.springframework.beans.factory.eancreationexception”,“error.message”:“创建在类路径资源[com/mycompany/example/ppw/service/config/serviceconfig.class]中定义的名为‘consumer’的bean时出错]:通过工厂方法示例化bean失败;嵌套异常为org.springframework.beans.beanInstationException:未能示例化[org.apache.pulsar.client.api.consumer]:工厂方法“consumer”引发异常;嵌套异常为org.apache.pulsar.client.api.pulsarclientexception:java.util.concurrent.executionexception:org.apache.pulsar.client.api.pulsarclientexception:连接已关闭“,“error.stack_trace”:[“org.springframework.beans.factory.beancreationexception:创建在类路径资源[com/overstock/example/ppw/service/config/serviceconfig.class]中定义的名为“consumer”的bean时出错]:通过工厂方法示例化bean失败;嵌套异常为org.springframework.beans.beanInstationException:未能示例化[org.apache.pulsar.client.api.consumer]:工厂方法“consumer”引发异常;嵌套异常为org.apache.pulsar.client.api.pulsarclientexception:java.util.concurrent.executionexception:org.apache.pulsar.client.api.pulsarclientexception:连接已关闭“,
可能是什么问题?
1条答案
按热度按时间kx5bkwkv1#
pulsar群集的配置方式要求禁用主机名验证。请设定
.enableTlsHostnameVerification(false)
在您的pulsar客户机中。