Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
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.
Desacoplar los emisores de mensajes de los receptores
También puede usar el reenvío automático para desacoplar a los remitentes de los receptores. 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 encolan en el tema correspondiente. John Doe y Jane son representantes de ventas que están interesados en todos los mensajes relacionados con sus clientes. Para recibir dichos mensajes, John Doe y Jane Doe 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.
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
AutoDeleteOnIdleestá 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 habiliteAutoDeleteOnIdleen 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 sobre el 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.
Reenvío automático y métricas
Cuando un mensaje se reenvía automáticamente correctamente, se contabiliza en la métrica Mensajes entrantes de la entidad de destino. La métrica Mensajes salientes de la entidad de origen no incluye mensajes reenviados automáticamente.
Cuando se produce un error en un intento de reenvío automático porque el destino tiene sesiones habilitadas o alcanza un error transitorio, Service Bus reintenta el envío. Cada reintento que llega al destino se contabiliza en la métrica Mensajes entrantes del destino, por lo que un mismo mensaje de origen que se reintenta puede generar más de una entrada en el recuento de mensajes entrantes del destino.
Cuando se elimina o deshabilita la entidad de destino, el origen mueve el mensaje a la cola de mensajes fallidos y no se registra ningún recuento de entrada en el destino.
Para obtener la lista completa de métricas de Service Bus, consulte Monitoring data reference.
Contenido relacionado
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.