Решил пройтись по мануалу по настройке Kafka, попробовав решив по сути хелловорлдную задачу: сделать передачу сообщений по сети, между двумя нодами (Windows 10 и Ubuntu 18.10).
Надо сказать, что дефолтный мануал по быстрому старту у Кафки очень даже хорош, в сравнении с тем же RabbitMQ, где надо осиливать кучу страниц, потом долго думать, что и как будет работать.
В принципе, всё относительно просто, для базовой настройки достаточно всем брокерам в *.properties (помимо стандартных настроек брокера) прописать строку
Надо сказать, что дефолтный мануал по быстрому старту у Кафки очень даже хорош, в сравнении с тем же RabbitMQ, где надо осиливать кучу страниц, потом долго думать, что и как будет работать.
В принципе, всё относительно просто, для базовой настройки достаточно всем брокерам в *.properties (помимо стандартных настроек брокера) прописать строку
zookeeper.connect=<адрес ноды zookeeper>
И всё будет работать. Да-да, помимо самой кафки, по-любому надо запускать Zookeeper, без него, Kafka не работает.
Теперь о некоторых граблях. Например, при настройке есть нюансы, такие как брокеров Kafka и серверов Zookeeper должно быть нечётное количество (т.е. в моём случае, минимум 3) для того, чтобы работали алгоритмы кворума и устойчивости к сбоям. Подробнее об этом рассказывается здесь. Я, по наивности, запустил зачем-то два брокера и, само собой, получил проблемы.
Также у кафки есть проблемы с удалением topics под Windows, например вот такая. Есть вроде бы как pull-request, который фиксит проблему, но в моём случае оказалось проще пересобрать кластер, чем чинить это. В проде, впрочем я бы, наверное, просто не стал бы удалять topic, а просто перестал использовать его, ибо при попытке запустить сервер ещё раз, он начал тупо падать. Проблема решилась только удалением всех логов и пересборкой кластера.
Ещё один раз упал демон и оставил открытым сокет. Само собой, потом он не захотел запускаться. Мелочь, но немного неприятно.
В остальном настраивать Kafka - одно удовольствие. Портов надо открывать совсем немного , документация по классам для обмена - тоже отличная, можно даже поставить в пример.
Комментариев нет:
Отправить комментарий