Ideas de solución
En este artículo se describe una idea de solución. El arquitecto de la nube puede usar esta guía para ayudar a visualizar los componentes principales de una implementación típica de esta arquitectura. Use este artículo como punto de partida para diseñar una solución bien diseñada que se adapte a los requisitos específicos de la carga de trabajo.
En este artículo se describe un modelo elástico y flexible de publicación y suscripción para que los productores y consumidores de datos creen y consuman contenido o datos seleccionados mantenidos.
Architecture
Descargue un archivo Visio de esta arquitectura.
Flujo de datos
La aplicación Data Producer publica datos en Azure Event Hubs, que envía los datos a la función de procesamiento de eventos de Azure Functions.
Data Producer también envía el esquema JSON para el almacenamiento a un contenedor de Azure Storage.
La función de procesamiento de eventos recupera el esquema JSON de Azure Cache for Redis para reducir la latencia y lo usa para validar los datos.
Si el esquema aún no se ha almacenado en la caché, la función de procesamiento de eventos recupera el esquema del contenedor de Azure Storage. La solicitud del esquema también lo almacena en Azure Cache for Redis, con el fin de que se pueda recuperar en el futuro.
Nota
En Event Hubs, Azure Schema Registry puede ser una alternativa viable tanto al almacenamiento en disco como al almacenamiento en caché de esquemas JSON. Para más información, consulte Azure Schema Registry de Azure en Event Hubs (versión preliminar).
Si ya existe un tema y los datos son válidos, la función de procesamiento de eventos combina los datos en el tema de Azure Service Bus Datos válidos y envía el tema a la aplicación Data Consumer.
Si ya existe un tema y los datos no son válidos, la función de procesamiento de eventos combina los datos en el tema de Service Bus Datos no válidos y devuelve el tema al productor de los datos. El productor de datos se suscribe a los temas de Datos no válidos para obtener comentarios sobre los datos no válidos que creó el productor.
Si algún tema aún no existe, la función de procesamiento de eventos publica los datos nuevos en el tema Datos nuevos de Service Bus y envía el tema a la función de administración de temas de Service Bus.
Si los nuevos datos son válidos, la función de procesamiento de eventos también inserta los datos como un nuevo registro de datos de instantáneas en Azure Cosmos DB.
Si los nuevos datos son válidos, la función de administrador de temas de Service Bus crea un tema Datos válidos de Service Bus y envía el tema a Event Hubs.
Si los nuevos datos no son válidos, la función de administrador de temas de Service Bus crea un tema Datos no válidos de Service Bus y lo devuelve a la aplicación Data Producer.
El procesador de archivos planos de datos de instantáneas de Azure Data Factory se ejecuta según una programación para extraer todos los datos de instantáneas de la base de datos Datos de instantáneas de Azure Cosmos DB. El procesador crea un archivo plano y lo publica en un archivo plano de datos de instantáneas en Azure Storage para descargas.
La aplicación Data Consumer recupera una lista de todos los temas Service Bus que el administrador de temas de Service Bus tiene disponible para la suscripción. La aplicación se registra en el administrador de temas de Service Bus para suscribirse a los temas de Service Bus.
Componentes
- Azure Event Hubs
- Azure Service Bus
- Funciones de Azure
- Azure Data Factory
- Azure Cosmos DB
- Azure Blob Storage
- Azure Cache for Redis
Detalles del escenario
Transit Hub es un modelo de publicación y suscripción dinámico para que los productores y consumidores de datos creen y consuman contenido o datos seleccionados mantenidos. El modelo es elástico para permitir la escala y el rendimiento. Los productores de datos pueden incorporar y cargar datos rápidamente en un servicio. El servicio valida los datos con un esquema que proporciona el productor de datos. Luego, el servicio hace que los datos validados estén disponibles para que los suscriptores consuman los que les interesen.
La única información que el servicio que valida los datos necesita tener saber sobre la carga es si es válida en el esquema que proporciona el productor. Esta flexibilidad significa que el servicio puede aceptar nuevos tipos de carga sin tener que volver a implementarse. Esta solución también permite a los consumidores de datos obtener datos históricos que se publicaron antes que el consumidor se suscribiera.
Posibles casos de uso
Este modelo es especialmente útil en los siguientes escenarios:
- Sistemas de mensajería en los que el volumen y estado del usuario son desconocidos o varían de forma impredecible
- Sistemas de publicación que posiblemente necesiten admitir orígenes de datos nuevos o desconocidos
- Sistemas de comercio o de emisión de billetes que necesitan actualizar continuamente los datos y almacenarlos en la caché para poder entregarlos de forma rápida
Pasos siguientes
- Documentación del servicio Azure Web PubSub
- Colas, temas y suscripciones de Service Bus
- Tutorial: Creación de una aplicación de notificación sin servidor con Azure Functions y el servicio Azure Web PubSub