ವಾಸ್ತುಶಿಲ್ಪದ ನೀಲನಕ್ಷೆ: ಸ್ಥಳಗಳಿಗಾಗಿ ಕಡಿಮೆ-ವಿಳಂಬದ (Low-Latency) ವಿಶ್ಲೇಷಣೆ

ನೇರ ಕಾರ್ಯಕ್ರಮದಲ್ಲಿ (live event) 20,000 ಜನರ ಡೇಟಾವನ್ನು ನಿರ್ವಹಿಸುವುದು ವೆಬ್ ಆಪ್ ನಿರ್ಮಿಸುವುದರಂತೆಯಲ್ಲ.

ವೆಬ್ ಆಪ್‌ಗಳಲ್ಲಿ, ಬಳಕೆದಾರರು ವಿವಿಧ ಸಮಯ ವಲಯಗಳಲ್ಲಿ (time zones) ಹರಡಿಕೊಂಡಿರುತ್ತಾರೆ. ಆದರೆ ದೊಡ್ಡ ಸ್ಥಳಗಳಲ್ಲಿ (venues), ಸಾವಿರಾರು ಜನರು ಏಕಕಾಲದಲ್ಲಿ ಭಾರಿ ಪ್ರಮಾಣದ ಡೇಟಾ ಬರ್ಸ್ಟ್‌ಗಳನ್ನು (data bursts) ಸೃಷ್ಟಿಸುತ್ತಾರೆ. ಬೆಳಗಿನ ರಶ್ ಅವರ್ (rush hour) ಸಾಮಾನ್ಯ ವ್ಯವಸ್ಥೆಯನ್ನು ಅತಿಯಾಗಿ ಒತ್ತಡಕ್ಕೆ ಸಿಲುಕಿಸಬಹುದು.

ನೀವು ಬ್ಯಾಚ್ ಪ್ರೊಸೆಸಿಂಗ್ (batch processing) ಅಥವಾ ಲಾಂಗ್-ಪೋಲಿಂಗ್ (long-polling) ಬಳಸಿದರೆ, ನಿಮ್ಮ ಡೇಟಾ ತಡವಾಗಿ ತಲುಪುತ್ತದೆ. ಜನಸಂದಣಿ ನಿಯಂತ್ರಣದಲ್ಲಿ (crowd control), 15 ನಿಮಿಷದ ವಿಳಂಬವು ವೈಫಲ್ಯಕ್ಕೆ ಸಮಾನ. ಜನಸಂದಣಿಯ ಅಡಚಣೆಗಳನ್ನು (bottlenecks) ಅವು ಸಂಭವಿಸಿದ ನಂತರವೇ ನೀವು ಗಮನಿಸಲು ಸಾಧ್ಯವಾಗುತ್ತದೆ.

ನಿಮಗೆ ಸೆಕೆಂಡಿಗಿಂತ ಕಡಿಮೆ ಸಮಯದಲ್ಲಿ ಅಪ್‌ಡೇಟ್‌ಗಳು ಬೇಕು. ನೀವು ಎಡ್ಜ್‌ನಿಂದ (edge) ನಿಮ್ಮ ಡ್ಯಾಶ್‌ಬೋರ್ಡ್‌ವರೆಗೆ ಸ್ಟ್ರೀಮಿಂಗ್ ಪೈಪ್‌ಲೈನ್ ಅನ್ನು ನಿರ್ಮಿಸಬೇಕು.

ನಿಮಗೆ ಬೇಕಾದ ವಾಸ್ತುಶಿಲ್ಪ ಇಲ್ಲಿದೆ:

  1. ಎಡ್ಜ್ ಲೇಯರ್ (Ingestion) ಪ್ರತಿಯೊಂದು ಪ್ರವೇಶದ್ವಾರದಲ್ಲಿ ಒಂದು ಇಂಡಸ್ಟ್ರಿಯಲ್ ಎಡ್ಜ್ ನೋಡ್ ಅನ್ನು ಇರಿಸಿ. ಅದನ್ನು ಸೀರಿಯಲ್ ಬಸ್ ಮೂಲಕ RFID ರೀಡರ್‌ಗಳಿಗೆ ಸಂಪರ್ಕಿಸಿ.

ತಕ್ಷಣದ ನಿರ್ಧಾರಗಳಿಗಾಗಿ ಕ್ಲೌಡ್ ಮೇಲೆ ಅವಲಂಬಿತರಾಗಬೇಡಿ. ಎಡ್ಜ್ ನೋಡ್‌ನಲ್ಲಿ Redis ನಂತಹ ಸ್ಥಳೀಯ ಇನ್-ಮೆಮರಿ ಡೇಟಾಬೇಸ್ ಬಳಸಿ. ಇದು 5ms ಕ್ಕಿಂತ ಕಡಿಮೆ ಸಮಯದಲ್ಲಿ ಅನುಮತಿಗಳನ್ನು (permissions) ಪರಿಶೀಲಿಸಲು ವ್ಯವಸ್ಥೆಗೆ ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ. ಸ್ಥಳದ ಇಂಟರ್ನೆಟ್ ಸ್ಥಗಿತಗೊಂಡರೂ, ಗೇಟ್‌ಗಳು ಕೆಲಸ ಮಾಡುತ್ತವೆ.

  1. ಟ್ರಾನ್ಸ್‌ಪೋರ್ಟ್ ಲೇಯರ್ (MQTT) ಎಡ್ಜ್ ಹಾರ್ಡ್‌ವೇರ್‌ಗಾಗಿ HTTP REST ಎಂಡ್‌ಪಾಯಿಂಟ್‌ಗಳನ್ನು ಬಳಸುವುದು ನಿಲ್ಲಿಸಿ. ಸಾವಿರಾರು ಸಣ್ಣ ಸ್ಕ್ಯಾನ್‌ಗಳಿಗೆ HTTP ಅತಿಯಾದ ಓವರ್‌ಹೆಡ್ (overhead) ಹೊಂದಿದೆ.

ಬದಲಾಗಿ MQTT ಬಳಸಿ. ಇದು ಕನಿಷ್ಠ ಪ್ಯಾಕೆಟ್ ಗಾತ್ರವನ್ನು ಬಳಸುತ್ತದೆ ಮತ್ತು ಸ್ಥಿರವಾದ ಸಂಪರ್ಕವನ್ನು (persistent connection) ಕಾಯ್ದುಕೊಳ್ಳುತ್ತದೆ. ಇದು ಅಸ್ಥಿರವಾದ ಸ್ಥಳದ ನೆಟ್‌ವರ್ಕ್‌ಗಳಲ್ಲೂ ಕೆಲಸ ಮಾಡುತ್ತದೆ. ಎಡ್ಜ್ ನೋಡ್‌ಗಳು ಸಂಕುಚಿತಗೊಳಿಸಿದ (compressed) ಡೇಟಾವನ್ನು ಕ್ಲೌಡ್ ಬ್ರೋಕರ್ ಬಳಿ ಕಳುಹಿಸುತ್ತವೆ. ಬ್ರೋಕರ್ ಈ ಇವೆಂಟ್‌ಗಳನ್ನು ತಕ್ಷಣವೇ ನಿಮ್ಮ ವರ್ಕರ್ಸ್‌ಗೆ ರೌಟ್ ಮಾಡುತ್ತದೆ.

  1. ವಿಶುವಲ್ ಲೇಯರ್ (WebSockets) ನಿಮ್ಮ ಕಾರ್ಯಾಚರಣಾ ತಂಡವು (operations team) ಬದಲಾವಣೆಗಳು ಸಂಭವಿಸಿದ ತಕ್ಷಣವೇ ಅವುಗಳನ್ನು ನೋಡಬೇಕಾಗುತ್ತದೆ. ಬ್ರೌಸರ್ API ಮೂಲಕ ಅಪ್‌ಡೇಟ್‌ಗಳಿಗಾಗಿ ಕೇಳುವಂತೆ ಮಾಡಬೇಡಿ.

ಫುಲ್-ಡ್ಯೂಪ್ಲೆಕ್ಸ್ (full-duplex) ಸಂಪರ್ಕಕ್ಕಾಗಿ WebSockets ಬಳಸಿ. ಇದು ಡೇಟಾವನ್ನು ತಕ್ಷಣವೇ ಡ್ಯಾಶ್‌ಬೋರ್ಡ್‌ಗೆ ತಲುಪಿಸುತ್ತದೆ. ಒಂದು ಹಾಲ್‌ನಲ್ಲಿ ಅತಿಯಾದ ಜನಸಂದಣಿ ಉಂಟಾದಾಗ, ತಂಡವು ಒಂದು ಸೆಕೆಂಡಿಗಿಂತ ಕಡಿಮೆ ಸಮಯದಲ್ಲಿ ಅದನ್ನು ನೋಡಬಹುದು. ನಂತರ ಅವರು ಸಿಬ್ಬಂದಿಯನ್ನು ಸ್ಥಳಾಂತರಿಸಬಹುದು ಅಥವಾ ಜನಸಂದಣಿಯ ಹರಿವನ್ನು ಸರಿಪಡಿಸಲು ಡಿಜಿಟಲ್ ಸೈನ್ಸ್‌ಗಳನ್ನು ಅಪ್‌ಡೇಟ್ ಮಾಡಬಹುದು.

ಸ್ಟ್ಯಾಕ್‌ನ ಸಾರಾಂಶ:

  • Edge: Local Redis + Industrial PC
  • Transport: MQTT (EMQX ಅಥವಾ HiveMQ)
  • Frontend: ರಿಯಲ್-ಟೈಮ್ UI ಗಾಗಿ WebSockets

ನಿಮ್ಮ IoT ಸೆಟಪ್‌ಗಳಲ್ಲಿ ದಟ್ಟವಾದ ಜನಸಂದಣಿಯ ಡೇಟಾವನ್ನು ನೀವು ಹೇಗೆ ನಿರ್ವಹಿಸುತ್ತೀರಿ? ಕೆಳಗೆ ಮೂಲಸೌಕರ್ಯದ (infrastructure) ಬಗ್ಗೆ ಚರ್ಚಿಸೋಣ.

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