برنامه نویسی
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 مناسب را پیکربندی کنید.
- تاخیر مصرف کننده: تأخیر را بررسی کنید و در صورت نیاز گروه های مصرف کننده را مقیاس کنید.
- عدم تعادل پارتیشن: از ابزارهای تعادل مجدد پارتیشن استفاده کنید.
- تأخیر بالا: بهینه سازی تنظیمات تولید کننده/مصرف کننده (به عنوان مثال، اندازه دسته، فشرده سازی).