Hello world - в apache kafka - dots and brackets блог

Hello world - в apache kafka - dots and brackets блог

Ну що, саме час відправити якихось даних через Apache Kafka. Але спочатку, зрозуміло, його потрібно встановити.

Установка Кафки настільки проста, що в цей раз я відійду від свого звичайного правила і справді поясню, як його встановлювати. Отже, чотири кроки:

  • Встановити Java Development Kit (чомусь часто вже виявляється встановленим)
  • Завантажити архів з Кафкою
  • Розпакувати (tar - xzf kafka_2. 11 - 0.10.1.0.tgz в * nix системах)
  • Усе. Кафка готовий.

Чесно, це дійсно все. Але перш, ніж ми підемо далі, варто озирнутися:

Look inside kafka folder

У комплекті з Кафкою йде не так багато папок, і нам знадобляться всього дві з них: bin. де зберігаються шелл-скрипти і config. де ховаються файли конфігурації сервісів.

Як запустити Kafka

Як я згадував минулого разу. навіть самотній кафкіанський брокер - це кластер, так що його запуск трохи відрізняється від запуску того ж RabbitMQ. На відміну від кролика, Кафку потрібен допоміжний сервіс для того, щоб координувати роботу зоопарку брокерів в кластері, і ім'я того сервісу - ZooKeeper. Коли створюється новий топік, або додається новий брокер, або віддаляється старий, ZooKeeper - це той, хто буде з усім цим розбиратися. Він вирішить, куди покласти новий топік, ніж завантажити нового брокера, і навіть як збалансувати набір реплік, якщо частина з них пішла разом з полеглим сервісом. Він наглядач і координатор, і його запускають першим.

Як запустити Apache ZooKeeper

Інсталлер Кафки йде в комплекті з ZooKeeper, так що пошуки закінчилися, не встигнувши початися. Скрипт для запуску лежить в bin папці, а конфігурація - в config. і, власне, більше нічого не потрібно:

Starting Apache ZooKeeper

Тепер, коли сервер працює, пора б і відправити йому чого.

Відправлення та отримання повідомлень

Щоб відправити і отримати хоч що-небудь, потрібно ще три кроки (маленьких): створити топік, де будуть зберігатися повідомлення, створити продюсера, щоб було що зберігати, і Консьюмер, щоб було навіщо. І для всього цього є свій шелл-скрипт.

створюємо топік

Create Kafka topic

Як і продюсер, одержувач повинен вказати хоч якусь точку входу в кластер через параметр - - bootstrap - server. Він теж тримає відкритою сесію і виводить в термінал все, що вдалося отримати від Кафки.

І все! Якимось незбагненним чином, без єдиної строчки коду ми отримали працюючий кластер з одним хостом, через який пропустили парочку повідомлень.

висновок

Запустити Kafka-сервер і пропустити через нього повідомлення, в общем-то, складніше, ніж зробити те ж саме з RabbitMQ і тим більше з ZeroMQ (в принципі, все в цьому світі складніше, ніж ZeroMQ). З іншого боку, для того, щоб перейти від кластера з одним хостом до многохостовому кластеру з розподіленими топіки, додаткових зусиль не потрібно. Саме це ми і перевіримо в наступний раз.

Поділитися посиланням:

Роздуми про еміграцію, життя, і взагалі