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.
Los flujos pueden venir en diferentes formas y maneras. Algunas secuencias pueden entregar eventos a través de vínculos TCP directos, mientras que otras entregan eventos a través de colas duraderas. Los diferentes tipos de transmisión pueden usar diferentes estrategias de procesamiento por lotes, algoritmos de almacenamiento en caché o procedimientos de presión inversa. Los proveedores de secuencias son puntos de extensibilidad en el Orleans Streaming Runtime que te permiten implementar cualquier tipo de flujo, evitando que las aplicaciones de streaming se limiten solo a un subconjunto de esas opciones de comportamiento. Este punto de extensibilidad es similar en espíritu a los proveedores de almacenamiento Orleans.
Proveedor de flujos de Azure Event Hub
Azure Event Hubs es un servicio de ingesta de datos en tiempo real totalmente administrado capaz de recibir y procesar millones de eventos por segundo. Está diseñado para controlar la ingesta de datos de alto rendimiento y baja latencia de varios orígenes y el procesamiento posterior de esos datos por varios consumidores.
Event Hubs se usa a menudo como base de una arquitectura de procesamiento de eventos más grande, que actúa como "puerta principal" para una canalización de eventos. Puede usarlo para ingerir datos de varios orígenes, como fuentes de redes sociales, dispositivos IoT y archivos de registro. Una de las principales ventajas de Event Hubs es la capacidad de escalar horizontalmente para satisfacer las necesidades de incluso las cargas de trabajo de procesamiento de eventos más grandes. También es altamente disponible y tolerante a errores, con varias réplicas de datos distribuidas en varias regiones de Azure para garantizar la alta disponibilidad.
El paquete NuGet Microsoft.Orleans.Streaming.EventHubs contiene el proveedor de flujos de Event Hubs.
Proveedor de flujos de cola de Azure (AQ)
El proveedor de flujos de cola de Azure (AQ) entrega eventos a través de las colas de Azure. En el lado del productor, el proveedor de flujos de AQ pone en cola los eventos directamente en Azure Queue. En el lado del consumidor, el proveedor de flujos de AQ administra un conjunto de agentes de extracción que extraen eventos de un conjunto de colas de Azure y los entregan al código de la aplicación que los consume. Puede considerar los agentes de extracción como un "microservicio" distribuido: un componente dividido en particiones, altamente disponible y elástico. Los agentes de extracción operan dentro de los mismos silos que alojan granos de aplicación. Por lo tanto, no es necesario ejecutar roles de trabajo de Azure independientes para sacar de las colas. El Orleans Runtime de Streaming administra completamente la existencia de los agentes de extracción, su gestión, el control de la presión inversa, el equilibrio de las colas entre ellos y la transferencia de colas de un agente que falló a otro agente. Todo esto es transparente para el código de la aplicación que utiliza flujos.
El paquete NuGet Microsoft.Orleans.Streaming.AzureStorage contiene el proveedor de flujos de Azure Queue storage.
Adaptadores de cola
Los distintos proveedores de flujos que entregan eventos a través de colas duraderas muestran un comportamiento similar y están sujetos a implementaciones similares. Por lo tanto, proporcionamos una extensible PersistentStreamProvider genérica que permite conectar diferentes tipos de colas sin escribir un proveedor de flujos completamente nuevo desde cero.
PersistentStreamProvider usa un componente de IQueueAdapter, que abstrae los detalles específicos de implementación de la cola y proporciona los medios para poner y desapilar eventos. La lógica dentro PersistentStreamProvider controla todo lo demás. El proveedor de colas de Azure mencionado anteriormente también se implementa de esta manera: es una instancia de PersistentStreamProvider que usa una AzureQueueAdapter.
Proveedor de flujo de mensajes simple
El proveedor de flujo de mensajes simple, también conocido como proveedor de SMS, entrega eventos a través de TCP mediante la mensajería de grano normal Orleans . Dado que los eventos de SMS se entregan a través de vínculos TCP no confiables, SMS no garantiza la entrega de eventos confiable y no reenvía automáticamente mensajes con error para secuencias SMS. De forma predeterminada, la llamada del productor a OnNextAsync devuelve un Task que representa el estado de procesamiento del consumidor del flujo. Esto indica al productor si el consumidor recibió y procesó correctamente el evento. Si se produce un error en esta tarea, el productor puede decidir enviar de nuevo el mismo evento, logrando la confiabilidad en el nivel de aplicación. Aunque la entrega de mensajes en flujo es de mejor esfuerzo, las secuencias SMS son confiables. Es decir, el enlace de suscriptor a productor realizado por Pub-Sub es totalmente confiable.