Integrace Kafka Streams s Node.js aplikací je účinný způsob, jak zpracovávat a analyzovat data přímo z Apache Kafka v Node.js prostředí. Kafka Streams umožňuje vytvářet zpracování dat v reálném čase a hladce je integrovat do vaší Node.js aplikace. Zde je konkrétní návod, jak toho dosáhnout:
Krok 1: Nainstalujte Kafka Streams a KafkaJS
Nejprve je třeba nainstalovat Kafka Streams a KafkaJS integrovat Kafka do vaší Node.js aplikace. K instalaci těchto balíčků můžete použít npm:
npm install kafka-streams kafkajs
Krok 2: Vytvořte a Kafka Stream
Vytvořte Kafka Stream ve své Node.js aplikaci pomocí Kafka Streams API. Zde je základní příklad vytvoření Kafka Stream pro zpracování dat z jednoho topic a výstup výsledku do jiného topic:
const { KafkaStreams } = require('kafka-streams');
const { Kafka } = require('kafkajs');
const kafka = new Kafka({
clientId: 'your-client-id',
brokers: ['broker1:port1', 'broker2:port2'],
});
const kafkaStreams = new KafkaStreams({
kafka,
logLevel: 2, // Level 2 for debug logs
});
const streamConfig = {
'group.id': 'your-group-id',
'metadata.broker.list': 'broker1:port1,broker2:port2',
'enable.auto.commit': false,
'socket.keepalive.enable': true,
};
const stream = kafkaStreams.getKStream(streamConfig);
stream
.from('input-topic')
.filter(record => record.value && record.value.length > 0)
.map(record =>({
key: record.key,
value: record.value.toUpperCase(),
}))
.to('output-topic');
kafkaStreams.start();
Krok 3: Zpracujte data
Ve výše uvedeném příkladu jsme vytvořili a Kafka Stream pro naslouchání dat z input-topic
, pak jsme data zpracovali převedením všech na velká písmena a vložením výsledku do output-topic
.
Krok 4: Spusťte aplikaci
Nakonec musíte spustit Node.js aplikaci, abyste mohli začít zpracovávat data z Kafka Streams.
Všimněte si, že ve výše uvedeném příkladu je třeba nahradit hodnoty jako your-client-id
, a konkrétními podrobnostmi vašeho projektu. broker1:port1,
your-group-id
input-topic
output-topic
Integrace Kafka Streams s Node.js aplikací vám umožňuje flexibilně a výkonně budovat možnosti zpracování dat v reálném čase.