اخبار

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

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

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

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

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

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

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

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

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

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

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

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


[۱]  Kafka Streams

[۲]  Kafka Topics

[۳]   Docker Container

مشاهده بیشتر

مجتبی بنائی

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

نوشته های مشابه

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

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

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

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