Αποστολή και λήψη μηνυμάτων με Apache Kafka in Node.js

Βήμα 1: Εγκαταστήστε τη Βιβλιοθήκη Kafka για Node.js

Ανοίξτε ένα terminal στον κατάλογο του έργου σας Node.js.

Εκτελέστε την ακόλουθη εντολή για να εγκαταστήσετε τη kafkajs βιβλιοθήκη, μια Node.js βιβλιοθήκη για Apache Kafka: npm install kafkajs.

Βήμα 2: Αποστολή μηνυμάτων με Producer in Node.js

Εισαγάγετε τη kafkajs βιβλιοθήκη και ορίστε τη Kafka Broker διαμόρφωση:

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

Δημιουργήστε ένα producer για να στείλετε μηνύματα και στείλτε ένα μήνυμα σε ένα topic:

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

Βήμα 3: Λήψη μηνυμάτων με Consumer in Node.js

Εισαγάγετε τη kafkajs βιβλιοθήκη και ορίστε τη Kafka Broker διαμόρφωση(αν δεν έχει γίνει ήδη):

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

Δημιουργήστε ένα consumer για να λαμβάνετε μηνύματα από ένα συγκεκριμένο topic:

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();  

Σημείωση: Αντικαταστήστε τιμές όπως 'your-client-id', 'broker1:port1', 'your-topic' και 'your-group-id' με τις πραγματικές πληροφορίες του έργου σας.

Φροντίστε να ανατρέξετε στην επίσημη τεκμηρίωση Apache Kafka και στη kafkajs βιβλιοθήκη για περισσότερες πληροφορίες σχετικά με τις επιλογές διαμόρφωσης και τις λειτουργίες.