Я використовую kafka 0.10 без zookeeper . Я хочу отримати список тем kafka. Ця команда не працює , так як ми не використовуємо зоопарк:
bin/kafka-topics.sh --list --zookeeper localhost:2181
. Як я можу отримати той самий результат без zookeeper?
Відповіді:
Kafka використовує ZooKeeper, тому вам потрібно спочатку запустити сервер ZooKeeper, якщо у вас його ще немає.
Якщо ви не хочете встановлювати і мати окремий сервер zookeeper, ви можете скористатися зручним сценарієм, упакованим з kafka, щоб отримати швидкий і брудний екземпляр ZooKeeper з одним вузлом.
Запуск екземпляра Zookeeper з одним вузлом:
bin/zookeeper-server-start.sh config/zookeeper.properties
Запуск сервера Kafka:
bin/kafka-server-start.sh config/server.properties
Перелік тем, доступних на Кафці:
bin/kafka-topics.sh --list --zookeeper localhost:2181
localhost
eg ./kafka-topics.sh --list --zookeeper zookeeper:2181
. Або залежно від вашої конфігурації вам може знадобитися використовувати IP-адресу, наприклад./kafka-topics.sh --list --zookeeper 10.10.10.180:2181
Kafka 2.2 і новіших версій
Новіші версії Kafka більше не вимагають рядка підключення ZooKeeper для переліку тем, але можуть безпосередньо переходити через посередників Kafka. kafka-topics.sh
надається в bin/
папці під час завантаження Kafka. Щоб перелічити теми, виконайте такі дії:
bin/kafka-topics.sh --list --bootstrap-server <BROKER-LIST>
Для докеризованого кафки / охоронця зоопарку
docker ps
знайду вам ідентифікатор контейнера зоопарку
docker exec -it <id> bash
cd bin
./zkCli.sh
ls /brokers/topics
./zkCli.sh
не існує ... на зображенні
щоб побачити цю тему, якщо ми запустимо команду list topic:
$ bin/kafka-topics.sh --list --zookeeper localhost:2181
Щоб перевірити, чи дані приземляються в Кафці:
$ bin/kafka-console-consumer.sh --zookeeper localhost:2181 --topic twitterstream --from-beginning
Команди:
Щоб запустити kafka:
$ nohup ~ / kafka / bin / kafka-server-start.sh ~ / kafka / config / server.properties> ~ / kafka / kafka.log 2> & 1 &
Перерахувати всю тему на kafka;
$ bin / kafka-topics.sh --list --zookeeper localhost: 2181
Перевірити дані, що потрапляють на тему kafka, та роздрукувати їх;
$ bin / kafka-console-consumer.sh --bootstrap-server localhost: 9092 --topic your_topic_name - від початку
Kafka вимагає зберігача зоопарку, і там справді зберігається список тем, отже інструмент kafka-теми також повинен підключитися до zookeeper. kafka-clients apis в нових версіях більше не спілкуються безпосередньо з zookeeper , можливо, тому у вас складається враження, що налаштування без zookeeper можливе. Це не так , оскільки kafka покладається на це внутрішньо. Для довідки див .: http://kafka.apache.org/documentation.html#quickstart Крок 2:
Kafka використовує ZooKeeper, тому вам потрібно спочатку запустити сервер ZooKeeper, якщо у вас його ще немає
Клієнтам Kafka більше не потрібен zookeeper, але серверам Kafka він потрібен для роботи.
Ви можете отримати список тем за допомогою нового AdminClient API, але команда оболонки, яка постачається з Kafka, ще не переписана для використання цього нового API.
Інший спосіб використання Kafka без Zookeeper - це використання постачальника послуг SaaS Kafka-as-a-a-a-service, такого як Confluent Cloud, щоб ви не бачили та не працювали з брокерами Kafka (і необхідним серверним ансамблем Zookeeper).
Наприклад, на Confluent Cloud ви просто скористаєтесь наступною командою CLI для zookeeper:
ccloud topic list
Kafka є розподіленою системою і потребує Zookeeper. вам також потрібно запустити доглядача зоопарку. Дотримуйтесь "Швидкого старту" тут: https://kafka.apache.org/0100/documentation.html#quickstart
Для запуску Кафки потрібен зоопарк. охоронець зоопарку обов’язковий. все ж, якщо ви хочете переглянути список тем без zookeeper, то вам потрібен інструмент моніторингу kafka, такий як Kafka Monitor Tool, kafka-manager тощо.
Спочатку потрібно запустити сервер zookeeper. Тож спочатку перейдіть до kafka / bin / windows і запустіть
zookeeper-server-start.bat ../../config/zookeeper.properties
то в тій же папці з новим cmd windows запустіть сервери kafka, запустивши
kafka-server-start.bat ../../config/server.properties
Примітка: якщо ви запускаєте його вперше, тоді в ці файли слід внести певні зміни
то всередині kafka / bin / windows працює
kafka-topics.bat --zookeeper localhost:2181 --list
щоб перерахувати всі існуючі теми.
У вас є застаріла версія пакета з командами, які більше не приймають zookeeper, а швидше bootstrap-сервер як з'єднання. Тоді Confluent зв’яжеться із Zookeeper внутрішньо.
https://www.confluent.io/download/ (5.3 або вище)
Ви можете спробувати скористатися двома наведеними нижче командами та перерахувати всі теми Kafka
Використання REST Proxy API Confluent :
curl -X GET -H "Accept: application/vnd.kafka.v2+json" localhost:8082/topics
де localhost:8082
адреса проксі Кафка.
/usr/local/kafka/bin/kafka-topics.sh --list --zookeeper localhost:2181