اخبار

کافکا استریمز :‌پردازش داده بر بستر کافکا

کافکا به عنوان یک سامانه توزیع­‌شده‌ پیام‌­رسان، به چنان رواج و محبوبیتی در اکوسیستم کلان‌­داده دست یافته است که‌ تقریباً در تمام راه حل­‌های حرفه­‌ای پردازش داده، حضور دارد. این امر باعث شده است‌ تا توسعه­‌گران اولیه کافکا که یک محصول داخلی در لینکدین بود، در شرکت Confluent کتابخانه ساده‌­ای برای کافکا با هدف پردازش جریان­‌های داده­ ایجاد کنند که به آن نام کافکااستریمز[۱]نام نهاده­‌اند.

محبوبیت کافکا و نقش آن در معماری های امروزه کلان‌داده

ایده اصلی پشت این پروژه هم این بود که حالا که کافکا بستر ارسال داده از یک پردازش به پردازش دیگر است و دربسیاری از موارد هم پردازش صورت گرفته در هرمرحله، یک اقدام ساده مانند تغییر شکل یا ذخیره در بانک اطلاعاتی و مانند آن است، چرا خود آنها که توزیع و ارسال داده­‌ها را بر عهده دارند، پردازش را هم برعهده نگیرند. برای بسیاری ازشرکت­ها و پروژه­‌هایی که صرفاً ورودیهای خود را از موضوع‌­های[۲]کافکا دریافت میکردند و بعد از پردازش، خروجی را مجددا به موضوع دیگری در کافکا، ارسال می­کردند، این کتابخانه جدید می­تواند بسیار کارآمد و کاربردی باشد و آنها را ازاستفاده از سایر راه­‌حل­های پردازش جریان داده، بی­ نیاز کند.

بنابراین، تنها به عنوان بخشی ازفرآیند پردازش داده و آن هم تنها داده­‌های جریانی، می­توان از این کتابخانه استفاده کرد و به عنوان یک راه ­حل جامع و همه­ منظوره به آن نگاه نخواهیم کرد.

جایگاه کافکا استریمز در معماری های مبتنی بر کافکا

کافکا استریمز کاربران را از راه ­اندازی، پیکربندی و مدیریت کلاستری از اسپارک یا سایر پروژه ­های مشابه که تنها برای پردازش جریان ایجاد شده ­اند، بی­‌نیاز می­‌کند و با ارائه یک مدل برنامه نویسی ناهمگام (آسنکرون)، برای طراحی میکروسرویس­ها بر مبنای کافکا، سهولت زیادی را برای برنامه­ نویسان و توسعه‌گران سامانه­‌های صرفاً جریان­پرداز فراهم می­کند. در حقیقت وجود کافکا به عنوان یک بستر ارسال پیام درشبکه، باعث می­شود کدنویسی و توسعه برنامه‌­های مبتنی بر کافکا استریمز بسیار ساده بوده و به عنوان بخشی از فرآیند مدیریت کافکا در نظرگرفته شود.

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

وجود Kafka Connect هم که امکان ارتباط مستقیم کافکا با انواع‌ منابع داده‌­ای مانند بانک­های مختلف اطلاعاتی را فراهم ساخته است، به رشد و توسعه این کتابخانه که در سال ۲۰۱۶ اولین نسخه آن به بازار ارائه شده است، کمک شایانی خواهد کرد.

با کافکا استریمزمی توانید مستقیما به کاربران اجازه مشاهده و کوئری گرفتن در هر لحظه را  با زبان SQL بدهید.

نکته مثبت دیگری که راجع به کافکااستریمز باید بیان شود، امکان بسته­ بندی آن به عنوان یک محفظه داکر[۳] است که این موضوع خود باعث می­شود نگهداری و تحویل و توسعه آن در یک شبکه بتواند به صورت خودکار و مکانیزه انجام شود.

برای مشاهده مستندات و مثال معروف شمارش کلمات به صورت توزیع شده با کافکا استریمز به آدرس این پروژه در بنیاد آپاچی مراجعه کنید.


[۱]  Kafka Streams

[۲]  Kafka Topics

[۳]   Docker Container

مجتبی بنائی

دانشجوی دکترای نرم‌افزار دانشگاه تهران (yun.ir/smbanaie)، مدرس دانشگاه و فعال در حوزه توسعه نرم‌افزار و مهندسی داده که تمرکز کاری خود را در چند سال اخیر بر روی مطالعه و تحقیق در حوزه کلان‌داده و زیرساخت‌های پردازش داده و تولید محتوای تخصصی و کاربردی به زبان فارسی و انتشار آنها در سایت مهندسی داده گذاشته است. مدیریت پروژه‌های نرم‌افزاری و طراحی سامانه‌های مقیاس‌پذیر اطلاعاتی از دیگر فعالیتهای صورت گرفته ایشان در چند سال گذشته است.

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

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

این سایت از اکیسمت برای کاهش هرزنامه استفاده می کند. بیاموزید که چگونه اطلاعات دیدگاه های شما پردازش می‌شوند.

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