مقدمه
آپاچی کافکا (Apache Kafka) یک پلتفرم نرم افزاری اوپنسورس برای پردازش جریان هست و قادر هست چندین تریلیون رویداد رو به صورت همزمان رسیدگی و پردازش کنه. آپاچی کافکا ابتدا در سال 2011 توسط لینکدین در زبان برنامهنویسی اسکالا و جاوا ساخته و نوشته شد و سپس به بنیاد نرم افزار آپاچی (Apache) اهدا شد. هدف این پروژه رفع مشکل کندی زمان ضبط دادهها از روی وبسایت و همچنین فراهم کردن یک پلتفرم یکپارچه با توان بالا و تأخیر کم برای پردازش دادهها به صورت real-time (رایانش بیدرنگ یا محاسبه همزمان با وقوع) هست.
همونطور که گفته شد آپاچی کافکا برای مواجهه با انبوهی از دادهها که به صورت مداوم در حال ارسال هستن طراحی شده و همین ویژگی، پردازش و ذخیرهسازی دادهها رو برای کسانی که فرصت و وقت کافی ندارن فراهم کرده. در ادامه ابتدا شما رو با کاربردهای اساسی این سیستم و در آخر با مهمترین ویژگیهای اون آشنا میکنیم.
کاربردهای آپاچی کافکا
پیگیری فعالیت وب سایت
مورد اصلی استفاده برای کافکا این هست که امکان ردیابی پایپ لاین فعالیت کاربر رو به عنوان مجموعهای از فیدهای نشر و اشتراک در real-time (محاسبه همزمان با وقوع) بازسازی کنیم. این به معنی این هست که فعالیت سایت شامل نمایش صفحه، جستجوها یا سایر اقداماتی ممکن هست کاربران انجام بدن برای موضوعات اصلی در هر نوع فعالیتی آشکار میشه. این فیدها برای اشتراک در مورد موارد مختلفی از جمله پردازش در real-time، نظارت در real-time و بارگیری در سیستم های ذخیره سازی داده Hadoop یا برای پردازش و گزارش آفلاین در دسترس هست.
جمع آوری Log
بسیاری از افراد از کافکا به عنوان جایگزینی برای سلوشن جمع آوری log استفاده میکنن. جمع آوری Log، فایل های فیزیکی رو از سرورها جمع آوری میکنه و اونها رو برای پردازش در مکان مرکزی قرار میده. کافکا جزئیات فایلها رو خلاصه میکنه و امکان پردازش با تاخیر کم و پشتیبانی آسانتر از منابع دادههای مختلف رو میده.
پیام رسانی
کافکا به عنوان جایگزین کارگزار پیام، سنتیتر کار میکنه. انتقال دهندگان پیام به دلایل مختلفی همچون جدا کردن پردازش از تولید کنندگان داده، بافر کردن پیام های پردازش نشده و... استفاده میشن. در مقایسه با بیشتر سیستمهای پیام دهی، کافکا از توان بهتر، پارتیشن بندی داخلی و تکثیر و تحمل خطا برخوردار هست که اون رو به راه حل مناسب برای برنامههای پردازش پیام در مقیاس بزرگ تبدیل میکنه.
پردازش جریان
بسیاری از کاربران کافکا، دادههای پردازش پایپ لاین رو که شامل چندین مرحله هستن پردازش میکنن؛ جایی که دادههای ورودی خام از مباحث کافکا مصرف، جمع و سپس غنی سازی میشن. در غیر این صورت برای مصرف بیشتر یا پردازش به موضوعات جدید تبدیل میشن.
متریک
کافکا معمولا برای دادههای نظارت عملیاتی استفاده میشه. این شامل جمع آوری آمار از برنامههای توزیع شده برای تولید فید متمرکز دادههای عملیاتی هست.
مزیت و ویژگیهای آپاچی کافکا
قابل اطمینان
کافکا دارای توزیع، تقسیم، تکثیر و تحمل خطاست، به همین دلیل بسیار قابل اعتماد هست.
مقیاس پذیری
آپاچی کافکا میتونه مقیاس پذیری رو در هر چهار بعد، یعنی تولید کنندگان رویداد، پردازنده های رویداد، مصرف کنندگان رویداد و اتصالات رویداد کنترل کنه. به عبارت دیگه، کافکا به راحتی و بدون خرابی مقیاس و معیار مشخص میکنه.
کارایی
کافکا از توان بالایی برای انتشار و توزیع پیامها برخوردار هست و عملکرد پایدار و مناسبی داره.
حجم بالا
کافکا میتونه با حجم عظیمی از جریان دادهها، به راحتی کار کنه.
قابلیت توسعه
روشهای زیادی وجود داره که برنامهها بتونن به کافکا متصل بشن و ازش استفاده کنن. علاوه بر این، روش هایی برای بررسی و نوشتن اتصالات جدید در صورت لزوم ارائه میده.
از دیگر ویژگیهای کافکا میشه به موارد زیر اشاره کرد:
- تبدیل دادهها
- تحمل خطا
- پایداری و دوام
- همانند سازی
برای یادگیری اصولی آپاچی کافکا میتونی به این لینک سر بزنی و بدون دردسر دوره مورد نظرت رو انتخاب کنی:)