خانه / Database / کافکا چیست؟

کافکا چیست؟

کافکا چیست؟
کافکا یک سیستم پیامرسانی است که به عنوان بخش ورودی یک شبکه توزیع شده از آن استفاده میشود. به طور عملی با استفاده از آن، میتوان تعداد زیادی از داده های به هم ریخته را به صورت یک صف و با ترتیب خاصی به خروجی انتقال داد.
عناصر کافکا
کافکا از چندین بخش تشکیل شده است:
دلالها(Brokers)- عناوین(Topics)- قسمتها(Partitions)

سرویسها
تولیدکنندگان(Producers): وظیفه نوشتن در یک تاپیک را بر عهده دارد.
مصرفکنندگان(Consumers): وظیفه خواندن اطلاعات را از یک تاپیک بر عهده دارد.
نگهدارنده باغوحش(Zookeeper): سرویس کافکا که توسط آن برای هر بروکر در یک تاپیک، وظیفهای در پارتیشن تخصیص میدهد. وظیفه دیگر آن اعلام پیوستن و یا حذف شدن یک بروکر به کل اعضا است. و همچنین معرفی وظایف اعضای موجود به عضو جدید.
وظایف
مدیر(Leader): توسط زوکیپر انتخاب میشود و هر پارتیشن یک لیدر دارد که نوشتن و خواندن اطلاعات در هر پارتیشن بر روی او انجام میشود.
دنبالهرو(Follower): هر بروکری که در یک تاپیک باشد ولی لیدر یکی از پارتیشنها نباشد، برای آن پارتیشن فالوور محسوب میشود.
عضو بهروز(In-sync replica): هر عضو –شامل لیدر و فالوور- که اطلاعاتش بهروز باشد و در شبکه حاضر باشد.
تعاریف
انحراف(Offset): برای تمام خانه های حافظه در یک پارتیشن یک نام در نظر میگیریم که به ان آفست گفته میشود.

نوشتن:
زمانی که قصد نوشتن اطلاعات را داشته باشیم، سرویس پرودیوسر این اطلاعات را بر روی یکی از پارتیشنها در بروکری که مدیر پارتیشن مربوطه است انجام میدهد. و سپس آن بروکر این اطلاعات را برای سایر بروکر ها نیز ارسال میکند تا آنها نیز این اطلاعات را در پارتیشن مربوطه ذخیره کنند و همگی با یکدیگر سینک باشند. پس از اتمام این فرآیند، عمل نوشتن تمام و تایید میشود. نحوه انتخاب یک پارتیشن برای نوشتن بر روی آن، توسط خود کاربر انجام میشود و در صورت عدم تخصیص توسط کاربر، خود سرویس پرودیوسر با استفاده از راوند رابین(Round-Robin) این کار را انجام میدهد.

 

خواندن:
برای خواندن اطلاعات، سرویس کانسیومر از همان بروکری که لیدر پارتیشن مربوطه است، اطلاعات را میخواند. هر یک از کانسیومرها به خاطر دارد که آخرین آفستی که خوانده است کجا بوده تا دفعه بعد ادامه آن را بخواند.

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

  1. شبکه منتظر بازگشت لیدر بماند!
  2. زوکیپر برای پارتیشن مربوطه یک لیدر جدید انتخاب کند.

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

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