Compartir a través de


Proveedores de secuencias de Orleans

Las secuencias pueden aparecer en diferentes formas y formas. Algunas secuencias pueden entregar eventos a través de vínculos TCP directos, mientras que otros entregan eventos a través de colas duraderas. Los diferentes tipos de flujo pueden usar diferentes estrategias de procesamiento por lotes, algoritmos de almacenamiento en caché diferentes o procedimientos de contrapresión diferentes. Para evitar restringir las aplicaciones de streaming a solo un subconjunto de esas opciones de comportamiento, los proveedores de secuencias son puntos de extensibilidad a Orleans Streaming Runtime que permiten a los usuarios implementar cualquier tipo de secuencia. Este punto de extensibilidad es similar en espíritu a los proveedores de almacenamiento de Orleans.

Proveedor de secuencias de Azure Event Hubs

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 proveniente de varios orígenes y el posterior procesamiento de dichos datos por varios consumidores.

Event Hubs se usa a menudo como base de una arquitectura de procesamiento de eventos de mayor tamaño, donde actúa como "puerta principal" para una canalización de eventos. Se puede usar para ingerir datos de una amplia variedad de orígenes, como fuentes de medios 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 secuencias 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 colas de Azure. En el lado productor, el proveedor de flujos de AQ pone en cola los eventos directamente en la cola de Azure. 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 entrega al código de la aplicación que los consume. Los agentes de extracción podrían considerarse un "microservicio" distribuido, es decir, un componente distribuido elástico con particiones y alta disponibilidad. Los agentes de extracción se ejecutan dentro de los mismos silos que hospedan granos de aplicación. Por lo tanto, no es necesario ejecutar roles de trabajo de Azure independientes para extraer de las colas. La existencia de agentes de extracción, su administración, represión inversa, equilibrio de las colas entre ellas y entrega de colas de un agente con errores a otro agente son totalmente administradas por Orleans Streaming Runtime y son transparentes para el código de aplicación que usa secuencias.

El paquete NuGet Microsoft.Orleans.Streaming.AzureStorage contiene el proveedor de secuencias de Azure Queue Storage.

Adaptadores de cola

Los distintos proveedores de flujos que entregan eventos a través de colas duraderas presentan un comportamiento similar y están sujetos a una implementación similar. Por lo tanto, proporcionamos una PersistentStreamProvider extensible genérica que permite a los desarrolladores conectar diferentes tipos de colas sin escribir un proveedor de flujos completamente nuevo desde cero. PersistentStreamProvider usa un componente IQueueAdapter, que abstrae detalles específicos de implementación de colas y proporciona medios para poner en cola y quitar de cola eventos. Todo el resto se controla mediante la lógica dentro de PersistentStreamProvider. El proveedor de colas de Azure mencionado anteriormente también se implementa de esta manera: es una instancia de PersistentStreamProvider que usa AzureQueueAdapter.

Proveedor simple de flujo de mensajes

El proveedor de secuencias de mensajes simple, también conocido como proveedor de SMS, entrega eventos a través de TCP mediante la mensajería de grano de 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 los mensajes con errores para las secuencias sms. De forma predeterminada, la llamada del productor a OnNextAsync devuelve un Task que representa el estado de procesamiento del consumidor de la secuencia, que 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, lo que consigue confiabilidad en el nivel de aplicación. Aunque la entrega de mensajes de transmisión es el mejor esfuerzo, las secuencias sms son confiables. Es decir, el enlace de suscriptor a productor realizado por Pub-Sub es totalmente confiable.

Consulte también

Detalles de implementación de secuencias de Orleans