getPartitionedTopicMetadata 时无法获得连接 - io.netty.channel.ConnectTimeoutException:连接超时
Posted
技术标签:
【中文标题】getPartitionedTopicMetadata 时无法获得连接 - io.netty.channel.ConnectTimeoutException:连接超时【英文标题】:Could not get connection while getPartitionedTopicMetadata - io.netty.channel.ConnectTimeoutException: connection timed out 【发布时间】:2021-11-01 08:40:10 【问题描述】:我有一个基本的 Pulsar 应用程序,当我尝试连接到 Pulsar 时,我得到了这个异常:
2021-03-10 14:38:26.107 警告 7 --- [r-client-io-1-1] o.a.pulsar.client.impl.ConnectionPool:无法打开连接 到 my-pulsar-server-ms-tls.domain.com:6651 : io.netty.channel.ConnectTimeoutException:连接超时: my-pulsar-server-ms-tls.domain.com/10.80.13.38:6651 2021-03-10 14:38:26.212 警告 7 --- [al-listener-3-1] o.a.pulsar.client.impl.PulsarClientImpl :[主题: 持久性://myTenant/myNamespace/myTopic] getPartitionedTopicMetadata 时无法获得连接 -- 将尝试 100 毫秒后再次
我的 Pulsar 客户端非常基础:
PulsarClient.builder()
.serviceUrl(serviceUrl)
.authentication(AuthenticationFactory.token(authToken))
.tlsTrustCertsFilePath(serverCertificateFilePath.toString())
.enableTlsHostnameVerification(false)
.allowTlsInsecureConnection(false)
.build();
制作人也很基础,看起来像这样:
pulsarClient.newProducer(Schema.STRING)
.topic(topic)
.create();
我已验证令牌和 TLS 证书是正确的。我也尝试过从同一环境中连接消费者,并遇到了类似的异常,而且我知道使用相同代码的其他人能够从其他环境连接到同一个 Pulsar 集群。有什么问题?
【问题讨论】:
【参考方案1】:您的连接被防火墙或网络问题阻止。
验证您是否可以从您的环境建立到端点 my-pulsar-server-ms-tls.domain.com:6651
的连接。
如果您能够运行网络数据包转储(如 tcpdump),那么如果您无法建立连接,这应该会很明显。
您也可以尝试运行curl my-pulsar-server-ms-tls.domain.com:6651
,如果您返回一些 html,则表示您可以访问服务器。但是,如果您收到Could not resolve host
,则说明您已被网络配置(例如缺少路由)或防火墙阻止。
【讨论】:
以上是关于getPartitionedTopicMetadata 时无法获得连接 - io.netty.channel.ConnectTimeoutException:连接超时的主要内容,如果未能解决你的问题,请参考以下文章