Ладно, мы убрали шутку Кафки с дороги в заголовке. Так что же такое Кафка и зачем ему нужен менеджер?
Apache Kafka 0.8.2 был выпущен вместе с новостями о том, что Yahoo делает Kafka Manager доступным в качестве версии с открытым исходным кодом.
Кафка-это отказоустойчивая, с низкой задержкой и высокой пропускной способностью распределенная система обмена сообщениями, которая используется в конвейерах передачи данных в нескольких компаниях. Первоначально он был создан в LinkedIn, где он является важной частью инфраструктуры LinkedIn и передает данные во все системы и приложения. Это проект Apache верхнего уровня, и в настоящее время он находится в стадии активной разработки.
В новой версии Kafka появился новый клиент производителя Java. До сих пор клиенты JVM Кафки не сильно изменились с момента первоначального выпуска, и вместе с новым Java-клиентом производителя команда переписывает клиент потребителя. Новый производитель удаляет различие между производителем “синхронизация” и производителем “асинхронность». Написав о новой версии в блоге Confluent, Неха Нархеде сказала, что
“по сути, все запросы отправляются асинхронно, но всегда возвращают объект будущего ответа, который возвращает смещение, а также любую ошибку, которая могла возникнуть при завершении запроса.”
В сообщении добавляется, что пакетная обработка теперь выполняется всякий раз, когда это возможно, что означает, что производитель синхронизации под нагрузкой может получить производительность не хуже, чем производитель асинхронности. Пакетирование означает, что все сообщения, поступающие во время выполнения отправки, группируются вместе.
В новой версии есть еще одна версия функции удаления темы. Это третья попытка получить рабочую функцию удаления темы. Нерхеде говорит
“Вы могли бы подумать, что удалить данные будет легко, а не удалить их будет сложнее всего. Но каждая из наших предыдущих попыток имела недостатки, которые появлялись при использовании. На этот раз было проведено значительное тестирование, и мы надеемся, что ваши данные действительно исчезнут. “
Основное улучшение новой версии заключается в управлении смещением. Кафка определяет, какие сообщения были потреблены, используя смещения, маркеры, которые он сохраняет для позиции потребителя в журнале сообщений. До сих пор такие маркеры хранились клиентом JVM в ZooKeeper. Когда потребители хотят часто обновлять свою позицию, это может стать узким местом, поэтому разработчики добавили собственные функции хранения смещений и новый API для использования этого. Это делает смещенное хранилище горизонтально масштабируемым.
Другие улучшения включают автоматическую перебалансировку лидера, контролируемое выключение и более надежные гарантии долговечности.
Наряду с выпуском Kafka 0.8.2, Yahoo делает Kafka Manager доступным в версии с открытым исходным кодом. Написав о выпуске в блоге Yahoo Engineering, Hiral P говорит, что Kafka используется многими командами в Yahoo, в том числе для конвейера аналитики в реальном времени, где кластер Kafka обрабатывает пиковую пропускную способность более 20 Гбит / с (сжатых данных).
Разработчики из Yahoo создали веб-инструмент под названием Kafka Manager, чтобы упростить обслуживание кластеров Kafka. Интерфейс упрощает идентификацию тем, которые неравномерно распределены по кластеру или имеют лидеров разделов, неравномерно распределенных по кластеру.
Он поддерживает управление несколькими кластерами, выбор предпочтительной реплики, повторное назначение реплики и создание темы. Менеджер был построен с помощью Scala, а веб-консоль основана на платформе Play, которая взаимодействует с моделью в памяти на основе актера, построенной с помощью Akka и Apache Curator. Разработчики Yahoo также перенесли некоторые утилиты из Apache Kafka для работы с фреймворком Apache Curator. Yahoo использует куратора для проверки состояния кластера из Zookeeper.
Утилита управления теперь доступна в виде версии с открытым исходным кодом на GitHub.