apache-pulsar - getPartitionedTopicMetadata 时无法获得连接 - io.netty.channel.ConnectTimeoutException:连接超时
问题描述
我有一个基本的 Pulsar 应用程序,当我尝试连接到 Pulsar 时,我得到了这个异常:
2021-03-10 14:38:26.107 WARN 7 --- [r-client-io-1-1] oapulsar.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 WARN 7 -- - [al-listener-3-1] oapulsar.client.impl.PulsarClientImpl : [topic: persistent://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 集群。问题是什么?
解决方案
您的连接被防火墙或网络问题阻止。验证您是否可以my-pulsar-server-ms-tls.domain.com:6651
从您的环境建立到端点的连接。
如果您能够运行网络数据包转储(如 tcpdump),那么如果您无法建立连接,那应该很明显。
您也可以尝试运行curl my-pulsar-server-ms-tls.domain.com:6651
,如果您返回一些 html,则表示您可以访问服务器。但是,如果你得到Could not resolve host
,那么你被网络配置(例如丢失的路由)或防火墙阻止了。
推荐阅读
- javascript - 无法将 [object Object] 转换为 (class)
- image - 如何在颤振中以base64显示pdf?
- java - 为什么我的带有 android volley 的 http post 请求会引发错误(localhost)?
- mongodb - React Native 游戏、MongoDB 或 Firestore
- html - 如何在不更改样式的情况下转发 HTML 电子邮件
- c# - Xamarin Forms - 使用 ViewModels 保存和检索 Prism 导航堆栈
- jquery - 从 AJAX 加载刀片模板
- html - 我怎样才能有一个带有引导程序的水平滚动元素?
- python - 如何在 google colab(python,Jupyter notebook)中安装预定义的包(类)?
- azure - Azure RM Powershell 在所有资源组或应用服务中查找特定文件