NanoMQ est une passerelle MQTT légère et hautes performances dans les scénarios de périphérie IIoT open source nationaux

334e9a12b0d9de9fbc14a03eb87a1d95.png

NanoMQ est un projet open source d'informatique de périphérie lancé au début de 2021. Il s'agit d'un serveur de messages MQTT léger et hautes performances de nouvelle génération pour les scénarios d'informatique de périphérie IoT.

À l'ère de l'IoT, les données sont la productivité principale, et la périphérie est l'endroit où les données naissent. Pour agréger et distribuer rapidement des données dans un environnement réseau complexe à la périphérie, un bus de messages de périphérie à haut débit et en temps réel est crucial. Cependant, en raison de la longue chaîne industrielle et des raisons historiques de diverses industries verticales, il existe une fragmentation des protocoles et de multiples modes de messages à la périphérie , et la puissance de calcul et la consommation électrique de l'environnement embarqué sont également strictement limitées . Ces problèmes ont mis en avant de nouvelles exigences et de nouveaux défis pour le bus de messages Edge.

NanoMQ s'engage à résoudre ces problèmes, en fournissant un bus de messages léger et performant qui peut unifier le flux de données à la périphérie. Dans le même temps, il offre une évolutivité et une portabilité excellentes, s'adapte à diverses plates-formes embarquées et permet de gérer et d'obtenir facilement des données fragmentées dispersées à la périphérie.

principaux avantages

  • Ultra-léger : le service MQTT peut être démarré avec une empreinte mémoire aussi faible que 200 Ko.

  • E/S entièrement asynchrones : modèle de programmation d'acteur intégré pour l'IoT et MQTT afin de paralléliser la charge de calcul.

  • Parallélisme multi-thread : excellente évolutivité, bonne prise en charge du SMP multicœur (multitraitement symétrique) et performances multi-thread.

  • Hautes performances : capacité de traitement de messages à un million de niveaux à la périphérie.

  • Multiplateforme : il peut être porté de manière transparente sur n'importe quelle plate-forme système basée sur POSIX.

  • Interopérabilité : Transparence des données, interfaces d'extension riches et intégration facile avec divers cadres informatiques de pointe.

Caractéristiques

  • Prise en charge complète de MQTT 5.0 : prise en charge complète de MQTT 5.0/3.1.1, compatible avec tous les SDK open source MQTT standard.

  • Pontage MQTT : fonction de pontage multi-cloud MQTT intégrée, une configuration simple peut accéder à divers services cloud populaires pour établir des canaux côté cloud pour la synchronisation des données à plusieurs endroits.

  • Moteur de règles : le moteur de règles simple intégré peut traiter de manière flexible les données Edge. Il peut également être intégré à eKuiper pour l'analyse de données en continu à la périphérie.

  • Persistance des messages : concevoir des fonctions de persistance et de mise en cache des données pour les scénarios d'environnement réseau complexes de l'Internet des objets. Les messages Bridge peuvent être mis en cache localement, puis repris après la déconnexion. Les données importantes peuvent être conservées et transférées à la périphérie.

  • API d'intégration enrichies : Fournit des interfaces WebHook évolutives pilotées par les événements et des API HTTP compatibles O&M pour aider à réduire le coût du développement et de l'intégration d'applications informatiques en périphérie.

  • Passerelle multiprotocole : la passerelle de protocole prend en charge les protocoles de message couramment utilisés tels que nanomsg/ZeroMQ/Websocket, ce qui facilite la mise en place de topologies de routage de données flexibles à la périphérie. Et fournir le cryptage et la sécurité de la connexion.

architecture produit

a5bf670edad22e67924cdffc58d4233d.png

NanoMQ est petit mais complet, c'est un petit serveur Edge MQTT + bus de messages avec des fonctions complètes dans tous les aspects.

  • Couche d'adaptation de plate-forme : détectez le système d'exploitation de la plate-forme matérielle en cours d'exécution, fournissez une API système adaptée et évitez les problèmes de liaison de plate-forme.

  • Couche multitâche : modèle d'acteur intégré conçu pour les scénarios IoT, offrant des capacités parallèles au niveau des threads, et pouvant être étendu efficacement sur les systèmes SMP modernes.

  • Couche transport : la couche transport est responsable de la gestion des flux TCP/UDP, y compris la gestion des connexions et le contrôle des flux. Elle garantit également la fonctionnalité Zero-copy de NanoMQ pour différents scénarios tels que la QoS, réduit la consommation de mémoire et améliore les performances.

  • Couche de protocole : convertissez le flux de données en messages MQTT, générez différents événements et exposez des interfaces pour le protocole MQTT. Dans le même temps, la couche protocole est également responsable de la gestion de la fenêtre de vol des messages de chaque client.

  • Couche d'application : implémentez le moteur de règles et l'arborescence globale des rubriques MQTT, et lisez la configuration pour les fonctions de pontage et de transfert de messages correspondantes. Et exposez tous les événements de message MQTT et l'API HTTP aux utilisateurs.

Installer et déployer

NanoMQ est un projet open source sous licence MIT, vous pouvez obtenir le code complet sur Github

https://github.com/emqx/nanomq

Exécutez les commandes suivantes pour exécuter rapidement NanoMQ via Docker, en spécifiant les ports 1883, 8083 et 8883 pour écouter MQTT, MQTT sur WebSockets et MQTT sur le trafic SSL/TLS, respectivement.

docker run -d --name nanomq -p 1883:1883 -p 8083:8083 -p 8883:8883 emqx/nanomq:latest

Test de performance

Sur l'hôte 4C8G, il peut prendre en charge jusqu'à 120 000 connexions . Les clients 60K s'abonnent à différents sujets 60K et d'autres clients 60K envoient des messages de publication de 16 Ko à ces sujets 60K à un intervalle de 1 000 ms. 

Environnement de test de pression  Serveur 4C8G

  • Système d'exploitation : CentOS Linux version 7.6.1708

  • Processeur : 4 cœurs 4 threads 

  • Mémoire : 8G

  • Version NanoMQ : version 0.3.4, 4 threads, 64 contextes. Désactivez la journalisation/les statistiques et le débogage.

Résultats du test de pression :

3c16b261e70577ee8304ce1bb69b1b51.png

93f0e63d73cc8021f866b8369b8b26d9.png

Résumer

NanoMQ s'appuie uniquement sur l'API POSIX native, qui est hautement compatible et portable, légère, rapide et à très faible empreinte mémoire , ce qui en fait une source ouverte qui fonctionne très bien dans les scénarios de périphérie du composant MQTT de l'Internet industriel des objets

En outre, NanoMQ peut également être utilisé comme bus de messages, convertissant des protocoles tels que DDS, NNG et ZeroMQ en MQTT, puis reliant les messages MQTT au cloud.

Site officiel de NanoMQ https://nanomq.io

​​

Recommandation passée

☞ Rapport d'évaluation de la plate-forme IoT IDC Chine 2022

☞ Tendances des plateformes IoT en 2022 : Privatisation

☞ 5 leçons à partager sur les échecs des startups IoT

☞ Sélection et comparaison de quatre plateformes IoT domestiques

☞ La [plate-forme IoT] des fournisseurs de cloud n'est-elle pas populaire ?

02a93ed24dd6bbe8b16ff8f7920dbeb0.png

85e681b362ce084a3e75360f7f11cab3.gif

bfd8f08b1d7cee40c3ce164e5758010b.gif

30d1b91ce1949ff02f4d3aa1f73ed19a.gif

6e6f0242889e5e032af115ec08629b8c.gif

Je suppose que tu aimes

Origine blog.csdn.net/klandor2008/article/details/131887091
conseillé
Classement