Chaînage des entités Service Bus avec transfert automatique

La fonctionnalité de transfert automatique de Service Bus vous permet de chaîner une file d’attente ou un abonnement à une autre file d’attente ou rubrique qui fait partie du même espace de noms. Quand le transfert automatique est activé, Service Bus supprime automatiquement les messages placés dans la première file d’attente ou le premier abonnement (source) pour les placer dans la deuxième file d’attente ou rubrique (destination). Il est toujours possible d’envoyer un message directement à l’entité de destination.

Notes

Le niveau de base de Service Bus ne prend pas en charge la fonctionnalité de transfert automatique. Pour connaître les différences entre les différents niveaux, consultez Tarifs de Service Bus.

L'entité de destination doit exister au moment de la création de l'entité source. Si l’entité de destination n’existe pas, Service Bus retourne une exception lorsqu’il lui est demandé de créer l’entité source.

Scénarios

Effectuer un scale-out d’une rubrique individuelle

Vous pouvez utiliser le transfert automatique pour effectuer un scale-out d’une rubrique particulière. Service Bus limite le nombre d’abonnements à une rubrique donnée à 2 000. Vous pouvez prendre en charge davantage d’abonnements en créant des rubriques de deuxième niveau. Même si vous n’êtes pas lié par la limitation de Service Bus sur le nombre d’abonnements, l’ajout d’un deuxième niveau de rubriques peut améliorer le débit global de votre rubrique.

Diagramme d’un scénario de transfert automatique qui affiche un message traité via une rubrique Commandes qui peut créer une branche vers l’une des trois rubriques Commandes de second niveau.

Découpler les expéditeurs de messages des récepteurs

Vous pouvez également utiliser le transfert automatique pour découpler les expéditeurs de messages des récepteurs. Par exemple, considérez un système ERP (Enterprise Resource Planning) composé de trois modules : traitement des commandes, gestion des stocks et gestion des relations client. Chacun de ces modules génère des messages qui sont placés en file d’attente dans une rubrique correspondante. Alice et Bob sont des représentants commerciaux qui s'intéressent à tous les messages liés à leurs clients. Pour recevoir ces messages, Alice et Bob créent chacun une file d’attente personnelle et un abonnement sur chacune des rubriques ERP qui transfèrent automatiquement tous les messages à leur file d’attente.

Diagramme d’un scénario de transfert automatique qui montre trois modules de traitement envoyant des messages via trois rubriques correspondantes à deux files d’attente distinctes.

Si Alice part en vacances, sa file d’attente personnelle, et non la rubrique ERP, se remplit. Dans ce scénario, étant donné qu’un représentant commercial n’a pas reçu les messages, aucune des rubriques ERP n’atteint jamais son quota.

Notes

Lorsque le transfert automatique est configuré, la valeur de AutoDeleteOnIdle dans l’entité source est automatiquement définie sur la valeur maximale du type de données.

  • Côté source, le transfert automatique agit comme une opération de réception. De cette façon, la source où est activé le transfert automatique n’est jamais vraiment « inactive » et, par conséquent, ne sera pas automatiquement supprimée.
  • Le transfert automatique n’apporte aucune modification à l’entité de destination. Si AutoDeleteOnIdle est activé dans l’entité de destination, celle-ci est automatiquement supprimée si elle est inactive pendant l’intervalle d’inactivité spécifié. Nous vous recommandons de ne pas activer AutoDeleteOnIdle dans l’entité de destination, car si celle-ci est supprimée, l’entité source verra continuellement des exceptions lorsque vous tenterez de transférer des messages vers la destination.

Considérations relatives au transfert automatique

  • Service Bus n’autorise pas la création d’un récepteur de messages sur une entité source avec activation automatique du transfert automatique.
  • Si l’entité de destination accumule trop de messages et dépasse le quota, ou si l’entité de destination est désactivée, l’entité source ajoute les messages à sa file d’attente des messages non distribués jusqu’à ce qu’il y ait de l’espace dans la destination (ou que l’entité soit réactivée). Ces messages continuent de résider dans la file d’attente de rebut, donc vous devez explicitement les recevoir et les traiter à partir de la file d’attente de rebut.
  • Lors du chaînage de rubriques individuelles pour obtenir une rubrique composite avec de nombreux abonnements, nous vous recommandons d’avoir un nombre modéré d’abonnements sur la rubrique de premier niveau et beaucoup d’abonnements sur les rubriques de second niveau. Par exemple, une rubrique de premier niveau avec 20 abonnements, chacun étant chaîné à une rubrique de second niveau possédant 200 abonnements, permet d’obtenir un débit plus élevé qu’une rubrique de premier niveau possédant 200 abonnements, chacun étant chaîné à une rubrique de second niveau possédant 20 abonnements.
  • Service Bus facture une opération pour chaque message transféré. Par exemple, l’envoi d’un message à une rubrique possédant 20 abonnements, chacun d’eux étant configuré pour transférer automatiquement les messages vers une autre file d’attente ou rubrique, est facturé en tant que 21 opérations si tous les abonnements de premier niveau reçoivent une copie du message.
  • Pour créer un abonnement qui est chaîné à une autre file d’attente ou rubrique, le créateur de l’abonnement doit disposer des autorisations de gestion de l’entité source et l’entité de destination. L’envoi de messages à la rubrique source ne nécessite que des autorisations d’envoi sur la rubrique source.
  • Ne créez aucune chaîne dépassant quatre tronçons. Les messages qui dépassent quatre tronçons sont mis en file d’attente de lettres mortes. Le nombre de tronçons d’un message est incrémenté lorsqu’un message est transféré automatiquement d’une file d’attente ou d’une rubrique à une autre file d’attente ou rubrique. Le nombre de tronçons d’un message peut également être incrémenté dans le envoyé via scénario dans lequel un message est envoyé via une file d’attente de transfert.
  • Le transfert automatique n’est pas pris en charge pour les files d’attente ou les abonnements activés pour les sessions.
  • La file d’attente source essaie de transférer les messages à l’entité de destination dans l’ordre qu’elle a reçu, mais la destination peut être une rubrique ne prenant pas en charge le classement. Si l’entité source ou de destination est une entité partitionnée, le classement n’est pas garanti.

Étapes suivantes

Pour découvrir les différentes façons d’activer ou de désactiver le transfert automatique (portail Azure, PowerShell, CLI, modèle Azure Resource Manager, etc.), consultez Activer le transfert automatique pour les files d’attente et les abonnements.