Microsoft AZ-204: Soluciones de mensajería y basadas en eventos de Azure — Guía de estudio

Forma parte de la Microsoft Azure Developer Associate AZ-204 — Guía de estudio. Practica con respuestas verificadas en el centro de exámenes de Microsoft, o realiza tests cronometrados en ExamRoll.io.

Información general

El portafolio de eventos y mensajería de Azure abarca cuatro servicios complementarios: Event Grid para la gestión de eventos reactivos, Event Hubs para la ingesta de streaming de alto rendimiento, Service Bus para la mensajería empresarial y la coordinación de flujos de trabajo, y Notification Hubs para notificaciones push móviles. Dominarlos requiere conocer las abstracciones principales de cada servicio, la semántica de entrega y reintentos, los modelos de escalado y cuándo preferir uno sobre otro en patrones de aplicación típicos como pub/sub, procesamiento de comandos, ingesta de telemetría y notificaciones a dispositivos o usuarios.

Event Grid: Temas, suscripciones, esquema, filtrado y mensajes fallidos (Dead-Lettering)

Event Grid es una red de pub/sub totalmente gestionada y basada en push para eventos discretos. Los publicadores envían eventos a un tema (topic); los suscriptores registran suscripciones de eventos en un tema y reciben los eventos que coinciden en manejadores (handlers) compatibles como webhooks HTTPS, Azure Functions, Logic Apps, Service Bus, Storage Queues y Event Hubs. Event Grid define dos modelos de publicador. Los temas del sistema (System topics) son recursos de tema gestionados por Azure que representan servicios de Azure de origen que publican eventos dentro de su suscripción o grupo de recursos (por ejemplo, la creación de un blob en Storage, la rotación de un secreto en Key Vault o eventos de Resource Manager). Los temas personalizados (Custom topics) son puntos de conexión de tema creados por el usuario a los que publican sus aplicaciones, permitiendo patrones orientados a eventos en sus propios servicios y dominios. Los temas del sistema no requieren código de publicador y simplifican la conexión de recursos de Azure a manejadores reactivos; los temas personalizados le dan control total sobre los contratos y el ciclo de vida de los eventos.

Los eventos de Event Grid pueden usar el esquema nativo de Event Grid o la especificación CloudEvents v1.0. Con el esquema de Event Grid, cada evento incluye id (identificador único), eventType (la acción), subject (ruta jerárquica que admite filtrado), eventTime (UTC), data (la carga útil o payload), dataVersion, metadataVersion y topic. CloudEvents proporciona un conjunto estandarizado de atributos como id, source, type, time, subject y data. Elegir CloudEvents facilita la interoperabilidad entre plataformas; el esquema de Event Grid mantiene la paridad con los eventos originados en Azure y un filtrado enriquecido sobre el campo subject.

Las suscripciones de eventos definen el enrutamiento, las opciones de entrega y los filtros. Los filtros básicos incluyen la inclusión por tipo de evento y el prefijo/sufijo del campo subject (subjectBeginsWith, subjectEndsWith), que son eficientes para la nomenclatura jerárquica de recursos. Los filtros avanzados realizan coincidencias en campos del evento de nivel superior o dentro de los datos (por ejemplo, comparaciones de rangos numéricos, contención de cadenas sin distinción de mayúsculas y minúsculas, igualdad booleana y contención en arreglos). Puede combinar filtros para un control preciso de la distribución (fan-out), minimizando el trabajo posterior y el egreso de datos.

La entrega es de tipo push con semántica de “al menos una vez” (at-least-once). Event Grid realiza reintentos con un retroceso exponencial (exponential back-off). Puede configurar el número máximo de reintentos y el tiempo de vida del evento (time-to-live); cuando la entrega falla definitivamente o el evento caduca, Event Grid puede enviar el evento a una cola de mensajes fallidos (dead-letter) en un contenedor de Blob Storage que usted designe en la suscripción. El envío a la cola de mensajes fallidos (dead-lettering) preserva las cargas útiles y los metadatos para auditoría o reprocesamiento; utilice un proceso separado para rehidratar y reproducir los eventos si es necesario. Los puntos de conexión de webhook participan en un protocolo de enlace de validación (validation handshake) para demostrar su propiedad, y para redes con restricciones puede preferir puntos de conexión gestionados de Azure (Functions, Service Bus, Storage Queue) que no necesitan exposición pública y pueden usar autorización respaldada por Azure AD.

Event Hubs: Particiones, Grupos de Consumidores, Rendimiento, Captura y Consumo Fiable

Event Hubs ingiere flujos de telemetría y registros de gran volumen con baja latencia. Los datos se anexan a particiones, que son registros de confirmación (commit logs) ordenados e independientes. Las particiones se eligen en el momento de la creación para paralelizar el rendimiento (throughput); los productores asignan una clave de partición para preservar el orden por clave, y el servicio asigna las claves a las particiones mediante una función hash. Múltiples lectores pueden procesar particiones en paralelo; dentro de una partición, el orden está garantizado.

Los grupos de consumidores proporcionan vistas independientes del flujo de datos, permitiendo que diferentes aplicaciones de procesamiento mantengan sus propias posiciones sin interferir entre sí (por ejemplo, un detector de anomalías en tiempo real y una canalización de archivado). Escalar los lectores horizontalmente requiere un equilibrio en la propiedad de las particiones; el EventProcessorClient del SDK coordina la asignación y el reequilibrio de particiones entre las instancias.

Las Unidades de rendimiento (Throughput Units o TU) en el nivel Standard definen la capacidad: cada TU otorga cuotas de ancho de banda de entrada (ingress) y de salida (egress). La característica Auto-inflate puede escalar las TU automáticamente para satisfacer los picos de demanda. El nivel Premium utiliza Unidades de procesamiento (Processing Units) con cómputo dedicado y latencia predecible. Supervise las métricas de limitación (throttling) para validar el aprovisionamiento. Event Hubs es compatible con el protocolo Kafka en el mismo punto de conexión, lo que simplifica la migración lift-and-shift de clientes de Kafka sin necesidad de ejecutar brokers.

Los productores pueden usar AMQP o HTTPS. AMQP (incluido AMQP-over-WebSockets en el puerto 443) proporciona conexiones multiplexadas y persistentes y un procesamiento por lotes eficiente, y se recomienda tanto para enviar como para recibir. HTTPS es adecuado para envíos simples o esporádicos, pero no es compatible para la recepción; el long-polling no está disponible, y se sacrifica la eficiencia y el control de flujo. En redes corporativas restringidas, AMQP-over-WebSockets preserva el rendimiento al pasar a través de los proxies de salida típicos.

La creación de puntos de control (checkpointing) y la gestión de offsets son fundamentales para la correctitud. Cada evento tiene un número de secuencia y un offset por partición. Los receptores avanzan a través del flujo y, tras procesar un lote con éxito, guardan un punto de control de su posición en un almacenamiento duradero, comúnmente un contenedor de Azure Blob Storage a través del EventProcessorClient. En un reinicio o una conmutación por error (failover), el procesador reanuda desde el último punto de control, logrando un procesamiento de al menos una vez (at-least-once) con manejadores idempotentes. Sin puntos de control, los consumidores comienzan desde una posición predeterminada (la más reciente o la más antigua) y corren el riesgo de reprocesar u omitir eventos.

La característica Capture proporciona archivado del lado del servidor al escribir automáticamente archivos Avro por lotes y de solo anexión (append-only) en Azure Blob Storage o Azure Data Lake Storage Gen2, según una ventana configurable de tiempo o tamaño. Esto elimina la necesidad de crear procesadores de lotes personalizados para análisis de ruta fría (cold-path), permitiendo que herramientas posteriores (como Spark o Synapse) consuman segmentos de flujo inmutables con una semántica de exactamente una vez (exactly-once) en relación con la canalización de captura.

Service Bus y Queue Storage: Comandos, Flujos de Trabajo, Sesiones y Manejo de Mensajes Fallidos

Service Bus es un agente de mensajes de nivel empresarial para comandos, flujos de trabajo y escenarios de integración que necesitan garantías de entrega enriquecidas. Las colas implementan mensajería punto a punto; un consumidor competidor recibe cada mensaje. Los temas con suscripciones habilitan el patrón pub/sub: los publicadores envían a un tema y suscripciones independientes reciben copias basadas en reglas. Las reglas de suscripción pueden ser filtros SQL, filtros de correlación o filtros booleanos verdaderos que computan la inclusión por mensaje y pueden agregar o modificar propiedades del mensaje mediante acciones.

Las sesiones proporcionan un procesamiento ordenado y exclusivo para mensajes relacionados. Asigne un SessionId en los mensajes que pertenecen a un mismo grupo (por ejemplo, todos los pasos en el Pedido 123). Un receptor acepta el bloqueo de la sesión y procesa los mensajes en orden de llegada para esa sesión, manteniendo un estado de sesión opcional, y luego libera la sesión para permitir que el siguiente consumidor tome posesión. Este es el patrón preferido para FIFO a escala. Sin sesiones, el orden no está garantizado entre consumidores competidores.

Service Bus admite los modos PeekLock y ReceiveAndDelete. PeekLock es el predeterminado para la fiabilidad: un consumidor bloquea un mensaje durante la duración del bloqueo, lo procesa y luego lo liquida con Complete. Si el procesamiento falla, el consumidor puede usar Abandon (haciéndolo disponible de nuevo), Defer (posponer su recuperación para más tarde por número de secuencia) o Dead-letter (moverlo a la subcola de mensajes fallidos separada de la entidad con el motivo y la descripción del error). ReceiveAndDelete intercambia fiabilidad por rendimiento al eliminar el mensaje inmediatamente después de su recepción.

Propiedades clave controlan el ciclo de vida. El Time to Live (TTL) se puede establecer por defecto en la entidad y anularse por mensaje; los mensajes caducados se envían a la cola de mensajes fallidos o se descartan según la configuración. La duración del bloqueo controla cuánto tiempo permanece bloqueado un mensaje para su procesamiento; el SDK puede renovar automáticamente los bloqueos para trabajos largos dentro de los límites máximos. El recuento máximo de entregas se configura por cola o suscripción; después de esa cantidad de intentos de entrega (Abandon o pérdida de bloqueo), el mensaje se mueve automáticamente a la cola de mensajes fallidos (DLQ). Los operadores vacían la DLQ para diagnósticos o reprocesamiento con lógica correctiva.

Azure Queue Storage es un servicio de colas más simple y masivamente escalable con una interfaz REST, ideal para desacoplamiento básico, alta distribución (fan-out) y cargas de trabajo sensibles al costo. Proporciona entrega de al menos una vez, un tiempo de espera de visibilidad para ocultar mensajes durante el procesamiento y un TTL por mensaje (predeterminado de 7 días, configurable, incluyendo la no caducidad). Los mensajes individuales tienen un tamaño limitado, y características como sesiones, transacciones, garantías de orden, detección de duplicados, subcolas de mensajes fallidos y filtros avanzados no están disponibles. Elija Queue Storage para trabajos simples en segundo plano y un rendimiento muy alto a bajo costo. Elija Service Bus cuando necesite enrutamiento sofisticado (temas/suscripciones), FIFO a través de sesiones, entrega programada, aplazamiento, transacciones entre entidades, ventanas de detección de duplicados, soporte para AMQP, o cuando la fiabilidad y la gobernanza de la integración sean importantes. Un patrón común es concentrar eventos ligeros a través de Event Grid o Queue Storage y coordinar comandos críticos para el negocio y transiciones de estado en Service Bus.

Notification Hubs: Enrutamiento de notificaciones push y gestión de credenciales de plataforma

Notification Hubs es un motor de notificaciones push multiplataforma que gestiona los registros de dispositivos a escala y enruta notificaciones dirigidas a Apple (APNs), Android (FCM), Windows (WNS) y otras plataformas. Las aplicaciones registran dispositivos usando etiquetas y expresiones de etiquetas, lo que permite una selección precisa de la audiencia (por ejemplo, user:42 AND region:emea OR topic:promotions). Las plantillas le permiten enviar una única carga útil localizada que los renderizadores específicos de la plataforma expanden, reduciendo la lógica del servidor y permitiendo la personalización por dispositivo con una ramificación mínima en el backend. El modelo de Instalación (Installation model) agiliza la gestión del ciclo de vida del dispositivo al encapsular el identificador de la plataforma, las etiquetas y las plantillas en un único recurso por dispositivo.

La gestión de credenciales de plataforma es fundamental para una entrega fiable. Para APNs, cargue credenciales basadas en certificados o en tokens (con Key ID, Team ID y el token .p8) y elija puntos de conexión de sandbox o de producción por hub o por espacio de nombres para segregar los entornos. Para FCM, configure las credenciales de servidor adecuadas (para HTTP v1, use una cuenta de servicio de Google con ámbitos de OAuth2). Para WNS, registre la aplicación para obtener el Package SID y el secreto de cliente. Las credenciales rotan periódicamente; programe la rotación y supervise los canales de retroalimentación (feedback) en busca de identificadores de dispositivo no válidos. Notification Hubs utiliza SAS para la autenticación a nivel de hub desde el servidor de su aplicación, mientras que los roles de Azure AD protegen las operaciones de gestión. Utilice convenciones de etiquetado para particionar aplicaciones multi-inquilino (multi-tenant) y limitar los envíos con notificaciones push programadas o por lotes para cumplir con las cuotas de la plataforma.

Escenario de problema práctico

Starbucks está implementando una experiencia global de pedidos móviles que debe notificar a los clientes cuando los pedidos están listos, procesar los pasos del flujo de trabajo del barista de forma fiable y analizar la telemetría de los equipos para un mantenimiento proactivo.

  1. Conectar el ciclo de vida de los pedidos basado en eventos con Event Grid
  1. Coordinar el flujo de trabajo del barista con temas y sesiones de Service Bus
  1. Ingerir y archivar la telemetría de los equipos con Event Hubs
  1. Dirigir notificaciones push con Notification Hubs
  1. Garantizar la observabilidad y la resiliencia

Esta arquitectura separa claramente las responsabilidades: Event Grid impulsa la orquestación reactiva, Service Bus garantiza la corrección y el orden del flujo de trabajo, Event Hubs gestiona la telemetría continua a escala y Notification Hubs entrega notificaciones precisas y específicas de la plataforma a los clientes con una complejidad mínima en el backend.


Gestión de API de Azure · Todos los dominios · Almacenamiento en caché

Practica estas preguntas → · Práctica cronometrada en ExamRoll.io →

Pass the whole exam — not just this question

You found this answer. Get every verified question and explanation in one place, and save hours of prep. Free to start.

Aprueba tu examen →

Explorar Microsoft →

Related guides

Acceso todo en uno

Una suscripción. Todos los exámenes.

Cada plan desbloquea la búsqueda ilimitada de respuestas, pruebas de práctica, explicaciones de AI y la biblioteca completa de recursos, en más de 20 idiomas.

Mensual
24.87
Just €0.83/day
Todo incluido:
  • Búsqueda ilimitada de respuestas
  • Pruebas de práctica ilimitadas
  • Explicaciones con tecnología AI
  • Biblioteca completa de recursos
  • Más de 20 idiomas
  • Actualizaciones semanales de contenido
  • Recompensas y referencias
  • Soporte prioritario
Iniciar prueba gratuita

No se requiere tarjeta de crédito*

Mejor valor
12 meses
179.87
Just €0.49/daySave 40%
Todo incluido:
  • Búsqueda ilimitada de respuestas
  • Pruebas de práctica ilimitadas
  • Explicaciones con tecnología AI
  • Biblioteca completa de recursos
  • Más de 20 idiomas
  • Actualizaciones semanales de contenido
  • Recompensas y referencias
  • Soporte prioritario
Iniciar prueba gratuita

No se requiere tarjeta de crédito*

✓ Plan gratuito incluido · ✓ Cancela en cualquier momento · ✓ Todos los planes desbloquean el producto completo