การรวมเข้า Kafka Streams กับ Node.js แอปพลิเคชันเป็นวิธีที่มีประสิทธิภาพในการประมวลผลและวิเคราะห์ข้อมูลโดยตรงจาก Apache Kafka ภายใน Node.js สภาพแวดล้อม Kafka Streams ช่วยให้คุณสร้างการประมวลผลข้อมูลแบบเรียลไทม์และรวมเข้ากับ Node.js แอปพลิเคชัน ของคุณได้อย่างราบรื่น ต่อไปนี้เป็นคำแนะนำเฉพาะเจาะจงเกี่ยวกับวิธีการบรรลุเป้าหมายนี้:
ขั้นตอนที่ 1: ติดตั้ง Kafka Streams และ KafkaJS
ก่อนอื่น คุณต้องติดตั้ง Kafka Streams และ KafkaJS เพื่อรวมเข้า Kafka กับ Node.js แอปพลิเคชัน ของคุณ คุณสามารถใช้ npm เพื่อติดตั้งแพ็คเกจเหล่านี้:
npm install kafka-streams kafkajs
ขั้นตอนที่ 2: สร้าง Kafka Stream
สร้าง Kafka Stream ใน Node.js แอปพลิเคชันของคุณโดยใช้ Kafka Streams API นี่คือตัวอย่างพื้นฐานของการสร้าง a Kafka Stream เพื่อประมวลผลข้อมูลจากที่หนึ่ง topic และส่งออกผลลัพธ์ไปยังอีกที่หนึ่ง 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();
ขั้นตอนที่ 3: ประมวลผลข้อมูล
ในตัวอย่างข้างต้น เราได้สร้าง a Kafka Stream เพื่อรับฟังข้อมูลจาก จากนั้น input-topic
ประมวลผลข้อมูลโดยแปลงทั้งหมดเป็นตัวพิมพ์ใหญ่และพุชผลลัพธ์ output-topic
เป็น
ขั้นตอนที่ 4: เรียกใช้แอปพลิเคชัน
สุดท้าย คุณต้องเรียกใช้ Node.js แอปพลิเคชันของคุณเพื่อเริ่มประมวลผลข้อมูล Kafka Streams จาก
โปรด ทราบว่าในตัวอย่างด้านบน คุณต้องแทนที่ค่าต่างๆ เช่น your-client-id
, และ ด้วยรายละเอียดเฉพาะของโครงการของคุณ broker1:port1,
your-group-id
input-topic
output-topic
การรวมเข้า Kafka Streams กับ Node.js แอปพลิเคชันช่วยให้คุณสร้างความสามารถในการประมวลผลข้อมูลตามเวลาจริงได้อย่างยืดหยุ่นและมีประสิทธิภาพ