Um noch einmal auf unseren Effizienz Vergleich zwischen MQTT und CoAP zu kommen.
Will man schnell Daten z.B. Sensorwerte von vielen Sensoren in eine Datenbank übertragen sind ein paar einfache Faustregeln zu beachten:
- Sensordaten komprimieren – z.B. binär kodieren (unschön aber effizient)
- Ethernet MTU ausnutzen bzw. optimieren (muss man halt im „Kopf“ behalten)
- kein zusätzlicher Protokoll Overhead durch komplexe Protokolle (z.B. HTTP)
Daraus resultiert eigentlich: man schreibe seinen eigenen TCP IP Socket Server mit seinem eigenen optimierten aber sehr proprietären Daten Aufbau, wiederum optimiert für Ethernet oder eben entsprechenden Data Link Layer.
Und weil das Ganze dann schon wieder recht „Eigen“ wird, kann man je nach Anwendungsfall auch nur einen oder zwei der drei Punkte umsetzen.
Recht erfolgreich haben wir MQTT mit einem optimierten Protokoll (kodiert und Ethernet MTU optimiert) verwendet. Auf der Zielseite mussten parallele Parser das ganz wieder für die Zeitreihen Datenbank „aufdröseln“. Zu Hilfe kam uns die Funktion Shared Subscriptions die in der neuesten Version MQTT 5.0 implementiert wurde.
Spannend wird es dann noch, wenn man z.B. vom CAN Bus (z.B. CAN Vibration Sensorwerte auf Ethernet um mappen muss. Eine ordentliche Planung im Vorfeld mit einigen einfachen Excel Optimierungen kann da schon sehr helfen.