2 votes

Deux courtiers MQTT différents peuvent-ils communiquer entre eux ?

J'étudie actuellement la possibilité d'utiliser le protocole MQTT dans mon programme et le système a découvert qu'il existe plusieurs courtiers MQTT différents. Ma question est donc la suivante : peut-on mélanger les courtiers pour cette communication ? Par exemple, le courtier Mosquitto sur l'appareil 1 et le courtier ActiveMQ sur l'appareil 2. Cela fonctionnera-t-il ?

4voto

hardillb Points 1248

Je pense qu'il y a un léger malentendu.

Dans un déploiement simple, il n'y aurait qu'un seul courtier MQTT et plusieurs clients MQTT (sur un ou plusieurs appareils) se connecteraient à ce courtier et échangeraient des messages sur n'importe quel sujet. Tant que tous les clients se conforment aux spécifications MQTT, ils devraient être en mesure de se connecter avec succès à n'importe quelle implémentation de courtier.

Si vous souhaitez un déploiement plus complexe, il est possible d'avoir plusieurs courtiers et de faire en sorte que des groupes de clients se connectent à différents courtiers. Vous pouvez alors mettre en place ce que l'on appelle un pont entre les courtiers, qui leur permet de partager une partie ou la totalité des sujets. Les messages peuvent ainsi être partagés par tous les clients, quel que soit le courtier auquel ils se connectent.

En supposant que tous les courtiers se conforment à la spécification MQTT (ce qui est très probable), tout devrait fonctionner, mais la manière de configurer les ponts diffère selon l'implémentation du courtier.

Attention, une nouvelle version de la spec MQTT (v5) vient d'être mise en ligne (fin 2017), les brokers et les librairies clientes se mettront à jour pour la supporter dans les semaines/mois à venir. Vérifiez donc avec quelles versions vous essayez de vous connecter.

2voto

Abdul Alim Shakir Points 383

Oui, deux courtiers MQTT différents peuvent communiquer entre eux. Le courtier Mosquitto et le courtier ActiveMQ peuvent travailler ensemble, mais un seul des courtiers doit être configuré pour agir en tant que pont. Mosquitto (et certains autres courtiers MQTT) disposent d'une fonctionnalité appelée "bridging" qui vous permet de connecter deux courtiers ou plus ensemble.

Un broker (serveur) Mosquitto peut être configuré pour fonctionner comme un pont MQTT. Un pont vous permet de connecter deux courtiers MQTT ensemble. Ils sont généralement utilisés pour partager des messages entre systèmes. Une utilisation courante consiste à connecter des courtiers MQTT périphériques à un réseau MQTT central ou distant.

Voir Protocole de pont de la communauté MQTT et Configuration du pont Mosquitto . Ce( mosquitto.conf - Configuration des ponts ) aidera à configurer le courtier MQTT en tant que pont.

1voto

jianhui Points 38

Habituellement, il existe un mode pont pour connecter les brokers ensemble, même pour différents types de brokers tels que Mosquitto et ActiveMQ, ce n'est pas seulement un concept dans les brokers MQTT, mais aussi dans d'autres files d'attente de messages. De plus, certains types de courtiers supportent le clustering, comme RabbitMQ. Mosquitto officiel ne supporte que le bridge, mais il existe une implémentation de Mosquitto en cluster sur hui6075/mosquitto-cluster Il est facile à déployer. En outre, la différence la plus importante entre le "cluster" et le "bridge" est qu'avec le cluster, l'ensemble des courtiers ressemble à un courtier logique pour les clients externes, tels que la session, la rétention, le qos, etc.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X