Encadenamiento de entidades de Service Bus con reenvío automático

La característica de reenvío automático de Service Bus permite encadenar una cola o suscripción a otra cola u otro tema que forman parte del mismo espacio de nombres. Cuando el reenvío automático está habilitado, Service Bus elimina automáticamente los mensajes que se colocan en la primera cola o suscripción (origen) y los coloca en la segunda cola o en el segundo tema (destino). Todavía se puede enviar un mensaje a la entidad de destino directamente.

Nota:

El nivel Básico de Service Bus no admite la característica de reenvío automático. Para obtener las diferencias entre niveles, vea Precios de Service Bus.

La entidad de destino debe existir en el momento en que se creó la entidad de origen. Si la entidad de destino no existe, Service Bus devuelve una excepción cuando se le pide que cree la entidad de origen.

Escenarios

Escalado horizontal de un tema individual

El reenvío automático se puede usar para escalar horizontalmente un tema individual. Service Bus limita el número de suscripciones de un tema dado a 2000. Para alojar más suscripciones, cree temas de segundo nivel. Aunque no tenga la limitación de Service Bus sobre el número de suscripciones, la adición de un segundo nivel de temas puede mejorar el rendimiento general del tema.

Diagrama de un escenario de reenvío automático que muestra un mensaje procesado a través de un tema de pedidos que se puede bifurcar a cualquiera de los tres temas de pedidos de segundo nivel.

Desacoplar remitentes de mensajes de receptores

También puede usarlo para desacoplar los remitentes de los destinatarios. Por ejemplo, suponga que un sistema de planificación de recursos empresariales (ERP) consta de tres módulos: procesamiento de pedidos, administración de inventario y administración de relaciones con clientes. Cada uno de estos módulos genera mensajes que se ponen en cola en el tema correspondiente. Alice y Bob son representantes de ventas que están interesados en todos los mensajes relacionados con sus clientes. Para recibir dichos mensajes, Alice y Bob crean una cola personal y una suscripción en cada uno de los temas de ERP que reenvían automáticamente todos los mensajes a su cola.

Diagrama de un escenario de reenvío automático que muestra tres módulos de procesamiento que envían mensajes a través de tres temas correspondientes a dos colas independientes.

Si Alice se va de vacaciones, se llena su cola personal, en lugar del tema de ERP. En este escenario, como un representante de ventas no ha recibido ningún mensaje, ninguno de los temas de ERP alcanzará la cuota.

Nota:

Cuando el reenvío automático está configurado, el valor de AutoDeleteOnIdle de la entidad de origen se establece automáticamente en el valor máximo del tipo de datos.

  • En el lado de origen, el reenvío automático actúa como operación de recepción, por lo que el origen que tenga habilitado el reenvío automático nunca estará realmente "inactivo" y, por lo tanto, no se eliminará automáticamente.
  • El reenvío automático no realiza ningún cambio en la entidad de destino. Si AutoDeleteOnIdle está habilitado en la entidad de destino, la entidad se elimina automáticamente si está inactiva durante el intervalo de inactividad especificado. Se recomienda que no habilite AutoDeleteOnIdle en la entidad de destino porque, si la entidad de destino se elimina, se mostrarán excepciones de forma continua a la entidad de origen al intentar reenviar mensajes a ese destino.

Consideraciones del reenvío automático

  • Service Bus no permite crear un receptor de mensajes en una entidad de origen con el reenvío automático habilitado.
  • Si la entidad de destino acumula demasiados mensajes y supera la cuota (o la entidad de destino está deshabilitada) la entidad de origen agrega los mensajes a su cola de mensajes fallidos hasta que haya espacio en el destino (o hasta que se vuelva a habilitar la entidad). Esos mensajes siguen estando en la cola de mensajes fallidos, por lo que debe recibirlos y procesarlos explícitamente desde dicha cola.
  • Al encadenar temas individuales para obtener un tema compuesto con muchas suscripciones, se recomienda tener un número moderado de suscripciones en el tema de primer nivel y muchas suscripciones en los temas de segundo nivel. Por ejemplo, un tema de primer nivel con 20 suscripciones, cada una de ellas encadenada a un tema de segundo nivel con 200 suscripciones, ofrece un mayor rendimiento que un tema de primer nivel con 200 suscripciones, cada una de ellas encadenada a un tema de segundo nivel con 20 suscripciones.
  • Service Bus factura una operación por cada mensaje reenviado. Por ejemplo, el envío de un mensaje a un tema con 20 suscripciones, cada una de ellas configurada para reenviar automáticamente mensajes a otra cola, o a otro tema, se factura como 21 operaciones si todas las suscripciones del primer nivel reciben una copia del mensaje.
  • Para crear una suscripción encadenada a otra cola o a otro tema, el creador debe tener permisos de administración tanto en la entidad de origen como en la de destino. Para enviar mensajes al tema de origen, solo se requieren permisos de envío en el tema de origen.
  • No cree una cadena que supere los cuatro saltos. Los mensajes que superan los cuatro saltos se colocan en la cola de mensajes fallidos. El recuento de saltos de un mensaje se incrementa cuando un mensaje se reenvía automáticamente de una cola o tema a otra cola o tema. El recuento de saltos de un mensaje también se puede incrementar en el escenario enviar a través de en el que se envía un mensaje a través de una cola de transferencia.
  • No se admite el reenvío automático para las colas o suscripciones habilitadas para las sesiones.
  • La cola de origen intenta reenviar los mensajes a la entidad de destino en el mismo orden en que los recibió, pero el destino podría ser un tema que no admite la ordenación. Si la entidad de origen o destino es una entidad con particiones, no se garantiza el orden.

Pasos siguientes

Para aprender a habilitar o deshabilitar el reenvío automático de maneras diferentes (Azure Portal, PowerShell, CLI, plantilla de Azure Resource Management, etc.), vea Habilitación del reenvío automático para colas y suscripciones.