التكامل 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. فيما يلي مثال أساسي لإنشاء 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 التطبيقات بناء قدرات معالجة البيانات في الوقت الفعلي بمرونة وقوة.