Integracja Apache Kafka z Node.js projektem

Integracja Apache Kafka z Node.js projektem umożliwia tworzenie aplikacji działających w czasie rzeczywistym, które wykorzystują możliwości przetwarzania danych Kafki. Oto podstawowy przewodnik dotyczący integracji Apache Kafka z Node.js projektem:

Krok 1: Zainstaluj bibliotekę Kafka dla Node.js

Otwórz terminal w Node.js katalogu projektu.

Uruchom następujące polecenie, aby zainstalować kafkajs bibliotekę, Node.js bibliotekę dla Apache Kafka: npm install kafkajs.

Krok 2: Napisz kod do interakcji z Kafką w Node.js

Zaimportuj kafkajs bibliotekę do swojego Node.js kodu:

const { Kafka } = require('kafkajs');

Zdefiniuj parametry konfiguracyjne dla Kafka Broker:

const kafka = new Kafka({  
  clientId: 'your-client-id',  
  brokers: ['broker1:port1', 'broker2:port2'], // Replace with actual addresses and ports  
});  

Utwórz, producer aby wysyłać wiadomości:

const producer = kafka.producer();  
  
const sendMessage = async() => {  
  await producer.connect();  
  await producer.send({  
    topic: 'your-topic',  
    messages: [{ value: 'Hello Kafka!' }],  
  });  
  await producer.disconnect();  
};  
  
sendMessage();  

Utwórz, consumer aby otrzymywać wiadomości:

const consumer = kafka.consumer({ groupId: 'your-group-id' });  
  
const consumeMessages = async() => {  
  await consumer.connect();  
  await consumer.subscribe({ topic: 'your-topic', fromBeginning: true });  
  
  await consumer.run({  
    eachMessage: async({ topic, partition, message }) => {  
      console.log(`Received message: ${message.value}`);  
    },  
  });  
};  
  
consumeMessages();  

 

Uwaga: Zastąp wartości 'your-client-id', takie jak 'broker1:port1', 'your-topic', i 'your-group-id' rzeczywistymi informacjami o projekcie.

Należy pamiętać, że integracja Apache Kafka z programem Node.js może być bardziej złożona w zależności od konkretnych wymagań. Zapoznaj się z oficjalną dokumentacją Apache Kafka i kafkajs biblioteką, aby dowiedzieć się więcej o opcjach konfiguracji i funkcjonalnościach.