Новогодние праздники внесли свои коррективы и что-то "Буду стараться писать одну/две статьи в неделю" не получилось 🫠
Тем не менее, продолжим и поговорим о консольных инструментах Apache Kafka
❓ Почему именно консольных?
Есть большое количество продуктов, предоставляющих UI для Apache Kafka, среди них:
1⃣ UI for Apache Kafka, используемый в моих примерах
2⃣ AKHQ
3⃣ Confluent Control Centre
4⃣ Offset Explorer
5⃣ Kafka IDEA Plugin
Однако, судя по опыту, не всегда на проекте есть Web UI, иногда даже может не быть прямого доступа из локальной машины, а на сервере таких инструментов не будет
Помимо этого, данные инструменты умеют далеко не все, что предоставляют их консольные аналоги, а если и умеют, то платно
Поэтому переходим к консольным инструментам, а среди них:
1⃣ Kafka tools — инструменты входящие в состав самой Apache Kafka
2⃣ Kcat — предоставляет более удобный интерфейс, но требует отдельной установки
Давайте остановимся на Kafka tools, и посмотрим, какие операции мы можем выполнить:
📖 kafka-configs.sh
➖ Получить полную конфигурацию брокера/топика
➖ Добавить или обновить конфигурацию брокера/топика
➖ Удалить или сбросить до значения по умолчанию конфигурацию брокера/топика
📖 kafka-topics.sh
➖ Получить список всех топиков
➖ Получить информацию по топику
➖ Создать топик с заданной конфигурацией
➖ Увеличить топику количество партиций
➖ Удалить топик
➖ Удалить все сообщения в топике
📖 kafka-delete-records.sh
➖ Удалить сообщения в топике с самого начала до определенного offset'a
📖 kafka-console-consumer.sh
➖ Прочитать все сообщения с самого начала либо под определенной consumer-group
➖ Прочитать одно сообщение с определенной партиции и offset'a
📖 kafka-console-producer.sh
➖ Отправить сообщение с возможностью указания key,value,headers
➖ Если совместить kafka-console-consumer и kafka-console-producer, можно скопировать все сообщения из одного топика в другой [Например из DLT в основной, чтобы заново обработать сообщения]
📖 kafka-consumer-groups.sh
➖ Получить информацию о всех/одной consumer group
➖ Получить план по сбрасыванию offset'a для заданной consumer group
➖ Сбросить offset до самого начала или определенного значения для заданной consumer group
📖 kafka-log-dirs.sh
➖ Получить информацию об объеме данных в топике по каждой партиции, а также суммарно
📖 kafka-run-class.sh
➖ Получить текущий последний offset в топике
➖ Сделать partition log dump
📖 kafka-reassign-partitions.sh
➖ Сгенерировать и выполнить reassigning plan, по которому можно перераспределить партиции в кластере
📖 kafka-producer-perf-test.sh
➖ Провести нагрузочное тестирование со стороны Producer'a и получить детальный отчет
📖 kafka-consumer-perf-test.sh
➖ Провести нагрузочное тестирование со стороны Consumer'a и получить детальный отчет
И это далеко не все возможности, которые предоставляют консольные инструменты. Я привел лишь основные.
Вы можете попробовать запустить их сами, они доступны на 🐙Github, рекомендую сначала ознакомиться с quick-start.md
До новых встреч!
#sandbox_kafka #cheatsheet #console_tools
➿ Меню
➿ Подпишись: @developer_sandbox
Тем не менее, продолжим и поговорим о консольных инструментах Apache Kafka
❓ Почему именно консольных?
Есть большое количество продуктов, предоставляющих UI для Apache Kafka, среди них:
1⃣ UI for Apache Kafka, используемый в моих примерах
2⃣ AKHQ
3⃣ Confluent Control Centre
4⃣ Offset Explorer
5⃣ Kafka IDEA Plugin
Однако, судя по опыту, не всегда на проекте есть Web UI, иногда даже может не быть прямого доступа из локальной машины, а на сервере таких инструментов не будет
Помимо этого, данные инструменты умеют далеко не все, что предоставляют их консольные аналоги, а если и умеют, то платно
Поэтому переходим к консольным инструментам, а среди них:
1⃣ Kafka tools — инструменты входящие в состав самой Apache Kafka
2⃣ Kcat — предоставляет более удобный интерфейс, но требует отдельной установки
Давайте остановимся на Kafka tools, и посмотрим, какие операции мы можем выполнить:
📖 kafka-configs.sh
➖ Получить полную конфигурацию брокера/топика
➖ Добавить или обновить конфигурацию брокера/топика
➖ Удалить или сбросить до значения по умолчанию конфигурацию брокера/топика
📖 kafka-topics.sh
➖ Получить список всех топиков
➖ Получить информацию по топику
➖ Создать топик с заданной конфигурацией
➖ Увеличить топику количество партиций
➖ Удалить топик
➖ Удалить все сообщения в топике
📖 kafka-delete-records.sh
➖ Удалить сообщения в топике с самого начала до определенного offset'a
📖 kafka-console-consumer.sh
➖ Прочитать все сообщения с самого начала либо под определенной consumer-group
➖ Прочитать одно сообщение с определенной партиции и offset'a
📖 kafka-console-producer.sh
➖ Отправить сообщение с возможностью указания key,value,headers
➖ Если совместить kafka-console-consumer и kafka-console-producer, можно скопировать все сообщения из одного топика в другой [Например из DLT в основной, чтобы заново обработать сообщения]
📖 kafka-consumer-groups.sh
➖ Получить информацию о всех/одной consumer group
➖ Получить план по сбрасыванию offset'a для заданной consumer group
➖ Сбросить offset до самого начала или определенного значения для заданной consumer group
📖 kafka-log-dirs.sh
➖ Получить информацию об объеме данных в топике по каждой партиции, а также суммарно
📖 kafka-run-class.sh
➖ Получить текущий последний offset в топике
➖ Сделать partition log dump
📖 kafka-reassign-partitions.sh
➖ Сгенерировать и выполнить reassigning plan, по которому можно перераспределить партиции в кластере
📖 kafka-producer-perf-test.sh
➖ Провести нагрузочное тестирование со стороны Producer'a и получить детальный отчет
📖 kafka-consumer-perf-test.sh
➖ Провести нагрузочное тестирование со стороны Consumer'a и получить детальный отчет
И это далеко не все возможности, которые предоставляют консольные инструменты. Я привел лишь основные.
Вы можете попробовать запустить их сами, они доступны на 🐙Github, рекомендую сначала ознакомиться с quick-start.md
До новых встреч!
#sandbox_kafka #cheatsheet #console_tools
➿ Меню
➿ Подпишись: @developer_sandbox