Les abonnements partagés MQTT 5.0 permettent de remettre chaque message à un seul abonné au sein d'un groupe, ce qui favorise l'équilibrage de charge et la répartition des tâches entre les appareils ou les serveurs.
Informations générales
Le protocole MQTT repose sur le modèle publication-abonnement. Lorsqu'un message est publié, tous les abonnés le reçoivent. Dans certains cas, vous pouvez souhaiter que seuls un ou plusieurs abonnés spécifiques reçoivent certains messages. Les abonnements partagés répondent à ce besoin. Pour utiliser cette fonctionnalité, un abonné doit indiquer une balise d'abonnement partagé et rejoindre un groupe d'abonnés.
Un seul abonné d'un groupe d'abonnés reçoit chaque message.

Sur la figure ci-dessus, l'abonné C et l'abonné D s'abonnent à la rubrique demo/topic via le processus standard, tandis que l'éditeur A publie des messages sur la même rubrique. L'abonné A et l'abonné B utilisent des abonnements partagés ; les messages leur sont donc remis aléatoirement à l'un ou à l'autre.
La rubrique d'abonnement partagé $share/group/demo/topic comprend les éléments suivants :
Balise d'abonnement partagé :
$share.Groupe d'abonnés :
group1. Spécifiez une valeur.Rubrique d'origine :
demo/topic. Spécifiez une valeur.
IoT Platform identifie l'abonnement comme un abonnement partagé appartenant au groupe d'abonnés group1 en se fondant sur la balise $share et le nom du groupe. Les caractères génériques sont pris en charge. Par exemple, pour vous abonner à tous les messages, vous pouvez utiliser la rubrique $share/group1/#.
Limites
Les abonnements partagés sont disponibles uniquement pour les passerelles des instances Enterprise Edition exclusive et des instances basées sur MQTT standard.
Lorsque plusieurs abonnés d'un même groupe utilisent des abonnements partagés, IoT Platform transmet les messages à l'un d'entre eux de manière aléatoire.
Les abonnements partagés sont disponibles uniquement pour les appareils connectés à IoT Platform via MQTT 5.0. Les appareils connectés via MQTT 3.1 ne peuvent pas utiliser les abonnements partagés, même s'ils respectent les règles correspondantes.
Scénarios
Équilibrage de charge côté serveur
Lorsqu'un grand nombre d'appareils envoient des messages à IoT Platform, vous pouvez recourir aux abonnements partagés pour répartir les messages entre plusieurs serveurs métier afin d'assurer l'équilibrage de charge. Sur la figure ci-dessous, le serveur métier A et le serveur métier B appartiennent au même groupe d'abonnés. IoT Platform transmet les messages des appareils à l'un ou à l'autre de manière aléatoire.
Les abonnements partagés sont intégrés aux abonnements côté serveur d'IoT Platform. IoT Platform peut envoyer des messages aux serveurs métier via AMQP. Pour plus d'informations, consultez la rubrique Abonnement côté serveur.
Orchestration des tâches côté serveur
Vous pouvez utiliser les abonnements partagés pour réaliser une orchestration basique des tâches en représentant chaque tâche sous forme de message. Sur la figure ci-dessous, les appareils sont des robots. Le serveur métier pousse une tâche de manipulation. Si l'un des appareils répond à la tâche, l'abonnement partagé la remet à un seul des robots.