علی سفیدموی
علی سفیدموی
خواندن ۲ دقیقه·۵ سال پیش

آموزش Apache Kafka - مقدمه

آپاچی کافکا یک پلتفرم قدرتمند برای تبادل پیام میان اپلیکیشن ها
آپاچی کافکا یک پلتفرم قدرتمند برای تبادل پیام میان اپلیکیشن ها

کافکا چیست؟

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

امروزه از این پلتفرم در اغلب اپلیکیشن های توزیع شده استفاده می شود. یکی از ویژگی های بسیار خوب این پلتفرم، قابلیت دسترسی پذیری بالای (High availability) آن است. همچنین از قابلیت بازیابی خودکار نیز پشتیبانی می کند. این موضوع سبب می شود تا Kafka به عنوان راه حل مناسبی برای سیستم های داده ای مقیاس بزرگ شناخته شود.

عملکرد کلی Kafka شامل مفاهیمی از قبیل Kafka Broker ، Kafka Producer و Kafka Consumer است که زیاد آن ها را می شنویم. Kafka Broker یک node در کلاستر Kafka است که برای ذخیره سازی و همچنین replicate کردن دیتا از آن استفاده می شود. Producer پیام ها را درون ظرفی به نام topic قرار می دهد. Consumer نیز پیام ها را از topic می خواند.

در این مقدمه کوتاه به سراغ آشنایی بیشتر با مفهوم Messaging System در Kafka می رویم.

سیستم تبادل پیام در Kafka :

هنگامی که ما داده هایی را از یک اپلیکیشن به اپلیکیشن دیگری منتقل می کنیم در این جا از Messaging System استفاده می کنیم. در نتیجه استفاده از چنین سیستمی، بدون نگرانی از نحوه اشتراک داده ها، اپلیکیشن مان تنها بر روی خود داده ها تمرکز می کند. در کل دو نوع الگوی پیام رسانی وجود دارد. Point-to-Point و Publish-Subscribe. در ادامه با هر یک بیشتر آشنا خواهیم شد.

سیستم تبادل پیام نقطه به نقطه (Point-to-Point) :

در این سیستم، پیام ها همگی در یک صف نگهداری می شوند. همچنین یک پیام خاص صرفا توسط یک consumer می تواند consume شود. این سیستم پیام رسانی این اطمینان را می دهد که هر زمان که یک consumer یک پیام را از صف می خواند، آن پیام دیگر از آن صف محو خواهد شد.

سیستم تبادل پیام Publish-Subscribe :

در این سیستم، پیام ها داخل ظرفی به نام topic قرار می گیرند (publish می شوند). در واقع در این سیستم، consumer ها می توانند در یک یا چند topic عضو شوند (subscribe کنند) و تمامی پیام های آن تاپیک ها را consume کنند.

چرا باید از کلاستر Apache Kafka استفاده کنیم؟

در مباحث big data معمولا با دو چالش اصلی مواجهیم. اولین چالش، جمع آوری حجم زیادی از داده ها بوده و چالش دوم تحلیل داده های جمع آوری شده می باشد. لازمه ی غلبه بر این دو چالش استفاده از یک messaging system است. Kafka این امکان را برایمان فراهم کرده است. چند ویژگی مهم Kafka عبارتند از:

  • ردیابی فعالیت های وب برای پردازش Real Time
  • هشدار و گزارش متریک های عملیاتی
  • تبدیل داده به فرمت استاندارد
  • پردازش مداوم داده های استریم

آپاچی کافکا با ویژگی های گفته شده و به دلیل گستردگی استفاده به رویارویی با تکنولوژی های مشابه مانند ActiveMQ و RabbitMQ آمده است.

در قسمت های بعدی با این پلتفرم قدرتمند بیشتر آشنا خواهیم شد.


apache kafkaکافکاmessage queueبرنامه نویسی
یه کامپیوتریِ خوشحال، علاقه مند به یادگیری تکنولوژی های جدید ;)
شاید از این پست‌ها خوشتان بیاید