Kafka создает раздел при тайм-ауте кластера AWS

#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).