معمارية أباتشي كافكا: دليل شامل للمبتدئين [2022]

نشرت: 2021-12-23

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

تستخدم شركات مثل LinkedIn و Netflix و Microsoft و Uber و Spotify و Goldman Sachs و Cisco و PayPal والعديد من الشركات الأخرى Apache Kafka لمعالجة بيانات التدفق في الوقت الفعلي. على سبيل المثال ، يستخدم موقع LinkedIn ، حيث نشأ كافكا ، هذا التطبيق لتتبع المقاييس التشغيلية وبيانات النشاط. وبالمثل ، بالنسبة إلى Netflix ، يعد Apache Kafka المعيار الواقعي لاحتياجات المراسلة والفعاليات ومعالجة البث.

تعلم تدريب تطوير البرمجيات عبر الإنترنت من أفضل الجامعات في العالم. اربح برامج PG التنفيذية أو برامج الشهادات المتقدمة أو برامج الماجستير لتتبع حياتك المهنية بشكل سريع.

يتم تقدير فائدة Apache Kafka بشكل أفضل من خلال فهم بنية Apache Kafka ومكوناتها الأساسية. لذا ، دعنا نستكشف تفاصيل هندسة كافكا.

جدول المحتويات

مفاهيم العمارة كافكا الأساسية

المفاهيم التالية أساسية لفهم بنية أباتشي كافكا:

1. المواضيع

تحدد موضوعات كافكا القنوات التي يتم من خلالها تدفق البيانات. وبالتالي ، ينشر المنتجون رسائل إلى الموضوعات ، ويقرأ المستهلكون رسائل من الموضوعات التي يشتركون فيها. لا توجد قيود على عدد الموضوعات التي تم إنشاؤها داخل كتلة كافكا ، والاسم الفريد يحدد كل موضوع.

2. الوسطاء

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

3. أقسام

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

4. النسخ المتماثلة

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

5. تقسيم تعويضات

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

6. المنتجون

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

7. المستهلكون ومجموعات المستهلكين

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

8. القائد والتابع

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

الرسم البياني التالي هو عرض مبسط للعلاقات المتبادلة بين مكونات عمارة أباتشي كافكا التي نوقشت أعلاه.

مصدر

العمارة العنقودية أباتشي كافكا

فيما يلي نظرة مفصلة على المكونات المعمارية الرئيسية لكافكا:

1. سماسرة كافكا

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

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

2. منتجي كافكا

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

3. مستهلكو كافكا

يصدر مستهلكو كافكا طلبات للوسطاء يشيرون إلى الأقسام التي يريدون استهلاكها. يحدد المستهلك إزاحة القسم في طلبه ويتلقى قطعة من السجل (تبدأ من موضع الإزاحة) من الوسيط. يحتوي السجل على سجلات فترة قابلة للتكوين تُعرف باسم فترة الاحتفاظ.

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

فيما يلي مخطط معماري مبسط لأباتشي كافكا:

مصدر

تعرف على المزيد حول أباتشي كافكا.

معمارية Apache Kafka API

يحتوي Apache Kafka على أربع واجهات برمجة تطبيقات رئيسية - Streams API و Connector API و Producer API و Consumer API. دعونا نرى ما هو الدور الذي يجب أن يلعبه كل منهم في تعزيز قدرات أباتشي كافكا:

1. تيارات API

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

2. موصل API

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

3. منتج API

تسمح واجهة برمجة تطبيقات المنتج في كافكا للتطبيقات بنشر سلسلة من السجلات لموضوعات كافكا.

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

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

الطريق إلى الأمام

إن بنية أباتشي كافكا ليست سوى جزء صغير من المخزون الهائل من الأدوات واللغات التي يتعامل معها مطورو البرمجيات. لنفترض أنك مطور برامج ناشئ لديه ميل نحو البيانات الضخمة. في هذه الحالة ، يمكنك اتخاذ الخطوة الأولى نحو أهدافك مع برنامج upGrad Executive PG في تطوير البرمجيات - التخصص في البيانات الضخمة .

فيما يلي نظرة عامة على البرنامج مع بعض النقاط البارزة الرئيسية:

  • تنفيذي PGP من IIIT Bangalore مع شهادات في علوم البيانات والبنية التحتية السحابية
  • جلسات عبر الإنترنت ومحاضرات مباشرة مع أكثر من 400 ساعة من المحتوى
  • 7+ دراسات حالة ومشاريع
  • 14+ لغة وأدوات برمجة
  • 360 درجة الدعم الوظيفي
  • شبكات الأقران والصناعة

سجل للحصول على مزيد من التفاصيل حول الدورة!

ما الذي يستخدمه كافكا؟

يستخدم Apache Kafka بشكل أساسي لبناء خطوط تدفق البيانات والتطبيقات التي تتكيف مع تدفقات البيانات هذه. يسمح بتخزين وتحليل البيانات في الوقت الفعلي والتاريخية من خلال مجموعة من الرسائل والتخزين ومعالجة الدفق.

هل كافكا إطار عمل؟

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

لماذا نحتاج تيارات كافكا؟

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