من اشکان کیمیا قلم از گروه میربزرگی هستم و در این مقاله به نکاتی در مورد آپاچی کافکا اشاره میکنیم :
آپاچی کافکا چیست ؟
آپاچی کافکا یک پلتفرم متن باز stream processing می باشد که جهت بررسی داده ها استفاده می شود و به عنوان یک واسط بین طرفین عمل می کند.
منظور از طرفین در جمله بالا تولید کننده ها( Producers) ومصرف کننده ها ( Consumers)می باشد .
یک سیستم publish-subscribe messaging است که اجازه ی تبادل داده بین سرور ها ، نرم افزار ها و پردازنده ها را فراهم میکند .
آپاچی کافکا در اصل توسط شرکت لینکدین توسعه داده شده است اما بعد ها شرکت آپاچی آن را خرید .
هر موقع صحبت از آپاچی کافکا می شود همه ذهنشون به سمت ربیت ام کیو (RabbitMQ) هم می رود . در اینجا میتوانید مقدمه ای در مورد جفتشون بخونید .
Messaging System چیست ؟
سیستمی است جهت تبادل ساده پیام مابین دو یا حتی بیشتر از دو شخص یا دستگاه یا...که این پیام میتواند ریکوست باشد یا یک کویری در دیتابیس یا هر چیزی که فکر کنید.
.در این سیستم فرستنده پیام را به عنوان تولید کننده (Producer) و دریافت کننده ی پیام را به عنوان مصرف کننده (Consumer) میشناسیم .
به پردازش داده در سیستم های موازی پردازش استریم میگوییم .این پردازش اجازه می دهد که نرم افزار های مختلف اجرای موازی دادهها را انجام دهند .
تعدادی از قابلیت های پردازش موازی در کافکا :
-به محض اینکه استریم رکوردها اتفاق میوفتد پردازش شروع می شود .
-به روشی کم خطا استریم های داده را ذخیره میکند .
برای درک و لمس کامل کافکا باید 4 ای پی آی زیر را کامل بشناسید :
Producer API:به نرم افزار اجازه میدهد استریمی از رکورد ها را منتشر (Publish ) .
Consumer API:به نرم افزار اجازه می دهد که استریم های مختلف را دریافت و آن ها را پردازش کند .
Streams API: این ای پی آی به نرم افزار اجازه می دهد که به شکل موثر استریم ورودی را به خروجی تبدیل کند .
Connector API: اجازه ی اجرای ای پی آی های توسعه یافته توسط تولید کننده و دریافت کننده ها را فراهم میکند
1-قادر به مدیریت میلیون ها داده می باشد.
2-به عنوان یک واسط میان مقصد و مبدا عمل میکند . و ارسال کننده باید داده را به کافکا و دریافت کننده باید از آن دریافت کند .
3-بسیار کارایی بالایی دارد و با تاخیر کمتر از 10 میلی ثانیه بسیار عالی عمل میکند .
4-اشتراک گذاری داده را بسیار راحت کرده است .
5-شرکت های بزرگ دنیا نظیر نتفیلیکس ، اوبر ، والمارت از این سرویس استفاده میکنند .
6-کافکا اجازه می دهد که سیستم در مواقعی که اروری دارد به کار خود ادامه دهد (fault-tolerance).به عنوان مثال در مواقعی که یک (Consumer) پیام را موفقیت آمیز دریافت میکند اما به هر دلیلی نمیتواند پردازش کند امکان دوباره دریافت (Consume) آن پیام وجود ندارد . اما کافکا در همچین شرایطی با پردازش دوباره داده مشکل را حل میکند .