#amazon-web-services #apache-kafka
#amazon-веб-сервисы #apache-kafka
Вопрос:
Я пытаюсь подключиться к управляемому потоковому кластеру kafka от Amazon. Я следил за руководством по созданию темы 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)
Что я делаю не так и какая конфигурация необходима, чтобы предотвратить тайм-аут соединения?
Комментарии:
1. forums.aws.amazon.com/thread.jspa?threadID=297702 Этот пост на Amazon Web Services должен помочь.
Ответ №1:
У меня была та же ошибка. Как только ваш кластер станет активным, перейдите в службу MSK и проверьте группу безопасности для кластера. Затем вам необходимо добавить входящее правило в эту группу безопасности, чтобы разрешить весь трафик, поступающий из группы безопасности вашего клиентского компьютера.
Это последний пункт в руководстве:
https://docs.aws.amazon.com/msk/latest/developerguide/create-client-machine.html
Комментарии:
1. Я сделал это для всех своих правил (каждое из них разрешает весь трафик от соответствующих sg), но я все равно получаю ошибку.
Ответ №2:
Предложение — если вы не используете TLS и следуете этому руководству, убедитесь, что при подключении к вашему кластеру вы используете ZookeeperConnectString
(с использованием порта 2181), который возвращается describe-cluster
методом, а не ZookeeperConnectStringTls
(который использует порт 2182).