Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Les flux peuvent se présenter sous différentes formes et formes. Certains flux peuvent fournir des événements via des liens TCP directs, tandis que d’autres fournissent des événements via des files d’attente durables. Différents types de flux peuvent utiliser différentes stratégies de traitement par lots, algorithmes de mise en cache ou procédures de rétropression. Les fournisseurs de flux sont des points d’extensibilité dans le Orleans runtime de streaming qui vous permettent d’implémenter n’importe quel type de flux, évitant ainsi les contraintes sur les applications de diffusion en continu pour uniquement un sous-ensemble de ces choix comportementaux. Ce point d'extensibilité est similaire à l'esprit des Orleans fournisseurs de stockage.
Fournisseur de flux Azure Event Hub
Azure Event Hubs est un service d’ingestion de données en temps réel entièrement géré capable de recevoir et de traiter des millions d’événements par seconde. Il est conçu pour gérer l’ingestion de données à débit élevé et à faible latence à partir de plusieurs sources et le traitement ultérieur de ces données par plusieurs consommateurs.
Event Hubs est souvent utilisé comme base d’une architecture de traitement des événements plus grande, servant de « porte d’entrée » pour un pipeline d’événements. Vous pouvez l’utiliser pour ingérer des données à partir de différentes sources, notamment les flux de réseaux sociaux, les appareils IoT et les fichiers journaux. L’un des principaux avantages d’Event Hubs est la possibilité de monter en puissance horizontalement pour répondre aux besoins des charges de travail de traitement des événements les plus importantes. Il est également hautement disponible et tolérant aux pannes, avec plusieurs répliques de données distribuées dans plusieurs régions Azure, afin d'assurer une haute disponibilité.
Le package NuGet Microsoft.Orleans.Streaming.EventHubs contient le fournisseur de flux Event Hubs.
Fournisseur de flux de file d’attente Azure (AQ)
Le fournisseur de flux de file d’attente Azure (AQ) transmet des événements sur les files d’attente Azure. Côté producteur, le fournisseur de flux AQ met en file d’attente les événements directement dans Azure Queue. Côté consommateur, le fournisseur de flux AQ gère un ensemble d’agents d’extraction qui extrayent des événements à partir d’un ensemble de files d’attente Azure et les fournissent au code d’application qui les consomme. Vous pouvez considérer les agents de collecte comme un "microservice" distribué : un composant partitionné, hautement disponible et élastique. Les agents de collecte fonctionnent à l'intérieur des mêmes silos qui hébergent les composants d'application. Par conséquent, il n’est pas nécessaire d’exécuter des rôles de travail Azure distincts pour extraire des files d’attente. Le Orleans runtime de streaming gère entièrement l’existence des agents de prélèvement, leur gestion, le contrôle du flux, l’équilibrage des files d’attente entre eux et la transmission des files d’attente d’un agent défaillant à un autre agent. Cela est entièrement transparent pour le code de l'application utilisant des flux.
Le package NuGet Microsoft.Orleans.Streaming.AzureStorage contient le fournisseur de flux File d'attente Azure.
Adaptateurs de file d’attente
Différents fournisseurs de flux fournissant des événements sur des files d’attente durables présentent un comportement similaire et sont soumis à des implémentations similaires. Par conséquent, nous fournissons un extensible PersistentStreamProvider générique qui vous permet de brancher différents types de files d’attente sans écrire un nouveau fournisseur de flux à partir de zéro.
PersistentStreamProvider
utilise un composant IQueueAdapter, qui abstrait les détails d'implémentation spécifiques de la file d'attente et fournit des moyens pour mettre en file d’attente et traiter les événements. La logique à l’intérieur PersistentStreamProvider
gère tout le reste. Le fournisseur de files d’attente Azure mentionné ci-dessus est également implémenté de cette façon : c’est une instance de PersistentStreamProvider
qui utilise AzureQueueAdapter
.
Fournisseur de flux de messages simples
Le fournisseur de flux de messages simple, également appelé fournisseur SMS, remet des événements sur TCP à l’aide de la messagerie de grain standard Orleans . Étant donné que les événements SMS sont remis sur des liens TCP non fiables, SMS ne garantit pas la remise d’événements fiable et ne renvoie pas automatiquement les messages ayant échoué pour les flux SMS. Par défaut, l'appel du producteur à OnNextAsync renvoie un Task
qui indique l'état de traitement du consommateur du flux. Cela indique au producteur si le consommateur a correctement reçu et traité l’événement. Si cette tâche échoue, le producteur peut décider d’envoyer à nouveau le même événement, en obtenant une fiabilité au niveau de l’application. Bien que la remise de messages de flux soit optimale, les flux SMS eux-mêmes sont fiables. Autrement dit, la liaison abonné à producteur effectuée par Pub-Sub est entièrement fiable.