הקדמה: הצורך הקריטי במהירויות בעיבוד אירועים

יישומים נמוכים לעקביות יוצרים את עמוד השדרה של אינטראקציות דיגיטליות מודרניות שבו כל מילימטרים נושאים. פלטפורמות מסחר פיננסיות, זיהוי הונאה בזמן אמת, משחקים מרובי משתתפים ורשתות חיישן IoT תלויים בארועי עיבוד עם עיכוב מינימלי כדי לספק תשובות מדויקות ולשמור על אמון המשתמש.בלב המערכות האלה הוא צינור עיבוד אירוע - רצף של שלבים אלה מקיפים, סינון, ופלט נתונים במשרה ממשית.

המונחים: Event Processing

צינור עיבוד אירוע הוא שרשרת של שלבים עיבוד הפועלים על נתוני הזרמת.כל שלב מקבל אירוע, מבצע פעולה מסוימת, ועובר את התוצאה לשלב הבא.העקבות הכוללת של הצינור היא סכום הזמנים הנשלחים בכל שלב בתוספת הזמן העברת נתונים בין שלבים.

נתונים Ingestion

(הצנרת מתחילה עם צלקות - קבלת אירועים ממקורות חיצוניים כגון שרתי אינטרנט, מתווך הודעה או חיישני חומרה.איינסציה חייבת להתמודד עם שיעורי קלט משתנים וייתכן כי מטבעות מסחר מסיביים כוללים Apache, NATS, RabbitMQ, או מותאם אישית של UDP-based המקלט. Key Optimization כאן כולל שימוש לא חסימת I/O, חיבורי בריכות, והפעלה של אפס-דפוס מתי שניתן יהיה להפחית את הקבצים של דחיסה: FLT2: 1.F: 1.F2K2K2TLT.

סינון

פילטר מסיר אירועים לא רלוונטיים מוקדם להפחית את עומס העיבוד של הזרם.שלב זה לעתים קרובות מבצע בדיקות פשוטות.לצמצם את הסבלנות, סינון צריך לפעול על הצורה הגולמית ביותר של האירוע (למשל, על ידי חתכים לפני ציות מלא) שימוש בתרחישים חברותיים:0Bloom מסננים FLT:1 או FLT:2probabilistic DataFOVAisticspLT דרך בדיקות חברות גבוהות יכול להאיץ תרחישים.

טרנספורמציה

[ההההעשרה], הצטברות או משנה את נתוני האירוע.שלב זה הוא בדרך כלל הפעולות המנציחות ביותר. Common פעולות כוללות המרת נתונים, הפקת שדה, גלגולי גלגולים מחלון, ולמידה מכונה בהקצאת אופטימיזציה כאן כרוכה בשימוש במודלים של ניהול יעיל של FLT:0columnar (FLT:1, pre-ofated buffers, ו-F:2in-in-in-in-in-er) לשקול מודלים לניהול יעיל של מערכת ההפעלה:Digtrated (Flastertrated)

Output

השלב הסופי מספק אירועים מעובדים לשקוע כגון מסדי נתונים, APIs, או צינורות מטה הזרם. Output חייב להיות אמין עדיין מהר.טכניקות כוללות FLT:0asynchronous WritersFLT:1, FLT:2batchingFLT 3: (עם מרווחי פלוש זהים כדי להימנע מהוספת שקיפות), וחיבור בעת כתיבת מסדי נתונים, באמצעות הצהרות מוכן ולהפחית את האינדקס מראש.

אסטרטגיות לאופטימיזציה

אופטימיזציה של צינור דורשת נוף הוליסטי - שינויים בשלב אחד משפיעים על אחרים. להלן הם אסטרטגיות מפתח עם הדרכה מעשית יישום.

עיבוד יתר על המידה עם Lean Data Structures

(ב) ,לעיל יצירה בתוך לולאות חמות (Ruse mutable מכולות) (המכונה גם מנגנונים פרימיטיביים במקום סוגים דחוסים, ומעדיפים את ה-FLT:0off-heap MemoryofFLT:1 for data that Remains over microbatches.

עיבוד במקביל ומטבע Deterministic

(ה) , ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇

המונחים: Efficient Data Serialization

(ה) ⁇ (ה) היא לעיתים קרובות התורנית הגדולה ביותר לנטייה של צנרת (ה) לבחור פורמט סידוריזציה שסחר בין מהירות, schema Evolution, ו- Interoperability. for Ab מוחלט של latency,FLT:0FlatBuffersibirds) בין מהירות: 8 מעלות צלזיוס (Factch) הוא לעתים קרובות תשלום LT:2Cape-ALT 3.

אופטימיזציה של Network Communication

(ב) ,למרבה הצער, הוא לעתים קרובות צמצם את השלבים של צינורות על אותו מארח או אותו מצרף, באמצעות שימוש ב-FLT:0RDMAFLT:1 או FLT:2 InfiniBandFLT 3 עבור העברות בין-לאד (Tund) בשכבה, באירועים אצווה לפני שליחת גודל קטן מספיק כדי לא להוסיף לשימוש).

המונחים: Hardware Acceleration

GPUs ו- FPGAs מצטיינים חישובים מקבילים מסיבית נפוץ סינון וטרנספורמציה.לדוגמה, FPLT:0Jetson GPUsFLT:1 יכול לשמש עבור צינורות וידאו בזמן אמת, בעוד FPGAs הם פופולריים בחילופים פיננסיים עבור התאמה.עם זאת, האצה מוסיף מורכבות והוא הטוב ביותר עבור נתיבים חמים.

חזרה לדף: Flow Control

(ב) ,לא ניתן להזיז את הצנרת ולגרום לספיציונות לעקביות: שלבים במעלה הזרם להאט כאשר מטה הזרם הוא מכווץ. Reactive (למשל, ccFLT:0.Project ReactorcioFLT:1, FLT:2Akka StreamsFLT 3) לספק אותות אחוריים סטנדרטיים.

עקבו אחרי Tuning

אופטימיזציה היא מחזור מתמשך של מדידה, ניתוח והתאמה.ללא ניטור מדויק, מאמצים הם עיוורים.

מפתחי metrics to Track

  • (ב) ,0) ,סוף-סוף-סוף ל-end latencyFIRLT:1 (p50, p99, p999, p999) - המדד האולטימטיבי של ביצועי הצינור.
  • (ב) ויקרא י"ד: ויקרא י"ד): "האירועים לכל שלב אחר נכנסים ויוצאים מכל שלב.
  • (ב) [15] ,9) , [15] ו[ה], ו[ה][דרוש מקור]:2 [ה]] [15],[דרוש מקור], [15]
  • (ב) ויקרא י"ד:2 ,2 ,2 ,2 ,3 ).
  • (ב) בכל שלב (ב) - ⁇ (ב) - ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇

כלים לטיפוח וויזואליזציה

(ב) [17] (ב) , ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇

אסטרטגיות כוונון

  • (ב) ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇
  • (ב) ⁇ :0) ,ב"מ: גדלים גדולים יותר עולים דרך הטלפט, אך מוסיפים עצלות. Tune כדי לשמור על הגינות בתוך ה-99 הרצוי.
  • (ב) ,0) גדלים ב': לכותב, רק אם המרווח של פלוש נשלט; השתמש בפלושבות מבוססות גודל ומבוססות על זמן יחד.
  • (ב) ,0) אוסף של Garbage CollectionFLT:1: ב צינורות JVM, לעבור ל-G1GC או ZGC, ולהקצות חפצים גדולים בדור הישן ישירות.
  • (ב) ⁇ 0CPU pinningingFLT:1: חוטי צינורות מחייבים ליבות ספציפיות משפרים את אזורי השבר ומפחיתים את המעבר ההקשר.

שיקולים מתקדמים

עבור מערכות שקיפות נמוכות קיצוניות, דפוסים אדריכליים נוספים באים למשחק.

אירוע Sourcing ו-CQRS

מיקור אירועים מאחסן את כל השינויים הממלכתיים כאתר של אירועים, ומאפשר ל-Digy Replay המשולב עם אחריות Command Query Segregation (CQRS), מודל הקריאה ניתן לייעל עבור שאילתות בעלות נמוכה תוך כתיבת פעולות נשארות נספח בלבד.זה מקלקל את הצינור מצווארי מסד נתונים.

המונחים: stateless processing

(ב) קל יותר לדרג ולייעל את השימוש במקרים רבים (למשל, העלאה של משתמשים) לדרוש מדינה.שימוש ב-FLT:0.0.10.10.10.10.1 (כמו RocksDB ב-Capek Streams) או FLT:2in-memory MapFLT 3 עם שכפול המדינה, לשקול כשלים, לשקול LTF3 ל-D.

המונחים: space Frameworks

(ב) , (ב) , ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇

מסקנה

אופטימיזציה של צינורות עיבוד אירועים עבור שקיפות נמוכה היא משמעת רב-פנים המשתרעת על עיצוב תוכנה, ניצול חומרה והנדסה ביצועים רציפה.התחל על ידי הבנת זרימת הנתונים של הצינור ומדידת ביצועים נוכחיים בכל שלב. החל אופטימיזציה ממוקדת: מבנים נתונים רזה, מקבילות, סידורי יעילות, האצה במקום המתאים.