طرح معماری: تحلیل داده با تأخیر کم برای اماکن

مدیریت داده‌های ۲۰,۰۰۰ نفر در یک رویداد زنده، مانند ساخت یک اپلیکیشن وب نیست.

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

اگر از پردازش دسته‌ای (batch processing) یا long-polling استفاده کنید، داده‌های شما با تأخیر می‌رسند. در کنترل جمعیت، ۱۵ دقیقه تأخیر به معنای شکست است. شما گلوگاه‌های جمعیتی را تنها پس از وقوع آن‌ها مشاهده خواهید کرد.

شما به به‌روزرسانی‌های زیر ثانیه‌ای نیاز دارید. باید یک خط لوله جریانی (streaming pipeline) از لایه لبه (edge) تا داشبورد خود بسازید.

در اینجا معماری مورد نیاز شما آورده شده است:

۱. لایه لبه (Ingestion) یک گره لبه صنعتی (industrial edge node) در هر ورودی قرار دهید. آن را از طریق گذرگاه سریال (serial bus) به خواننده‌های RFID متصل کنید.

برای تصمیم‌گیری‌های فوری به ابر (cloud) متکی نباشید. از یک پایگاه داده درون‌حافظه‌ای محلی مانند Redis روی گره لبه استفاده کنید. این کار به سیستم اجازه می‌دهد تا مجوزها را در کمتر از ۵ میلی‌ثانیه بررسی کند. اگر اینترنت مکان قطع شود، دروازه‌ها همچنان کار می‌کنند.

۲. لایه انتقال (MQTT) استفاده از نقاط پایانی HTTP REST برای سخت‌افزارهای لبه را متوقف کنید. HTTP برای هزاران اسکن کوچک، سربار (overhead) بسیار زیادی دارد.

در عوض از MQTT استفاده کنید. این پروتکل از اندازه بسته بسیار کمی استفاده می‌کند و یک اتصال پایدار (persistent connection) را حفظ می‌کند. این روش حتی در شبکه‌های ناپایدار اماکن نیز کار می‌کند. گره‌های لبه، داده‌های فشرده‌شده را به یک کارگزار ابری (cloud broker) ارسال می‌کنند. کارگزار این رویدادها را بلافاصله به پردازشگرهای شما (workers) هدایت می‌کند.

۳. لایه بصری (WebSockets) تیم عملیات شما باید تغییرات را در لحظه وقوع مشاهده کند. اجازه ندهید مرورگر برای دریافت به‌روزرسانی‌ها از طریق API درخواست بفرستد.

از WebSockets برای یک اتصال تمام‌دوطرفه (full-duplex) استفاده کنید. این کار داده‌ها را بلافاصله به داشبورد می‌فرستد. وقتی سالنی بیش از حد شلوغ می‌شود، تیم در کمتر از یک ثانیه متوجه آن می‌شود. آن‌ها می‌توانند سپس کارکنان را جابجا کنند یا تابلوهای دیجیتال را برای اصلاح جریان جمعیت به‌روزرسانی کنند.

خلاصه پشته تکنولوژی (stack):

  • Edge: Local Redis + Industrial PC
  • Transport: MQTT (EMQX or HiveMQ)
  • Frontend: WebSockets for real-time UI

شما چگونه داده‌های جمعیت متراکم را در تنظیمات IoT خود مدیریت می‌کنید؟ بیایید در ادامه درباره زیرساخت بحث کنیم.

Source: https://dev.to/stampiq/architectural-blueprint-building-a-low-latency-analytics-pipeline-for-high-capacity-physical-venues-14m6