کافکا استریمز :پردازش داده بر بستر کافکا
کافکا به عنوان یک سامانه توزیعشده پیامرسان، به چنان رواج و محبوبیتی در اکوسیستم کلانداده دست یافته است که تقریباً در تمام راه حلهای حرفهای پردازش داده، حضور دارد. این امر باعث شده است تا توسعهگران اولیه کافکا که یک محصول داخلی در لینکدین بود، در شرکت Confluent کتابخانه سادهای برای کافکا با هدف پردازش جریانهای داده ایجاد کنند که به آن نام کافکااستریمز[۱]نام نهادهاند.
ایده اصلی پشت این پروژه هم این بود که حالا که کافکا بستر ارسال داده از یک پردازش به پردازش دیگر است و دربسیاری از موارد هم پردازش صورت گرفته در هرمرحله، یک اقدام ساده مانند تغییر شکل یا ذخیره در بانک اطلاعاتی و مانند آن است، چرا خود آنها که توزیع و ارسال دادهها را بر عهده دارند، پردازش را هم برعهده نگیرند. برای بسیاری ازشرکتها و پروژههایی که صرفاً ورودیهای خود را از موضوعهای[۲]کافکا دریافت میکردند و بعد از پردازش، خروجی را مجددا به موضوع دیگری در کافکا، ارسال میکردند، این کتابخانه جدید میتواند بسیار کارآمد و کاربردی باشد و آنها را ازاستفاده از سایر راهحلهای پردازش جریان داده، بی نیاز کند.
بنابراین، تنها به عنوان بخشی ازفرآیند پردازش داده و آن هم تنها دادههای جریانی، میتوان از این کتابخانه استفاده کرد و به عنوان یک راه حل جامع و همه منظوره به آن نگاه نخواهیم کرد.
کافکا استریمز کاربران را از راه اندازی، پیکربندی و مدیریت کلاستری از اسپارک یا سایر پروژه های مشابه که تنها برای پردازش جریان ایجاد شده اند، بینیاز میکند و با ارائه یک مدل برنامه نویسی ناهمگام (آسنکرون)، برای طراحی میکروسرویسها بر مبنای کافکا، سهولت زیادی را برای برنامه نویسان و توسعهگران سامانههای صرفاً جریانپرداز فراهم میکند. در حقیقت وجود کافکا به عنوان یک بستر ارسال پیام درشبکه، باعث میشود کدنویسی و توسعه برنامههای مبتنی بر کافکا استریمز بسیار ساده بوده و به عنوان بخشی از فرآیند مدیریت کافکا در نظرگرفته شود.
اگر قرار است دادههایی را به صورت مداوم بخوانیم و پردازشهایی ساده روی آنها انجام داده، نتیجه را در بانک اطلاعاتی و مانند آن ذخیره کنیم، کافکا استریمز، یک چارچوب پردازشی ساده و مناسب در اختیار ما می گذارد که هم مقیاسپذیر است و هم ما را از چارچوبهای پردازشی کلانداده مانند هدوپ و اسپارک و مدیریت نگهداشت آنها، بینیاز میکند.
وجود Kafka Connect هم که امکان ارتباط مستقیم کافکا با انواع منابع دادهای مانند بانکهای مختلف اطلاعاتی را فراهم ساخته است، به رشد و توسعه این کتابخانه که در سال ۲۰۱۶ اولین نسخه آن به بازار ارائه شده است، کمک شایانی خواهد کرد.
نکته مثبت دیگری که راجع به کافکااستریمز باید بیان شود، امکان بسته بندی آن به عنوان یک محفظه داکر[۳] است که این موضوع خود باعث میشود نگهداری و تحویل و توسعه آن در یک شبکه بتواند به صورت خودکار و مکانیزه انجام شود.
برای مشاهده مستندات و مثال معروف شمارش کلمات به صورت توزیع شده با کافکا استریمز به آدرس این پروژه در بنیاد آپاچی مراجعه کنید.
[۱] Kafka Streams
[۲] Kafka Topics
[۳] Docker Container