บูรณาการ Kafka Streams กับ Node.js

การรวมเข้า 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 แอปพลิเคชันช่วยให้คุณสร้างความสามารถในการประมวลผลข้อมูลตามเวลาจริงได้อย่างยืดหยุ่นและมีประสิทธิภาพ