Mengintegrasikan Kafka Streams dengan Node.js aplikasi adalah cara ampuh untuk memproses dan menganalisis data secara langsung dari Apache Kafka dalam suatu Node.js lingkungan. Kafka Streams memungkinkan Anda membangun pemrosesan data real-time dan mengintegrasikannya dengan mulus ke dalam Node.js aplikasi Anda. Berikut panduan khusus tentang cara mencapainya:
Langkah 1: Instal Kafka Streams dan KafkaJS
Pertama, Anda perlu menginstal Kafka Streams dan KafkaJS untuk diintegrasikan Kafka ke dalam aplikasi Anda Node.js. Anda dapat menggunakan npm untuk menginstal paket-paket ini:
npm install kafka-streams kafkajs
Langkah 2: Buat a Kafka Stream
Buat Kafka Stream di aplikasi Anda Node.js menggunakan Kafka Streams API. Berikut adalah contoh dasar pembuatan Kafka Stream untuk memproses data dari satu topic dan mengeluarkan hasilnya ke yang lain 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();
Langkah 3: Proses Data
Dalam contoh di atas, kami telah membuat Kafka Stream untuk mendengarkan data dari input-topic
, lalu memproses data dengan mengonversi semuanya menjadi huruf besar dan memasukkan hasilnya ke output-topic
.
Langkah 4: Jalankan Aplikasi
Terakhir, Anda perlu menjalankan Node.js aplikasi untuk mulai memproses data dari Kafka Streams.
Perhatikan bahwa dalam contoh di atas, Anda perlu mengganti nilai seperti your-client-id
, broker1:port1,
your-group-id
, input-topic
dan output-topic
dengan detail spesifik proyek Anda.
Mengintegrasikan Kafka Streams dengan Node.js aplikasi memungkinkan Anda membangun kemampuan pemrosesan data real-time secara fleksibel dan kuat.