Apache Kafka è un sistema di streaming di dati in tempo reale distribuito e open source. Per utilizzare Apache Kafka con Node.js, devi seguire questi passaggi:
1. Installazione di Apache Kafka
Prima di tutto, devi installare Apache Kafka sul tuo sistema. Puoi scaricare Apache Kafka dal sito ufficiale (http://kafka.apache.org/downloads). After remove the tar file and change the directory to the Kafka directory.
1. Avvia Zookeeper
Kafka utilizza Zookeeper, quindi devi avviarlo. Puoi utilizzare il comando seguente per avviare Zookeeper:
```
bin/zookeeper-server-start.sh config/zookeeper.properties
```
1. Avvia Kafka Broker
After starting the Zookeeper, avviamo Kafka server utilizzando il comando seguente:
```
bin/kafka-server-start.sh config/server.properties
```
1. Installazione del modulo kafka-node
Ora devi installare il modulo ‘kafka-node’ nel tuo progetto Node.js. Questo modulo ti aiuterà a integrare Node.js con Apache Kafka. Utilizza il comando seguente per installare ‘kafka-node’:
```
npm install kafka-node
```
1. Scrittura del codice per Producer e Consumer
Una volta installato il modulo kafka-node, possiamo scrivere il codice per Producer e Consumer.
Esempio di Codice Producer:
```
const kafka = require(‘kafka-node’);
const Producer = kafka.Producer;
const client = new kafka.KafkaClient({kafkaHost: ‘localhost:9092’});
const producer = new Producer(client);
const payloads = [
{ topic: ‘test’, messages: ‘Hello Kafka’ }
];
producer.on(‘ready’, function () {
producer.send(payloads, function (err, data) {
if (err) console.log(err);
else console.log(‘Data:’, data);
});
});
```
Esempio di Codice Consumer:
```
const kafka = require(‘kafka-node’);
const Consumer = kafka.Consumer;
const client = new kafka.KafkaClient({kafkaHost: ‘localhost:9092’});
const consumer = new kafka.Consumer(client, [{topic: ‘test’}], {autoCommit: false});
consumer.on(‘message’, function (message) {
console.log(message);
});
```
Ora dovresti essere in grado di eseguire il tuo producer e consumer Node.js per inviare e ricevere messaggi da Apache Kafka.