ما هي Apache Kafka؟

30 أبريل 2025

8 دقائق

المؤلفون

Ian Smalley

Senior Editorial Strategist

ما هي Apache Kafka؟

Apache Kafka هي منصة مفتوحة المصدر وموزعة لبث الأحداث تعالج البيانات في الوقت الفعلي. تتفوق Kafka في دعم التطبيقات المعتمدة على الأحداث وبناء مسارات بيانات موثوقة، مما يوفر تسليم البيانات بزمن انتقال منخفض وإنتاجية عالية.

اليوم، تنتج مليارات المصادر البيانات باستمرار تدفقات من المعلومات، غالبًا في شكل أحداث؛ وهي هياكل بيانات أساسية تسجل أي وقوع في النظام أو البيئة. 

عادةً ما يكون الحدث عبارة عن إجراء يؤدي إلى إجراء آخر كجزء من العملية. إن قيام العميل بتقديم طلب، أو اختيار مقعد على متن رحلة، أو إرسال نموذج تسجيل، كلها أمثلة على الأحداث. لا يجب أن يشتمل الحدث على شخص؛ فمثلاً، يُعد تقرير منظم حرارة متصل بدرجة الحرارة في وقت معين حدثًا أيضًا.

يوفر بث الأحداث فرصًا للتطبيقات للاستجابة فورًا للمعلومات الجديدة. تسمح منصات بيانات التدفق مثل Apache Kafka للمطورين ببناء أنظمة تستهلك البيانات وتعالجها وتتصرف بناءً عليها فور وصولها، مع الحفاظ على ترتيب وموثوقية كل حدث.

لقد تطورت Kafka لتصبح منصة بث الأحداث الأكثر استخدامًا على نطاق واسع، وهي قادرة على استيعاب ومعالجة تريليونات السجلات يوميًا دون أي تأخير ملموس في الأداء لدعم الأحجام القابلة للتطوير. تستخدم أكثر من 80% من شركات Fortune 500 منصة Kafka مثل Target و Microsoft و AirBnB و Netflix، لتقديم تجارب عملاء فورية قائمة على البيانات.

أصل Apache Kafka

في عام 2011، طوّرت LinkedIn منصة Apache Kafka لتلبية حاجة الشركة المتزايدة لنظام ذي إنتاجية عالية وزمن انتقال منخفض، قادر على التعامل مع كميات هائلة من بيانات الأحداث في الوقت الفعلي. تم بناء Kafka باستخدام Java و Scala، ثم أصبحت لاحقًا مفتوحة المصدر وتم التبرع بها لمؤسسة Apache للبرمجيات.

بينما كانت المؤسسات تدعم أو تستخدم بالفعل أنظمة قائمة انتظار الرسائل التقليدية (مثل Amazon SQS من AWS)، قدمت Kafka بنية نظام مراسلة مختلفة جوهريًا.

على عكس قوائم انتظار الرسائل التقليدية التي تحذف الرسائل بعد استهلاكها، تحتفظ Kafka بالرسائل لمدة قابلة للتكوين، مما يتيح للعديد من المستهلكين قراءة نفس البيانات بشكل مستقل. تجعل هذه القدرة من Kafka مثالية للرسائل ومصادر الأحداث، ومعالجة البث، وبناء مسارات البيانات في الوقت الفعلي.

اليوم، أصبحت Kafka المعيار الفعلي لبث الأحداث في الوقت الفعلي. الصناعات التي تستخدم Kafka تشمل التمويل، والتجارة الإلكترونية والاتصالات والنقل، حيث تعد القدرة على التعامل مع كميات كبيرة من البيانات بسرعة وبشكل موثوق أمرًا ضروريًا.

كيف تعمل Apache Kafka

Kafka عبارة عن منصة موزعة؛ تعمل كمجموعة تتحمل الأخطاء ومتاحة بدرجة عالية، ويمكن أن تمتد عبر خوادم متعددة وحتى مراكز بيانات متعددة.

تتمتع Kafka بثلاث قدرات أساسية:

  1. إنها تمكّن التطبيقات من نشر أو الاشتراك في بث البيانات أو الأحداث.
  2. تقوم بتخزين السجلات بدقة بترتيب وقوعها، مع تخزين يتحمل الأخطاء ومتين.
  3. تعالج السجلات في الوقت الفعلي فور حدوثها.

يكتب المنتجون (التطبيقات أو المواضيع) سجلات إلى مواضيع تسمى "سجلات" تقوم بتخزين السجلات بترتيب حدوثها بالنسبة لبعضها البعض. تُقسم الموضوعات بعد ذلك إلى أقسام وتُوزع عبر مجموعة من وسطاء Kafka (الخوادم).

ضمن كل قسم، تحافظ Kafka على ترتيب السجلات وتخزنها بشكل دائم على القرص لمدة احتفاظ قابلة للتكوين. في حين أن الترتيب مضمون داخل القسم، إلا أنه ليس مضمونًا عبر الأقسام. بناء على احتياجات التطبيق، يمكن للمستهلكين القراءة بشكل مستقل من هذه الأقسام في الوقت الفعلي أو من إزاحة معينة.

تضمن Kafka الموثوقية من خلال تكرار القسم. يحتوي كل قسم على قائد (على وسيط واحد) ومتابع واحد أو أكثر (نسخ متماثلة) على وسطاء آخرين. يساعد هذا التكرار على تحمل فشل العقدة دون فقدان البيانات.

تاريخيًا، اعتمدت Kafka على Apache ZooKeeper، وهي خدمة تنسيق مركزية للوسطاء الموزعين. ضمنت ZooKeeper بقاء وسطاء Kafka متزامنين، حتى لو فشل بعض الوسطاء. في عام 2011، قدّمت Kafka وضع KRaft (بروتوكول Kafka Raft)، مما ألغى الحاجة إلى ZooKeeper من خلال دمج هذه المهام في وسطاء Kafka أنفسهم. يقلل هذا التحول من التبعيات الخارجية ويبسط البنية ويجعل مجموعات Kafka أكثر تحملاً للأخطاء وأسهل في الإدارة والتوسع.

منظر جوي للطرق السريعة

كن مطلعًا على آخر أخبار السحابة


احصل على نشرة Think الإخبارية الأسبوعية للحصول على إرشادات الخبراء حول تحسين الإعدادات متعددة السحابة في عصر الذكاء الاصطناعي.

واجهات برمجة تطبيقات Apache Kafka

يمكن للمطورين الاستفادة من قدرات Kafka من خلال أربع واجهات برمجة تطبيقات (APIs) أساسية:

  1. واجهة برمجة تطبيقات المنتج
  2. واجهة برمجة تطبيقات المستهلك
  3. واجهة برمجة تطبيقات عمليات البث
  4. واجهة برمجة تطبيقات الموصل
واجهة برمجة تطبيقات المنتج

تُتيح واجهة برمجة تطبيقات المُنتِج للتطبيق نشر بث إلى موضوع في Kafka. بعد كتابة سجل لموضوع، لا يمكن تغييره أو حذفه. بدلًا من ذلك، يظل في الموضوع لفترة زمنية تم تكوينها مسبقًا، لمدة يومين، أو حتى نفاد مساحة التخزين.

واجهة برمجة تطبيقات المستهلك

تتيح واجهة برمجة تطبيقات المستهلك للتطبيق الاشتراك في موضوع أو أكثر ومعالجة البث المخزَّن فيه. يمكنها العمل مع السجلات في الموضوع في الوقت الفعلي أو استيعاب ومعالجة السجلات السابقة.

واجهة برمجة تطبيقات عمليات البث

تعتمد واجهة برمجة التطبيقات هذه على واجهتي برمجة تطبيقات المنتج والمستهلك، وتضيف إمكانات معالجة معقدة تمكّن التطبيق من إجراء معالجة مستمرة ومتكاملة للبث (من البداية إلى النهاية). تحديدًا، تتضمن واجهة برمجة تطبيقات عمليات البث استهلاك السجلات من موضوع واحد أو أكثر، وتحليلها أو تجميعها أو تحويلها حسب الحاجة، ونشر عمليات البث الناتجة إلى نفس المواضيع أو مواضيع أخرى.

بينما يمكن استخدام واجهات برمجة تطبيقات المنتج والمستهلك لمعالجة عمليات البث البسيطة، تتيح واجهة برمجة تطبيقات عمليات البث تطوير تطبيقات بث البيانات والأحداث الأكثر تعقيدًا.

واجهة برمجة تطبيقات الموصل

تتيح واجهة برمجة التطبيقات هذه للمطورين بناء موصلات، وهي بمثابة منتجين أو مستهلكين قابلين لإعادة الاستخدام تعمل على تبسيط وأتمتة دمج مصدر بيانات في مجموعة Kafka.

حالات استخدام Apache Kafka

يستخدم المطورون Kafka بشكل أساسي لإنشاء نوعين من التطبيقات:

  • مسارات بث البيانات في الوقت الفعلي
  • تطبيقات البث في الوقت الفعلي

مسارات بث البيانات في الوقت الفعلي

تطبيقات مصممة خصيصًا لنقل ملايين وملايين السجلات أو البيانات بين أنظمة المؤسسة، على نطاق واسع وفي الوقت الفعلي. يجب أن تنقلها التطبيقات بشكل موثوق، دون مخاطر التلف، أو تكرار البيانات، أو غيرها من المشاكل التي تحدث عادة عند نقل كميات هائلة من البيانات بهذه السرعات العالية.

على سبيل المثال، تستخدم المؤسسات المالية Kafka لبث آلاف المعاملات في الثانية الواحدة عبر بوابات الدفع وخدمات الكشف عن الغش وأنظمة المحاسبة، مما يضمن بث البيانات بدقة وفي الوقت الفعلي دون تكرار أو تلف.

تطبيقات البث في الوقت الفعلي

التطبيقات التي تعتمد على عمليات بث السجلات أو الأحداث وتولد عمليات بث خاصة بها. في عالمنا الرقمي، نواجه هذه التطبيقات كل يوم.

تشمل الأمثلة مواقع التجارة الإلكترونية التي تُحدِّث توفر المنتجات في الوقت الفعلي، أو المنصات التي تقدم محتوى وإعلانات مخصصة بناءً على نشاط المستخدم المباشر. تقود Kafka هذه التجارب من خلال بث تفاعلات المستخدم مباشرةً إلى محركات التحليلات والتوصيات.

حالات استخدام أخرى لـ Apache Kafka

  • الخدمات المصغرة: تُسهّل Kafka التواصل بين الخدمات المصغرة من خلال تمكين المراسلة اللامتزامنة والقائمة على الأحداث. تتيح هذه الميزة للخدمات تشغيل إجراءات عبر خدمات أخرى دون أن تكون مرتبطة بإحكام، مما يدعم بنيات الأنظمة القابلة للتوسع والمنفصلة.
  • بيئات السحابة الأصلية المعبأة في حاويات: تتكامل Kafka بسلاسة مع منصات السحابة الأصلية باستخدام Docker للنقل بالحاويات و Kubernetes لتنسيق الحاويات. يدعم هذا الإعداد اتصالاً قابلاً للتوسع، ومتحملاً للأعطال، ومدفوعًا بالأحداث، بينما يقلل من الحاجة إلى الإدارة اليدوية للبنية التحتية. يمكن لـ Kafka التوسع التلقائي والتعافي من الأعطال داخل Kubernetes، مما يجعلها مثالية لبيئات الحوسبة السحابية الديناميكية التي تشغل أعباء عمل متنوعة للتطبيقات.
  • بحيرات البيانات ومستودعات البيانات: تعمل Kafka بمثابة مسار بيانات في الوقت الفعلي بين مصادر البيانات ومنصات التخزين، مثل بحيرات البيانات أو مستودعات البيانات. تتيح هذه الميزة بث كميات كبيرة من البيانات لاستيعابها وتحليلها في الوقت المناسب، وهو أمر ضروري لمهام سير عمل ذكاء الأعمال والتحليلات الحديثة.
  • معالجة بيانات إنترنت الأشياء (IOT): تُعد Kafka مناسبة تمامًا لمعالجة بث البيانات المستمر من أجهزة إنترنت الأشياء وزمن الانتقال المنخفض إلى وجهات مثل قواعد البيانات أو محركات التحليلات أو أدوات المراقبة. تدعم هذه القدرة التطبيقات الحساسة للوقت في الصناعات مثل التصنيع والرعاية الصحية.
أكاديمية الذكاء الاصطناعي

تحقيق جاهزية الذكاء الاصطناعي باستخدام التنقية السحابية الهجينة

وقد صُمم المنهج، الذي يقوده كبار قادة الفكر لدى IBM، لمساعدة قادة الأعمال على اكتساب المعرفة اللازمة لتحديد أولويات استثمارات الذكاء الاصطناعي التي يمكن أن تدفع عجلة النمو.

نظام Apache Kafka البنائي

تتكامل Kafka مع العديد من التقنيات الأخرى، والتي يُعد الكثير منها جزءًا من مؤسسة Apache للبرمجيات (ASF). تستخدم المؤسسات عادةً هذه التقنيات في البنى الكبيرة القائمة على الأحداث، أو معالجة عمليات البث، أو حلول تحليل البيانات الكبيرة.

بعض هذه التقنيات مفتوحة المصدر، بينما توفر Confluent، وهي منصة مبنية حول Kafka، ميزات على مستوى المؤسسات وخدمات مُدارة لمعالجة البيانات في الوقت الفعلي على نطاق واسع. شركات مثل IBM و Amazon Web Services وغيرها تقدم حلولًا قائمة على Kafka (مثل IBM Event Streams و Amazon Kinesis) التي تتكامل مع Kafka لبث الأحداث القابل للتوسع.

يتضمن نظام Apache Kafka البنائي ما يلي:

  • Apache Spark
  • Apache NiFi
  • Apache Flink
  • Apache Hadoop
  • Apache Camel
  • Apache Cassandra

Apache Spark

Apache Spark هو محرك تحليلات لمعالجة البيانات على نطاق واسع. يمكنك استخدام Spark لإجراء تحليلات على عمليات البث التي يقدمها Apache Kafka ولإنتاج تطبيقات معالجة البث في الوقت الفعلي، مثل تحليل النقرات.

Apache NiFi

Apache NiFi نظام إدارة بث البيانات مع واجهة مرئية بميزة السحب والوضع. نظرًا إلى أنه يمكن تشغيل Ni Fi كمنتج Kafka ومستهلك Kafka، فهي أداة مثالية لإدارة تحديات بث البيانات التي لا تستطيع Kafka معالجتها.

Apache Flink

Apache Flink و محرك لإجراء عمليات حسابية واسعة النطاق على بث الأحداث بسرعة عالية وزمن انتقال منخفض باستمرار. Flink يمكنه استيعاب عمليات البث كمستهلك Kafka، وتنفيذ العمليات في الوقت الفعلي بناءً على عمليات البث هذه، ونشر النتائج لـ Kafka أو تطبيق آخر.

Apache Hadoop

Apache Hadoop هو إطار عمل برمجي موزع يتيح لك تخزين كميات هائلة من البيانات في مجموعة من أجهزة الكمبيوتر لاستخدامها في تحليلات البيانات الكبيرة، والتعلم الآلي، وتنقيب البيانات، وغيرها من التطبيقات التي تعتمد على البيانات والتي تعالج البيانات المنظمة وغير المنظمة. عادةً ما تُستخدم Kafka لإنشاء مسار بيانات متدفق في الوقت الفعلي إلى مجموعة Hadoop.

Apache Camel

Apache Camel هو إطار عمل تكامل مزود بمحرك توجيه ووساطة قائم على القواعد. يدعم Kafka كمكون، مما يتيح سهولة تكامل البيانات مع الأنظمة الأخرى (مثل قواعد البيانات، قوائم انتظار الرسائل)، وبالتالي السماح لـ Kafka بأن تصبح جزءًا من بنية أكبر تعتمد على الأحداث.

Apache Cassandra

Apache Cassandra هو قاعدة بيانات NoSQL قابلة للتوسع بدرجة عالية مصممة للتعامل مع كميات كبيرة من البيانات عبر العديد من الخوادم التجارية دون أي نقطة فشل واحدة.

تُستخدم Kafka عادةً لبث البيانات إلى Cassandra من أجل استيعاب البيانات في الوقت الفعلي ولبناء تطبيقات قابلة للتوسع وتتحمل الأخطاء.

Kafka مقابل RabbitMQ

يعتبر RabbitMQ وسيط رسائل مفتوح المصدر وشائع يمكّن التطبيقات والأنظمة والخدمات من التواصل عن طريق ترجمة بروتوكولات المراسلة. بما أن Kafka بدأت كوسيط رسائل (ولا يزال بالإمكان استخدامها كذلك) و RabbitMQ يدعم نموذج المراسلة من نوع النشر/الاشتراك (من بين نماذج أخرى)، فغالباً ما تتم مقارنة Kafka و RabbitMQ كبديلين لبعضهما البعض. ومع ذلك، فإنها تخدم أغراضًا مختلفة وهي مصممة لمعالجة أنواع مختلفة من حالة الاستخدام.  على سبيل المثال، يمكن أن تحتوي مواضيع Kafka على عدة مشتركين، بينما يمكن أن تحتوي كل رسالة من رسائل RabbitMQ على مشترك واحد فقط. بالإضافة إلى ذلك، فإن موضوعات Kafka دائمة، بينما يتم حذف رسائل RabbitMQ بمجرد استهلاكها.

عند الاختيار من بينهما، من الضروري مراعاة الاحتياجات المحددة لتطبيقك، مثل الإنتاجية ومتانة الرسائل وزمن الانتقال. Kafka تُعد مناسبة لبث الأحداث، بينما يتفوق RabbitMQ في السيناريوهات التي تتطلب توجيهًا مرنًا للرسائل ومعالجة بزمن انتقال قصير.

Apache Kafka والذكاء الاصطناعي مصدر مفتوح

دمج Apache Kafka والذكاء الاصطناعي مفتوح المصدر يُحدث تحولاً في كيفية تعامل المؤسسات مع البيانات في الوقت الفعلي والذكاء الاصطناعي. عند دمجها مع أدوات الذكاء الاصطناعي مفتوحة المصدر، تُمكّن Kafka من تطبيق نماذج الذكاء الاصطناعي المُدربة مسبقًا على البيانات المباشرة، مما يدعم اتخاذ القرارات في الوقت الفعلي والأتمتة.

لقد جعل الذكاء الاصطناعي مفتوح المصدر الذكاء الاصطناعي أكثر سهولة، وتوفر Kafka البنية التحتية اللازمة لمعالجة البيانات في الوقت الفعلي. يلغي هذا الإعداد الحاجة إلى المعالجة الدفعية، مما يسمح للشركات بالتصرف بناءً على البيانات فور إنتاجها.

على سبيل المثال، قد تستخدم شركة للتجارة الإلكترونية Kafka لبث تفاعلات العملاء، مثل النقرات أو مشاهدات المنتجات، فور حدوثها. تقوم نماذج الذكاء الاصطناعي المدربة مسبقًا بمعالجة هذه البيانات في الوقت الفعلي، لتوفير توصيات مخصصة أو عروض مستهدفة. تُدير Kafka بث البيانات، بينما تتكيف نماذج الذكاء الاصطناعي بناءً على البيانات الواردة، مما يُحسِّن من مشاركة العملاء.

من خلال الجمع بين معالجة البيانات في الوقت الفعلي ونماذج الذكاء الاصطناعي، يمكن للمؤسسات اتخاذ قرارات أسرع في مجالات مثل الكشف عن الغش، الصيانة التنبؤية، أو التسعير الديناميكي، مما يتيح بناء أنظمة أكثر استجابة وكفاءة.

فوائد Apache Kafka

  • معالجة البيانات في الوقت الفعلي: تتيح Kafka مسارات البيانات في الوقت الفعلي وتطبيقات البث. تسمح للأنظمة بنشر السجلات والاشتراك فيها ومعالجتها فور حدوثها، مما يدعم حالات الاستخدام مثل المراقبة والتنبيه والتحليلات.
  • الأداء العالي وقابلية التوسع: يتم تقسيم مواضيع Kafka وتكرارها بطريقة تمكنها من التوسع لخدمة كميات كبيرة من المستهلكين المتزامنين دون التأثير على الأداء.
  •  الأمان والامتثال: تدعم Apache Kafka التشفير للبيانات أثناء النقل وفي حالة السكون، إلى جانب عناصر التحكم في الوصول القابلة للتكوين. تساعد هذه الميزات المؤسسات على حماية البيانات الحساسة والتوافق مع معايير الامتثال في الصناعات.
  • التوافر العالي: تضمن Kafka توافرًا عاليًا من خلال تكرار البيانات عبر وسطاء متعددين. تظل الرسائل متاحة حتى في حالة فشل إحدى العُقد، ويستمر النظام في العمل دون فقدان البيانات أو فترة تعطل.
  •  إدارة مبسّطة: تتضمن Kafka أدوات للمراقبة والتكوين والأتمتة، مما يساعد على تقليل العبء التشغيلي. تتكامل بشكل جيد مع منصات التنسيق والإدارة، مما يجعل النشر والتوسع أكثر قابلية للإدارة. Kafka تكشف أيضًا عن مقاييس الأداء والسلامة التفصيلية عبر JMX (امتدادات إدارة Java)، مما يسمح للفرق بتتبع الإنتاجية، وزمن الانتقال، وسلامة الوسيط، وتأخر المستهلك، وهي أمور بالغة الأهمية للمراقبة الفعالة وتخطيط القدرات.
  • تكامل واسع: بفضل مجموعة واسعة من الموصلات وواجهات برمجة تطبيقات العميل، تندمج Kafka بسهولة مع قواعد البيانات وأنظمة الملفات والخدمات السحابية. على سبيل المثال، يسهل Kafka Connect نقل البيانات بسلاسة بين الأنظمة، بينما يتيح Kafka Streams معالجة التدفقات في الوقت الفعلي، مما يعزز قدرات التكامل بشكل أكبر.