معماری تحلیل دادههای رویداد با تأخیر کم (Low-Latency)
ساخت خطوط لوله داده (data pipelines) برای مکانهای فیزیکی بزرگ دشوار است.
یک رویداد با ۲۰,۰۰۰ شرکتکننده، مشکلات متفاوتی نسبت به یک اپلیکیشن وب استاندارد ایجاد میکند. در یک اپلیکیشن وب، کاربران در مناطق زمانی مختلف پخش شدهاند. اما در یک مکان فیزیکی، هزاران نفر همزمان باعث ایجاد جهشهای ناگهانی در دادهها (data spikes) میشوند.
پردازش دستهای (Batch processing) یا long-polling باعث ایجاد تأخیر میشود. در کنترل جمعیت، تأخیر ۱۵ دقیقهای به معنای شکست است. در این صورت، شما به جای جلوگیری از مشکلات، در حال واکنش نشان دادن به مشکلات قدیمی هستید.
برای دستیابی به سرعت زیر یک ثانیه، به یک جریان مداوم از سختافزار لبه (edge hardware) تا داشبورد خود نیاز دارید.
در اینجا طرحی برای یک خط لوله تلمتری (telemetry pipeline) مقاوم ارائه شده است.
لایه ۱: محاسبات لبه با اولویت آفلاین (Offline-First Edge Compute)
شما به تأخیری کمتر از ۵ میلیثانیه نیاز دارید. همچنین باید قطع شدن شبکه را مدیریت کنید. از گرههای لبه (edge nodes) با یک حافظه پنهان محلی (in-memory cache) مانند Redis استفاده کنید. پیش از شروع رویداد، پایگاه داده ابری خود را در این گرهها بازتاب (mirror) دهید.
وقتی یک شرکتکننده یک تگ را اسکن میکند، سیستم حافظه پنهان محلی را بررسی میکند. این کار باعث میشود از اینترنت عبور نکنید و تردد از گیتها بدون توقف ادامه یابد.
لایه ۲: دریافت ناهمگام (Asynchronous Ingestion) از طریق MQTT
شبکههای مکانهای فیزیکی اغلب ناپایدار هستند. از MQTT استفاده کنید زیرا سبک است. گرههای لبه پیامها را به یک کارگزار ابری (cloud broker) منتشر میکنند. سپس کارگزار، دادهها را به صفهای دریافت (ingestion queues) شما هدایت میکند.
لایه ۳: وبسوکتهای تمامدوطرفه (Full-Duplex WebSockets)
اجازه ندهید فرانتاند (frontend) برای دریافت بهروزرسانیها درخواست ارسال کند. از WebSockets برای حفظ یک اتصال پایدار با API gateway خود استفاده کنید. این کار تضمین میکند که تیم عملیات، تغییرات محیطی را در کمتر از یک ثانیه مشاهده میکند.
این ساختار به تیمها اجازه میدهد تا فوراً جهشهای جمعیت یا کاهش مشارکت را شناسایی کنند. شما میتوانید پیش از ایجاد گلوگاه (bottleneck)، کارکنان را به سمت نقاط دیگر هدایت کنید.
شما چگونه سختافزار IoT خود را برای جمعیتهای متراکم بهینه میکنید؟ نظرات خود را در پایین با ما به اشتراک بگذارید.