برنامه نویسی

راهنمای نهایی Apache Kafka: اصول ، معماری و مفاهیم اصلی

مقدمه

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

در این راهنما اصول Kafka ، معماری آن ، مفاهیم اصلی و یک آموزش مفید را برای شروع کار خود می آموزید.


آپاچی کافکا چیست؟

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

چرا کافکا محبوب است؟

توان: میلیون ها رویداد در ثانیه ، مانند یک بزرگراه که هزاران وسیله نقلیه را به طور همزمان اداره می کند ، پردازش می کند.

تحمل گسل: تکثیر داده ها قابلیت اطمینان را تضمین می کند ، مشابه داشتن مسیرهای پشتیبان برای دفع اضطراری.

مقیاس پذیر: از مقیاس افقی پشتیبانی می کند ، مانند اضافه کردن خطوط بیشتر به آزادراه.

بادوام: از یک سیستم ذخیره سازی مبتنی بر ورود به سیستم استفاده می کند ، اطمینان حاصل می شود که پیام ها هرگز از بین نمی روند-مانند فیلم های امنیتی که به صورت نورد ذخیره می شوند.

محور: ایده آل برای میکروسرویس ، تجزیه و تحلیل در زمان واقعی و پردازش ورود به سیستم ، به عنوان یک اخبار زنده برای برنامه ها

موارد استفاده در دنیای واقعی

🔹 نوتفلیکس: مانیتور میلیون ها رویداد جریان در زمان واقعی ، مشابه یک مرکز کنترل ترافیک که وسایل نقلیه در بزرگراه را مدیریت می کند.

🔹 باکره: پردازش داده های تطبیق در زمان واقعی و به روزرسانی قیمت گذاری ، شبیه به یک توزیع کننده هماهنگ کننده تاکسی.

🔹 توییتر: توییت ها ، روندها و اعلان ها در سراسر سرورهای جهانی ، مانند یک ایستگاه پخش که به روزرسانی های زنده را منتقل می کند.


معماری کافکا توضیح داد

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

1. تولید کنندگان

تولیدکنندگان داده ها را به موضوعات کافکا منتشر می کنند ، دقیقاً مانند خبرنگاران که اخبار را به بخش های مختلف یک روزنامه می فرستند.

2. مباحث و پارتیشن ها

کافکا داده ها را در موضوعات موضوعاتی، که بیشتر به پارتیشیه ها– مباحث تصور به عنوان کانال های تلویزیونی و پارتیشن ها به عنوان برنامه های مختلف به طور همزمان پخش می شوند.

3. کارگزاران

کارگزاران سرورهای کافکا هستند که داده ها را ذخیره می کنند و پیام ها را توزیع می کنند ، دقیقاً مانند انبارهای مدیریت توزیع کالا.

4. مصرف کنندگان و گروه های مصرف کننده

مصرف کنندگان پیام از مباحث را می خوانند. وقتی بخشی از a گروه مصرف کننده، آنها حجم کار را به اشتراک می گذارند ، درست مانند تیمی از پیشخدمت ها که میزهای مختلفی را در یک رستوران اداره می کنند.

5. Zookeeper

Zookeeper کنترل کننده ترافیک کافکا ، مدیریت ابرداده ، انتخابات رهبر و هماهنگی بین مؤلفه ها است. به آن فکر کنید کنترل ترافیک هوایی اطمینان از فرود و برخاستن صاف.

6. kafka connect & kafka جریان

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

چگونه کافکا کار می کند (گام به گام)

  1. تولید کنندگان پیام ارسال می کنند → کافکا آنها را به یک پارتیشن می نویسد ، مانند مشتریانی که سفارشات غذایی را قرار می دهند.
  2. کارگزاران کافکا پیام ها را ذخیره می کنند → پیام ها تکرار می شوند ، مشابه کپی کردن دستور العمل در کتابهای آشپزی چندگانه برای تهیه نسخه پشتیبان.
  3. مصرف کنندگان پیام می خوانند → پیگیری افست تضمین می کند که پیام ها یک بار پردازش می شوند ، مانند ردیابی شماره بلیط در یک نانوایی.
  4. حفظ و تراکم pognes پیام های قدیمی بر اساس محدودیت های پیکربندی شده ادامه می یابد ، دقیقاً مانند فیلم های نظارتی که پس از یک دوره خاص بازنویسی می شوند.

Hand-on: شروع با کافکا

مرحله 1: کافکا را به صورت محلی نصب کنید

# Download Kafka
wget https://downloads.apache.org/kafka/3.3.1/kafka_2.13-3.3.1.tgz

# Extract and navigate
tar -xvzf kafka_2.13-3.3.1.tgz
cd kafka_2.13-3.3.1

# Start Zookeeper (Required for Kafka Management)
bin/zookeeper-server-start.sh config/zookeeper.properties &

# Start Kafka Broker
bin/kafka-server-start.sh config/server.properties &
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

مرحله 2: یک موضوع کافکا ایجاد کنید

bin/kafka-topics.sh --create --topic test-topic --bootstrap-server localhost:9092 --partitions 3 --replication-factor 1
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

مرحله 3: پیام تولید و مصرف کنید

پیام تولید

bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test-topic
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

پیام ها را در ترمینال تایپ کرده و Enter را فشار دهید.

پیام مصرف کنید

bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test-topic --from-beginning
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

شما باید پیامهایی را که قبلاً تایپ کرده اید ببینید!


مفاهیم اصلی کافکا

1. جریان رویداد

Kafka اجازه می دهد تا در زمان واقعی رویداد پخش شود ، دقیقاً مانند یک بازار سهام که معاملات زنده را نشان می دهد.

2. تکثیر

داده ها در سراسر کارگزاران تکرار می شوند تا از دسترسی زیاد اطمینان حاصل کنند – فکر کردن از آن به عنوان ژنراتور پشتیبان چندگانه در یک شهر.

3. مدیریت جبران

مصرف کنندگان موقعیت خود را در یک موضوع با استفاده از جبران خسارت ردیابی می کنند ، دقیقاً مانند یک نشانک ، جایی را که در یک کتاب ترک کرده اید ، پیگیری می کند.

4. ذخیره سازی مبتنی بر ورود به سیستم

Kafka پیام ها را در قالب ورود به سیستم غیرقابل تغییر ، شبیه به a ذخیره می کند ضبط کننده جعبه سیاه در یک هواپیما

5. پردازش دقیقاً یکسان

کافکا فراهم می کند در یک بارهبا در همان یکسانوت دقیقاً یکسان ضمانت های تحویل ، دقیقاً مانند سطوح مختلف پوشش بیمه برای تحویل.


موارد پیشرفته استفاده از کافکا

🔹 تحلیلی در زمان واقعی

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

microservice های رویداد محور

Kafka با استفاده از یک رویکرد رویداد محور ، دقیقاً مانند نحوه واکنش یک سیستم چراغ راهنمایی اتوماتیک به شرایط جاده ، به Decouple Services کمک می کند.

🔹 جمع و نظارت بر ورود به سیستم

سازمان ها از Kafka برای جمع آوری و تجزیه و تحلیل سیاهههای مربوط استفاده می کنند ، مشابه A خبرگزاری خبرگزاران مختلف را گردآوری می کندبشر

🔹 پردازش داده IoT

Kafka به طور موثری مصرف داده های در مقیاس بزرگ را از دستگاه های IoT ، شبیه به A سیستم شهر هوشمند هزاران به روزرسانی سنسور را پردازش می کندبشر


افکار نهایی

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

🚀 بیشتر محتوای کافکا می خواهید؟ برای شیرجه های عمیق در جریان های کافکا ، ادغام ها و موارد استفاده پیشرفته دنبال کنید!

💬 سوالی دارید؟ نظر زیر را رها کنید!

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

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

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

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