برنامه نویسی

10 سوال اصلی کافکا برای مصاحبه

اینجا هستند 10 سوال متداول مصاحبه در آپاچی کافکا:


1. آپاچی کافکا چیست و اجزای اصلی آن چیست؟

  • پاسخ: کافکا یک پلتفرم پخش جریانی رویداد است که برای ساخت خطوط لوله داده و برنامه های کاربردی بلادرنگ استفاده می شود.

    • اجزای کلیدی:
    • تولید کننده: داده ها را به موضوعات ارسال می کند.
    • مصرف کننده: داده ها را از موضوعات می خواند.
    • کارگزار: سرور کافکا پیام ها را ذخیره می کند.
    • موضوع: دسته هایی که سوابق ارسال می شوند.
    • نگهبان / کنترل کننده باغ وحش: ابرداده های خوشه کافکا را مدیریت می کند (Zookeeper در نسخه های جدیدتر با Kafka Raft جایگزین می شود).

2. چگونه کافکا دوام پیام و تحمل خطا را تضمین می کند؟

  • پاسخ: کافکا به دوام و تحمل خطا از طریق:

    • همانندسازی: موضوعات به پارتیشن تقسیم می شوند و هر پارتیشن در چندین کارگزار تکرار می شود.
    • قدردانی ها: تولیدکنندگان می توانند درخواست تاییدیه کنند (acks) برای اطمینان از نوشته شدن پیام ها.
    • ثبت تعهد: پیام‌ها در یک گزارش ذخیره می‌شوند و حتی پس از خرابی قابل بازیابی هستند.

3. پارتیشن کافکا چیست و چگونه کار می کند؟

  • پاسخ:

    • پارتیشن ها واحد اصلی موازی گرایی در کافکا هستند.
    • هر پارتیشن یک توالی مرتب شده از رکوردها است و یک موضوع می تواند یک یا چند پارتیشن داشته باشد.
    • داده ها با استفاده از پارتیشن ها توزیع می شوند پارتیشن بندی مبتنی بر کلید یا دور روبین (پیش فرض).
    • مصرف کنندگان داده ها را به ترتیب در یک پارتیشن می خوانند.

4. کافکا چگونه با حفظ داده ها برخورد می کند؟

  • پاسخ:

    • کافکا داده ها را برای یک دوره پیکربندی شده حفظ می کند (log.retention.ms(log.retention.bytes) رسیده است.
    • رکوردهای قدیمی بر اساس این تنظیمات حذف می شوند.
    • را سیاست پاکسازی را نیز می توان تنظیم کرد compact فقط آخرین جفت های کلید-مقدار را نگه دارید.

5. نقش نگهبان باغ وحش در کافکا چیست؟

  • پاسخ:

    • Zookeeper ابرداده های کافکا را مدیریت می کند، از جمله:
    • ردیابی کارگزاران در خوشه.
    • انتخاب رهبر برای پارتیشن ها
    • ذخیره تنظیمات برای موضوعات و ACL.
    • شروع از کافکا 2.8، Zookeeper در حال جایگزین شدن با کرافت (Kafka Raft) برای مدیریت ابرداده.

6. کافکا چه تفاوتی با صف های پیام سنتی مانند RabbitMQ دارد؟

  • پاسخ:

    • کافکا برای سیستم های توزیع شده طراحی شده است و بر مقیاس پذیری، دوام و توان عملیاتی بالا تمرکز دارد.
    • برخلاف RabbitMQ، کافکا:
    • پیام ها را برای یک دوره قابل تنظیم حفظ می کند.
    • تولیدکنندگان و مصرف کنندگان را از هم جدا می کند.
    • پشتیبانی از پخش رویداد از سیاهههای مربوط.

7. مکانیسم گروه مصرف کننده در کافکا را توضیح دهید.

  • پاسخ:

    • مصرف کنندگان به عنوان بخشی از یک موضوع مشترک می شوند گروه مصرف کننده.
    • کافکا تضمین می کند که هر پارتیشن فقط توسط یک مصرف کننده در یک گروه برای موازی سازی مصرف می شود.
    • اگر مصرف کننده ای شکست بخورد، دیگری در گروه پارتیشن های آن را بر عهده می گیرد.

8. مکانیسم ISR (In-Sync Replica) کافکا چیست؟

  • پاسخ:

    • ISR به کپی های یک پارتیشن اطلاق می شود که به طور کامل با پارتیشن رهبر همگام شده اند.
    • کافکا فقط روی پارتیشن هایی می نویسد که همه اعضای ISR نوشتن را تایید کرده اند.

9. چگونه بر عملکرد کافکا نظارت می کنید؟

  • پاسخ: ابزارهای رایج نظارت عبارتند از:

    • معیارها: کافکا معیارهای JMX مانند توان عملیاتی، تاخیر تکرار و استفاده از دیسک را در معرض نمایش قرار می دهد.
    • ابزار: پرومتئوس، گرافانا، مرکز کنترل همریز.
    • سیاههها: گزارش های کارگزار، تولید کننده و مصرف کننده را برای مشکلات تجزیه و تحلیل کنید.

10. چالش های رایج با کافکا چیست و چگونه می توان آنها را کاهش داد؟

  • پاسخ:

    • از دست دادن داده ها: Replication و Acknowledment مناسب را پیکربندی کنید.
    • تاخیر مصرف کننده: تأخیر را بررسی کنید و در صورت نیاز گروه های مصرف کننده را مقیاس کنید.
    • عدم تعادل پارتیشن: از ابزارهای تعادل مجدد پارتیشن استفاده کنید.
    • تأخیر بالا: بهینه سازی تنظیمات تولید کننده/مصرف کننده (به عنوان مثال، اندازه دسته، فشرده سازی).

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا