بهترین کد کدی هست که نوشته نشود.(قسمت اول)

در این مقاله من تجربه خودم رو راجب سیستم های Distributed و Real-time نوشته ام امیدوارم که براتون مفید باشه.

حدود یک سال و نیم پیش من مسئله ای داشتم برای انتقال داده های بزرگ از یک دیتابیس RDBMS به چندین دیتابیس Schema less به صورت لحظه ای و با کمترین قطعی و دیتایی هم که داشت منتقل میشد باید روش یک سری عملیات انجام میشد (Aggregations) و به صورت هدفمند روی دیتابیس های مقصد نوشته میشد و اپلیکیشن های جدید هم این دیتا های Aggregated شده رو از این دیتابیس های جدید میخوندند و دیتا رو نشون میدادن .

برای شما

در ابتدا من شروع کردم به بررسی و اولین گزینه ای که برای پیاده سازی بود ست کردن Trigger ها روی دیتابیس مبدا بود و انجام عملیات بعد از call شدن اون Trigger ها .

مشکلی که وجود داشت باید برای تک تک Operation ها روی هر Table کد مینوشتم در لایه دیتابیس و این پیچیدگی دیتابیس اصلی رو میبرد بالا

و من به این باور رسیده بودم قبلا که

بهترین کد کدی هست که نوشته نشود

پس شروع کردم به جستجو و تحقیق و با شرکت Confluent اشنا شدم . در یک سال و نیم اخیر من حدود ۸ تا از ایونت های شرکت Confluent رو حضور داشتم آخرینش هم Kafka Summit Europe 2021 که چند هفته پیش برگزار شد. و من اطلاعاتی راجب سیستم های Distributed Mode ها و Event Driven Application ها کسب کردم و موازی با این کنفرانس ها شروع به یادگیری ، تحقیق و پیاده سازی این سیستم ها کردم و اون مسئله ای که من داشتم با کمترین پیچیدگی ، با کمترین قطعی (بالاترین uptime) و نوشتن کمترین کد به همراه ویرایش داده ها در بین مسیر به دیتابیس های مقصد مینوشتم.

شکل زیر نمای کلی از کاری که من میخواستم انجام بدم رو نشان میدهد.

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

خوشبختانه این تنها مزیت این سیستم نیست و این سیستم ها به ما کمک میکنه به پردازش لحظه ای داده (Real-time process) و اینکه داده هایی که داریم رو بهتر بشناسیم یا اینکه روی این داده ها پردازشی انجام بدیم و این داده ها رو به اشتراک بگذاریم بین تیمهای مختلف از جمله تیم های پردازش داده و یادگیری ماشین ، برنامه نویسی و تیم های دیگر و یا اینکه این داده ها رو Visualize کنیم.

نمونه هایی اجرا شده از این سیستم در صنعت های مختلف هست مثل صنعت های مالی ، بازی ، فروشگاه ای اینترنتی گردشگری و نمونه هایی از این جنس که دیتا به صورت لحظه ای تغییر میکنه و جایی رو این داده ها تصمیمات بیزینسی گرفته میشه یا به کاربر چیزی اطلاع داده میشود.

نمونه ای از پیاده سازی این سیستم در صنعت بازی در شکل زیر میبینید

پردازش داده کافکا
پردازش داده کافکا

ممنون از وقتی که گذاشتین و مطالعه کردین ?

منابع :

وبسایت ها

https://www.confluent.io

https://kafka.apache.org

https://debezium.io

کتاب ها

Kafka The Definitive Guide REAL-TIME DATA AND STREAM PROCESSING AT SCALE

Data Sharing for Dummies

نویسنده مطلب: پرهام زارع

منبع مطلب

به فکر سرمایه‌گذاری هستی؟

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

ثبت نام و دریافت جایزه
ممکن است شما بپسندید
نظر شما درباره این مطلب

آدرس ایمیل شما منتشر نخواهد شد.