مقدمه: نیاز انتقادی برای سرعت در پردازش رویداد

برنامه های تاخیر پایین ستون فقرات تعاملات دیجیتال مدرن را تشکیل می دهند که در آن هر ثانیه مهم است.سیستم عامل های تجاری مالی، تشخیص تقلب در زمان واقعی، بازی چند نفره و شبکه های سنسور IoT همه به رویدادهای پردازش با تاخیر حداقل برای ارائه پاسخ دقیق و حفظ اعتماد کاربر، در قلب این سیستم ها خط لوله پردازش رویداد - توالی مراحل که مصرف، فیلتر، تبدیل، و داده های خروجی در نزدیک به زمان دقیق، ردیابی دقیق، تنها یک گزینه قابل اطمینان عملی است؛ و نه تنها یک گزینه قابل اطمینان عملی است.

درک خطوط لوله پردازش Event Process

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

داده های Ingestion

خط لوله با مصرف شروع می شود - دریافت حوادث از منابع خارجی مانند سرورهای وب ([۵]، کارگزاران پیام یا سنسورهای سخت افزاری. Ingestion باید نرخ ورودی متغیر و به طور بالقوه عظیم ارز را کنترل کند، فن آوری های مشترک شامل Apache، NATS، خرگوش MQ، یا گیرنده های سفارشی ULT است.LT. کلیدی در اینجا شامل استفاده از اتصالات غیر بلوکی، اتصالات استخر و استفاده از فایل های فشرده سازی صفر (به عنوان مثال ممکن است: کافکا).

فیلتر کردن

فیلتر کردن حوادث بی ربط در اوایل به منظور کاهش بار پردازش جریان (این مرحله اغلب بررسی های پیش فرض ساده را اجرا می کند.برای به حداقل رساندن تأخیر، فیلتر باید بر روی خام ترین شکل رویداد کار کند (به عنوان مثال، در بایت قبل از چک کامل نمک زدایی) استفاده از فیلترهای (FLT:0Bloom filter یا [F:2] داده های پیشرفته (LT3)

تحول تحول

تغییرات غنی، جمع آوری و یا تغییر داده های رویداد (این مرحله معمولاً محاسبه شده ترین عملیات مشترک شامل تبدیل فرمت داده، استخراج زمینه، تجمع پنجره ای و بهینه سازی ماشین است که در اینجا شامل استفاده از مدل های داده های کشویی (FLT:0LT: 0LT: 1، پیش از آن، بافر و یا مدیریت فایل های کارآمد (FLT3) می شود.

خروجی خروجی خروجی

مرحله نهایی ارائه رویدادهای پردازش شده به سینک مانند پایگاه داده ها، API ها یا خط لوله های پایین جریان باید قابل اعتماد باشند، اما تکنیک ها شامل asynchronous]ynchronous می شوند ، batching (با فواصل دقیق برای جلوگیری از تاخیر)، و اتصال هنگامی که نوشتن داده های سربار آماده و نوشتن می شود، می توانند فهرست را کاهش دهند.

استراتژی های بهینه سازی

بهینه سازی یک خط لوله نیازمند یک دید جامع است – تغییرات در یک مرحله بر دیگران تأثیر می گذارد.در زیر استراتژی های کلیدی با هدایت عملی پیاده سازی هستند.

کاهش Overhead پردازش با ساختارهای داده های ناب

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

پردازش موازی و Concurrencys

معماری های مدرن CPU به طور همزمان با استفاده از استخرهای موازی ، خط لوله را به مراحل مستقل (FLT:2) می رسانند؛ و بدون استفاده از آن، به طور همزمان از [FLT3]، یا [FLT: [F] فریمورک [FLT]، [F7]، و [F6] پردازش موازی، و سفارش Apache [F.

آرشیو برچسب های کارآمد Data Serialization

اغلب بزرگترین مشارکت کننده در تأخیر خط لوله است[ویرایش] فرمت سریال سازی را انتخاب کنید که بین سرعت، تکامل طرح و همکاری، برای تاخیر مطلق پایین، معامله می کند راهنمایی های فرمت زنجیره ای (FLT-1) و .Cap] Proto اجازه می دهد صفر- copy - داده های به طور مستقیم از یک کلید ساده استفاده کنند.

بهینه سازی ارتباطات شبکه

شبکه تأخیر اغلب با کاهش مراحل خط لوله (دومین) در همان میزبان یا همان قفسه، با استفاده از RDMA یا مراحل خط لوله (FLT:2) و [FLTLT3 برای انتقال های متقابل - هش در لایه نرم افزار، رویدادها قبل از ارسال (اما اندازه کوچک را نگه دارید تا از تاخیر استفاده کنید.

استفاده از سخت افزار Acceleration

GPU ها و FPGA ها در محاسبات بسیار موازی رایج در فیلترینگ و تحول هستند، به عنوان مثال، GPU های FPJetson می توانند برای تجزیه و تحلیل های ویدئویی زمان واقعی استفاده شوند، در حالی که FPGA ها در مبادلات مالی برای تطبیق سفارش محبوب هستند، با این حال، شتاب سخت افزار اضافه می کند و بهترین راه برای ارزیابی سریع داده های بزرگ است:

فشار و کنترل جریان

در این صورت، در صورت لزوم، می توان به صورت زیر به صورت زیر به صورت زیر فشار وارد کرد و به صورت زیر به صورت زیر به پایین حرکت کرد.

نظارت و نظارت

بهینه سازی یک چرخه مداوم اندازه گیری، تجزیه و تحلیل و تنظیم است بدون نظارت دقیق، تلاش ها کور هستند.

معیارهای کلیدی برای ردیابی

  • [[۱] [۱۰] [۱۰] [۱۰] [۱۰] [۱۰] [۱۰] [۱۰]] [۱۰] [۱۰]] - اندازه گیری نهایی عملکرد خط لوله.
  • [در این میان] [از طریق [[[[ویرایش]]] [[[[۱]]]]] [[۱۰]]]]] [[۳]]]] [[۱۰]]]] [۱]] [۱]] [۱]] [۱] [۱]] [۱] [۵] [۵] [۵] [۵] [۵] [۵] [۵] [۵] [۵] [۵] [۵] [۵] [۱] [۵] [۱] [۱] [۵] [۵] [۵] [۱] [۲] [۳] [۵] [۵] [۱] [۱] [۱] [۳] [۳] [۱] [۱] [۵] [۱] [۵] [۳] [۱] [۱] [۱] [۵] [۵] [۳] [۳] [۱] [۱] [۵] [۱] [۱] [۱] [۱] [۳] [۵] [۵] [۵] [۲] [۳] [۲] [۵] [۵] [۲] [۱]
  • استفاده از و ]GC مکث [ [FLT3] - شناسایی تنگناهای زنجیره ای و یا فشار حافظه.
  • [در این باره] [در این باره]، [[[۱]] [۱۰] [۱]] [۱۰] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [بر [۳] [بر فراز و [بر [بر [بر [بر [بر روی [بر روی [بر [بر [بر فراز و [۳] [۳] [۳] [بر روی خط لولهٔ] [بر فراز [بر [۳] [بر [
  • [در هر مرحله]، [در هر مرحله]، عمقی را نشان می دهد که نشان دهنده فشار پشت یا ظرفیت تعادلی است.

ابزارهایی برای حرفه سازی و تجسم

[[ویرایش] [[[ویرایش] [[[ویرایش]] [[[ویرایش]]] [[[[ویرایش]]] [[[ویرایش]] [[[ویرایش]] [FLT] [و [F]]]] [و [F]] [و [به]]]] [FLT] [و [F] [F] [F] [و [به کاربران] لینک داده شده است.

استراتژی های تونس

  • [[۱] [۱۰] [۱] [۱۰] [۱] [۱]]: افزایش رشته تا نقطه ای که عملیات CPU در آن نشسته است؛ اجتناب از بیش از حد ⁇ .
  • [در این میان] [در برابر [و] اندازه های : بافرهای بزرگ تر از طریق قطع، اما اضافه کردن تأخیر در داخل P99 مورد نظر.
  • [در این باره]، اگر [از روی] فاصله (FLT:0) استفاده کنید، فقط برای نوشتن، دسته بندی کنید، فقط در صورتی که فاصله ای از آن کنترل شود؛ از نخ های مبتنی بر اندازه و زمان بر هم استفاده کنید.
  • ] جمع آوری انبوه : در خط لوله JVM، به G1GC یا ZGC تغییر دهید و به طور مستقیم اشیاء بزرگ را در نسل قدیمی اختصاص دهید.
  • (: رشته های لوله ای اتصال به هسته های خاص، محلی بودن حافظه را بهبود می بخشد و تغییر زمینه را کاهش می دهد.

بررسی های پیشرفته

برای سیستم های تاخیری پایین، الگوهای معماری بیشتر به بازی می آیند.

رویداد Sourcing و CQRS

منبع رویداد همه تغییرات دولتی را به عنوان یک log از حوادث ذخیره می کند، اجازه می دهد تا دوباره بازی های تعیین کننده همراه با مسئولیت فرماندهی Segregation (CQRS)، مدل خواندن می تواند برای پرسش های کم ارتفاع بهینه سازی شود در حالی که عملیات نوشتن تنها باقی می ماند، این خط لوله از تنگناهای پایگاه داده جدا می شود.

پردازش بدون دولت

در این صورت، در برخی موارد، استفاده از آن آسان تر است و بسیاری از موارد استفاده می شود (مانند جمع آوری جلسه کاربر) یا استفاده از آن نیاز به استفاده از (FLT:3) ذخیره های دولتی (FLT-1) دارند که باید با استفاده از شکست های کوچک (F6LTDB در جریان های کافکا) یا (FLT:2 در نقشه های حافظه) استفاده کنند.[۳][۳][۳][۳][۳][۳][۳][۳][۳][۳][۳][۳][۳][۳][۳][۳][۳][۳][۳][۳][۳][۳][۳][۳][۳][۳][۳][۳][۳][۳][۳][۳][۳][۳][۳][۳][۳][۳][۳][۳][۳][۳][۲][۳][۳][۳][۳][۳][۳][۳][۳][۳][۲][۲][۲][۲][۲][۲][۳][۳][۳][۳][۳][۳][۳][۳][۳][۳][۲][۳][۲][۲][۳][۳][۳][۲][۲][۲][۲][۳][۳][۳][۲][۲][۲][۲][۳][۲

پردازش چارچوب ها

[[رده:رده:]]> [[رده:رده:]]> [[رده:رده:]]> [[رده:رده:]]> [[رده:رده:رده:]]> [[رده:رده:]]> [[رده:رده: [[رده:رده:رده:رده:رده:رده:رده:رده:رده:رده:رده:رده:رده:رده:رده:رده:رده:رده:رده:رده:رده:رده:رده:رده:رده:رده:رده:رده:رده:رده:رده: [[رده:رده:رده:رده:رده:رده:رده:رده:رده:رده:رده:رده:رده:رده:رده:رده:رده:رده:رده:رده:رده:رده:رده:رده:رده:رده:رده:رده:رده:رده:رده:رده:رده:رده:رده:رده:رده:رده: [[رده:رده:رده:رده:رده:رده: [[رده:رده:رده:رده:رده:رده:رده:رده:رده:رده: [[رده: [[رده:رده:رده:رده:رده:رده: [[رده: [[رده:رده:رده:رده:رده:رده: [[

نتیجه گیری

بهینه سازی خط لوله پردازش رویداد برای تاخیر پایین یک نظم چند وجهی است که طراحی نرم افزار، بهره برداری سخت افزار و مهندسی عملکرد مداوم را در بر می گیرد.از طریق درک جریان داده خط لوله و اندازه گیری عملکرد فعلی در هر مرحله، استفاده از بهینه سازی های هدفمند: ساختارهای داده های ضعیف، موازی، زنجیره ای کارآمد و شتاب سخت افزاری که در آن مناسب است، هرگز متوقف نمی شود؛ ابزارهایی مانند ابزار پروپا و Jaeg زمان پردازش سریع تر، می توانند به روش پردازش دقیق تر پاسخ دهند.