"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > التخزين المتدرج في كافكا - ملخص من مدونة التكنولوجيا في Uber

التخزين المتدرج في كافكا - ملخص من مدونة التكنولوجيا في Uber

تم النشر بتاريخ 2024-08-17
تصفح:960

Tiered Storage in Kafka - Summary from Uber

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

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

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

سيناريو

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

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

حل

الجوهر هو تحويل الوسيط عن طريق إضافة إدارة السجل عن بعد وإدارة التخزين إليه.

RemoteLogManager: يدير دورة حياة مقاطع السجل البعيد، بما في ذلك النسخ والتنظيف والجلب.

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

RemoteLogMetadataManager: يدير دورة حياة البيانات التعريفية لقطاعات السجل البعيد بتناسق قوي.

من بينها، يعمل RemoteLogManager كمكون تحكم، ويتصل مباشرة بالقرص في الوسيط لاسترداد بيانات القراءة. كما أنه مسؤول عن إعادة الاتصال بالبيانات البعيدة. RemoteStorageManager هو الكيان الذي يعمل على البيانات، وRemoteLogMetadataManager هو المسؤول عن إدارة البيانات الوصفية.

ملخص الإجراءات الثلاثة في تخزين كافكا المتدرج

  1. نسخ المقاطع إلى وحدة التخزين البعيدة
    يعتبر مقطع السجل مؤهلاً للنسخ إلى المخزن البعيد إذا كانت إزاحة النهاية الخاصة به (إزاحة الرسالة الأخيرة في المقطع) أقل من إزاحة آخر ثابت للقسم.(إزاحة الأخير المستقر (LSO): أعلى إزاحة حيث يتم الإقرار بجميع الرسائل السابقة بشكل كامل من خلال جميع النسخ المتماثلة المتزامنة، مما يضمن عدم فقدان البيانات.)يتعامل RemoteStorageManager مع نسخ مقاطع السجل جنبًا إلى جنب مع الفهارس المرتبطة بها، والطوابع الزمنية، ولقطات المنتج، وذاكرة التخزين المؤقت للعصر الرئيسي.

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

  3. جلب المقاطع من وحدة التخزين البعيدة
    يحدد RemoteLogManager الجزء البعيد المستهدف استنادًا إلى فترة الإزاحة والقائد المطلوبة من خلال النظر في مخزن بيانات التعريف باستخدام RemoteLogMetadataManager. يستخدم RemoteStorageManager للعثور على الموضع داخل المقطع والبدء في جلب البيانات المطلوبة.

بيان الافراج تم إعادة نشر هذه المقالة على: https://dev.to/bochaoli95/tiered-storage-in-kafka-summary-from-ubers-technology-blog-40cg?1 إذا كان هناك أي انتهاك، يرجى الاتصال بـ [email protected] لحذفه
أحدث البرنامج التعليمي أكثر>

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

Copyright© 2022 湘ICP备2022001581号-3