۳۰ شهریور ۱۴۰۳

Techboy

اخبار و اطلاعات روز تکنولوژی

آپاچی کافکا چیست؟ جریان رویداد مقیاس پذیر

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

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

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

آپاچی کافکا، که در ابتدا در لینکدین توسعه یافت، یکی از بالغ‌ترین پلتفرم‌ها برای پخش رویدادها است. موارد کمکی کافکا عبارتند از Apache Flink، Apache Samza، Apache Spark، طوفان آپاچی، Databricks، و Ververica. جایگزین های کافکا عبارتند از Amazon Kinesis، Apache Pulsar، Azure Stream Analytics، Confluent، و Google Cloud Dataflow.

یکی از نکات منفی کافکا این است که راه اندازی خوشه های بزرگ کافکا می تواند مشکل باشد. پیاده‌سازی‌های ابری تجاری کافکا، مانند Confluent Cloud و Amazon Managed Streaming برای Apache Kafka، آن و سایر مشکلات را با قیمتی برطرف می‌کنند.

آپاچی کافکا تعریف شده

Apache Kafka یک پلت فرم متن باز، جاوا/اسکالا، توزیع شده پخش رویداد برای خطوط لوله داده با عملکرد بالا است. ، تجزیه و تحلیل جریان، یکپارچه سازی داده ها، و برنامه های کاربردی حیاتی. رویدادهای کافکا سازماندهی شده و در موضوعات ذخیره می شوند.

کافکا دارای پنج API اصلی است:

  •  Admin API برای مدیریت و بازرسی موضوعات، کارگزاران، و سایر اشیاء کافکا.
  •  API تولیدکننده برای انتشار (نوشتن) جریانی از رویدادها برای یک یا چند مورد موضوعات کافکا.
  •  Consumer API برای اشتراک (خواندن) یک یا چند موضوع و پردازش جریان رویدادهایی که برای آنها ایجاد می شود.
  •  Kafka Streams API برای پیاده‌سازی برنامه‌های پردازش جریانی و میکروسرویس‌ها. این توابع سطح بالاتری را برای پردازش جریان‌های رویداد، از جمله تبدیل‌ها، عملیات حالت‌پذیر مانند تجمع‌ها و پیوستن‌ها، پنجره‌سازی، پردازش بر اساس زمان رویداد و موارد دیگر ارائه می‌کند. ورودی از یک یا چند مبحث خوانده می شود تا خروجی به یک یا چند مبحث تولید شود و به طور موثر جریان های ورودی را به جریان های خروجی تبدیل کند.
  •  Kafka Connect API برای ساخت و اجرای اتصال‌دهنده‌های واردات/صادرات قابل استفاده مجدد که مصرف می‌کنند (خواندن) یا تولید (نوشتن) جریانی از رویدادها از و به سیستم ها و برنامه های کاربردی خارجی تا بتوانند با کافکا ادغام شوند. به عنوان مثال، یک اتصال دهنده به یک پایگاه داده رابطه ای مانند PostgreSQL ممکن است هر تغییری را در مجموعه ای از جداول ثبت کند. با این حال، در عمل، شما معمولاً نیازی به پیاده‌سازی رابط‌های خود ندارید، زیرا جامعه کافکا در حال حاضر صدها کانکتور آماده برای استفاده را ارائه می‌کند.
سرور GitHub Enterprise کنترل‌های استقرار را اضافه می‌کند

برای پیاده‌سازی پردازش جریانی که پیچیده‌تر از آن چیزی است که بتوانید به راحتی با Streams API انجام دهید، می‌توانید کافکا را با آپاچی سامزا (در زیر بحث شده) یا Apache Flink ادغام کنید.

برای نسخه تجاری پشتیبانی شده از Apache Kafka، Confluent را در نظر بگیرید.

کافکا چگونه کار می کند؟

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

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

مشتریان: مشتریان کافکا به شما امکان می‌دهند برنامه‌های کاربردی و ریزسرویس‌های توزیع‌شده را بنویسید که جریان‌های رویدادها را به صورت موازی، در مقیاس و به شیوه‌ای بدون خطا می‌خوانند، می‌نویسند و پردازش می‌کنند، حتی در مورد مشکلات شبکه یا خرابی ماشین کافکا با تعدادی از مشتریان ارسال می‌شود که توسط ده‌ها مشتری ارائه شده توسط جامعه کافکا مشتریان کافکا برای جاوا و اسکالا از جمله کتابخانه سطح بالاتر جریان های کافکا و برای Go در دسترس هستند. ، Python، C/C++، و بسیاری از زبان های برنامه نویسی دیگر و همچنین REST API.

نحوه کار با موجودیت های قطع شده در Entity Framework Core

Apache Samza چیست؟

Apache Samza یک چارچوب پردازش جریانی منبع باز Scala/Java است که در ابتدا در LinkedIn توسعه داده شد. ، همراه با (آپاچی) کافکا. Samza به شما اجازه می دهد تا برنامه های حالت دار بسازید که داده ها را در زمان واقعی از چندین منبع از جمله آپاچی کافکا پردازش می کنند. ویژگی های Samza عبارتند از:

کافکا و همجوار

Confluent Platform یک اقتباس تجاری از آپاچی کافکا توسط سازندگان اصلی کافکا است که در محل و در محل ارائه شده است. در ابر. Confluent Cloud از ابتدا به عنوان یک سرور بدون سرور، الاستیک، مقرون به صرفه و کاملاً بازسازی شد. سرویس بومی ابری مدیریت می‌شود و روی سرویس‌های وب آمازون، مایکروسافت آژور و پلتفرم Google Cloud اجرا می‌شود.

کافکا در ارائه دهندگان عمده خدمات ابری

پخش جریانی مدیریت‌شده آمازون برای آپاچی کافکا (MSK) با Confluent Cloud و Amazon Kinesis در AWS وجود دارد. هر سه در اصل خدمات یکسانی را انجام می دهند. در Microsoft Azure، Apache Kafka در HDInsight و Confluent Cloud با Azure Event Hubs و Azure Stream Analytics همزیستی دارند. در Google Cloud، Google Cloud Dataflow، Google Cloud Dataproc، Google Cloud Pub/Sub، و Google Cloud BigQuery با Confluent Cloud همزیستی دارند.

نمونه های استفاده از کافکا

Tencent (یک مشتری Confluent) استفاده شده است کافکا برای ایجاد خطوط لوله داده برای ورود گزارش های بین منطقه ای، پلت فرم های یادگیری ماشین، و ارتباطات ناهمزمان بین میکروسرویس ها. Tencent به توان عملیاتی و تأخیر کمتری نسبت به یک خوشه کافکا نیاز داشت، بنابراین خوشه های کافکا خود را در یک لایه پروکسی قرار داد تا یک طرح کافکا فدرال ایجاد کند که بیش از ۱۰ تریلیون پیام در روز را با حداکثر پهنای باند خوشه ۲۴۰ گیگابیت بر عهده دارد. s.

Microsoft Azure یک نمونه اولیه راه‌حل پردازش داده‌های اینترنت اشیا سرتاسر با Confluent Cloud، کارگزاران و رابط‌های MQTT، فروشگاه تحلیلی Azure Cosmos DB، Azure Synapse Analytics و Azure Spring Cloud. مقاله ارجاع شده شامل تمام مراحل راه اندازی است.

ACERTUS یک سیستم مدیریت ناوگان خودرو سرتاسر با Confluent Cloud، ksqlDB (پایگاه داده SQL تخصصی برای جریان داده)، AWS Lambda، و یک انبار داده Snowflake. ACERTUS گزارش می دهد که در سال اول بیش از ۱۰ میلیون دلار درآمد از این سیستم ایجاد کرده است، که جایگزین یک سیستم عمدتا دستی شده است.

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