Запустіть та протестуйте Kafka з Zookeeper на Windows

  1. Встановіть WSL.
wsl --install
  1. Завантажте та встановіть Docker

  2. Завантаження, налаштування та тестування Kafka і Zookeeper

  • Завантаження

Apache Kafka можна завантажити з офіційного сайту. натисніть тут.

pic

Scala 2.13 — kafka2.13–3.9.0.tgz (asc, sha512)_

  • Налаштування: Kafka з ZooKeeper

ПРИМІТКА: У вашому локальному середовищі має бути встановлена Java 8+.

Розпакуйте завантажений файл.

Виконайте наступні команди для запуску всіх сервісів у правильному порядку:

# Запуск сервісу ZooKeeper  
$ bin/zookeeper-server-start.sh config/zookeeper.properties

Відкрийте ще одну сесію термінала та запустіть:

# Запуск сервісу Kafka broker  
$ bin/kafka-server-start.sh config/server.properties

Після того як всі сервіси успішно запустяться, у вас буде працювати базове середовище Kafka, готове до використання.

  • Тестування
  1. Встановіть пакет kafkajs
npm ini -y  
npm install kafkajs
  1. У файлі /src/kafka.js :
import { Kafka } from "kafkajs"  

export const kafka = new Kafka({  
 clientId: 'my-app',  
 brokers: ['localhost:9092'],  
})
  1. У файлі /src/producer.js :
import { kafka } from "./kafka.js"  

const producer = kafka.producer()  

await producer.connect()  
await producer.send({  
 topic: 'test-topic',  
 messages: [  
 { value: 'Hello KafkaJS user!' },  
 ],  
})  

await producer.disconnect()
  1. У файлі /src/consumer.js :
import { kafka } from "./kafka.js"  

const consumer = kafka.consumer({ groupId: 'test-group' })  

await consumer.connect()  
await consumer.subscribe({ topic: 'test-topic', fromBeginning: true })  

await consumer.run({  
 eachMessage: async ({ topic, partition, message }) => {  
 console.log({  
 value: message.value.toString(),  
 })  
 },  
})
  1. Тепер відкрийте новий термінал і запустіть node src/consumer.js

pic

  1. Тепер відкрийте ще один термінал і запустіть node src/producer.js

pic

Тепер зверніть увагу на термінал споживача

pic

Перекладено з: Run and test Kafka with Zookeepr on Windows

Leave a Reply

Your email address will not be published. Required fields are marked *