我正在尝试连接到亚马逊托管的流式Kafka集群。我一直在遵循有关创建主题https://docs.aws.amazon.com/msk/latest/developerguide/create-topic.html的教程。
该群集的VPC安全组允许任何入站和出站流量,因此我不怀疑这会阻止连接。
我已经尝试过此命令。
bin/kafka-topics.sh --create --zookeeper ZookeeperConnectString --replication-factor 3 --partitions 1 --topic AWSKafkaTutorialTopic
哪个会产生令人讨厌的错误
Exception in thread "main" kafka.zookeeper.ZooKeeperClientTimeoutException: Timed out waiting for connection while in state: CONNECTING
at kafka.zookeeper.ZooKeeperClient.$anonfun$waitUntilConnected$3(ZooKeeperClient.scala:242)
at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:23)
at kafka.utils.CoreUtils$.inLock(CoreUtils.scala:251)
at kafka.zookeeper.ZooKeeperClient.waitUntilConnected(ZooKeeperClient.scala:238)
at kafka.zookeeper.ZooKeeperClient.<init>(ZooKeeperClient.scala:96)
at kafka.zk.KafkaZkClient$.apply(KafkaZkClient.scala:1825)
at kafka.admin.TopicCommand$ZookeeperTopicService$.apply(TopicCommand.scala:262)
at kafka.admin.TopicCommand$.main(TopicCommand.scala:53)
at kafka.admin.TopicCommand.main(TopicCommand.scala)
我在做什么错,需要什么配置才能防止连接超时?
答案 0 :(得分:0)
我有同样的错误。一旦群集处于活动状态,请转到MSK服务并检查群集的安全组。然后,您必须在该安全组中添加入站规则,以允许所有来自客户端计算机安全组的流量。
这是本教程的最后一点:
https://docs.aws.amazon.com/msk/latest/developerguide/create-client-machine.html
答案 1 :(得分:0)
建议 - 如果您没有使用 TLS 并遵循 this tutorial,请确保在连接到集群时,您使用的是 Fragment
(使用端口 2181),该 ZookeeperConnectString
describe-cluster
方法,而不是 ZookeeperConnectStringTls
(使用端口 2182)