شعار زيفيرنت

أساسيات كافكا: مقدمة عن مجموعة مستهلكي كافكا وكيف يمكن استخدامها؟

التاريخ:

ما هو أباتشي كافكا؟

الصورة الائتمان: Unsplash

Apache Kafka هو مخزن بيانات موزع مصمم لإدخال البيانات ومعالجتها في الوقت الفعلي. دفق البيانات هي البيانات التي يتم إنشاؤها على أساس مستمر من قبل مئات من مصادر البيانات ، والتي عادة ما ترسل سجلات البيانات في نفس الوقت. يجب أن تكون منصة التدفق قادرة على التعامل مع التدفق المستمر للبيانات ومعالجتها بطريقة متسلسلة وتدريجية.

يمكن للمستخدمين استخدام كافكا لثلاثة أغراض مختلفة:

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

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

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

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

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

تكوين المستهلك كافكا

الصورة الائتمان: unsplash

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

الإعدادات الافتراضية

الإعداد الإلزامي الوحيد هو bootstrap.servers ، ولكن يجب عليك أيضًا تعيين client.id حتى تتمكن من ربط الطلبات بمثيل العميل الذي أنشأها بسهولة. من أجل فرض حصص العملاء ، عادة ما يكون لدى جميع المستهلكين في مجموعة معينة نفس معرف العميل.

إنشاء مجموعة

إذا كنت تستخدم واجهة برمجة التطبيقات للتخصيص البسيط ولا تحتاج إلى الاحتفاظ بالإزاحات في كافكا ، فيجب عليك دائمًا تكوين group.id. يمكن تجاوز قيمة session.timeout.ms لضبط مهلة الجلسة.
يمكن تجاوز قيمة session.timeout.ms لضبط مهلة الجلسة. في عملاء C / C ++ و Java ، تكون المهلة الافتراضية هي 10 ثوانٍ ، ولكن يمكنك تمديدها لتجنب إعادة التوازن المفرط بسبب اتصال الشبكة السيئ أو فترات توقف GC الطويلة ، على سبيل المثال.

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

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

إدارة الأوفست

سياسة إعادة تعيين الإزاحة وما إذا كان الالتزام التلقائي ممكّنًا هما أهم خيارين يؤثران على إدارة الإزاحة. أولاً ، إذا تم تعيين enable.auto.commit على صحيح (وهو الإعداد الافتراضي) ، فسيقوم المستهلك بتنفيذ عمليات الإزاحة في الفاصل الزمني المحدد بواسطة auto.commit.interval.ms. يتم تعيين المهلة على 5 ثوانٍ افتراضيًا.
يتم تمكين تعويضات الالتزام التلقائي بشكل افتراضي على المستهلك. تحصل على تسليم "مرة واحدة على الأقل" باستخدام الالتزام التلقائي: على الرغم من أن كافكا يضمن عدم فقدان أي رسائل ، فمن الممكن حدوث تكرارات. تعمل خاصية التكوين auto.commit.interval.ms بمثابة كرون مع فترة يختارها المستخدم. إذا تعطل المستهلك ، فسيتم إعادة تعيين جميع الأقسام التي يحتفظ بها المستهلك المعطل إلى آخر تعويض ملتزم بعد إعادة التشغيل أو إعادة التوازن. قد يكون آخر موضع تم الالتزام به قديمًا مثل فترة الالتزام التلقائي نفسها إذا حدث ذلك. يجب قراءة أي رسائل تم استلامها منذ الالتزام السابق من جديد.

أداة قيادة مجموعة مستهلك كافكا

الصورة الائتمان: Unsplash

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

المجموعات بالترتيب الأبجدي

يمكن استخدام دالة kafka-Consumer-groups المضمنة في توزيع كافكا للحصول على قائمة بالمجموعات النشطة في الكتلة. قد يستغرق هذا وقتًا طويلاً على مجموعة كبيرة لأنها تجمع القائمة عن طريق فحص كل وسيط.
bin / kafka-Consumer-groups –bootstrap-server host: 9092 –list

وصف المجموعة

يمكن أيضًا استخدام وظيفة kafka-Consumer-groups لجمع البيانات حول مجموعة معينة. على سبيل المثال ، قم بتنفيذ الأمر التالي لرؤية التعيينات الحالية لمجموعة foo:
bin / kafka-Consumer-groups-bootstrap-server host: 9092 -describe -group foo

وفي الختام

في الوصف أعلاه يمكننا أن نرى مجموعة مستهلكي كافكا وكيف يتم استخدامها طوال العملية.

المصدر: ذكاء بيانات أفلاطون: PlatoData.io

بقعة_صورة

أحدث المعلومات الاستخباراتية

بقعة_صورة

الدردشة معنا

أهلاً! كيف يمكنني مساعدك؟