Dela via


Orleans stream-leverantörer

Flöden kan komma i olika former och former. Vissa strömmar kan leverera händelser via direkta TCP-länkar, medan andra levererar händelser via varaktiga köer. Olika strömtyper kan använda olika batchbearbetningsstrategier, olika cachelagringsalgoritmer eller olika procedurer för ryggtryck. För att undvika att begränsa strömmande program till endast en delmängd av dessa beteendeval är streamprovidrar utökningspunkter till Orleans Streaming Runtime som gör det möjligt för användare att implementera alla typer av strömmar. Den här utökningspunkten liknar i andan lagringsprovidrar Orleans .

Azure Event Hub-dataströmsprovider

Azure Event Hub är en fullständigt hanterad datainmatningstjänst i realtid som kan ta emot och bearbeta miljontals händelser per sekund. Den är utformad för att hantera datainmatning med högt dataflöde med låg svarstid från flera källor och efterföljande bearbetning av dessa data av flera konsumenter.

Event Hubs används ofta som grund för en större arkitektur för händelsebearbetning, där den fungerar som "front door" för en händelsepipeline. Den kan användas för att mata in data från en mängd olika källor, inklusive sociala medieflöden, IoT-enheter och loggfiler. En av de viktigaste fördelarna med Event Hubs är möjligheten att skala ut horisontellt för att uppfylla behoven hos även de största händelsebearbetningsarbetsbelastningarna. Det är också mycket tillgängligt och feltolerant, med flera repliker av data distribuerade över flera Azure-regioner för att säkerställa hög tillgänglighet.

Microsoft .Orleans. Streaming.EventHubs NuGet-paketet innehåller Event Hubs-dataströmsprovidern.

Azure Queue(AQ) stream provider

Azure Queue(AQ) stream provider levererar händelser via Azure Queues. På producentsidan köar AQ-streamprovidern händelser direkt i Azure Queue. På konsumentsidan hanterar AQ-streamprovidern en uppsättning pull-agenter som hämtar händelser från en uppsättning Azure-köer och levererar dem till programkoden som använder dem. Man kan se hämtarna som en distribuerad "mikrotjänst" – en partitionerad, högtillgänglig och elastisk distribuerad komponent. De hämtande agenterna körs i samma silor som är värd för programkorn. Därför behöver du inte köra separata Azure-arbetsroller för att hämta från köerna. Förekomsten av att hämta agenter, deras hantering, backpressure, balansera köerna mellan dem och lämna ut köer från en misslyckad agent till en annan agent hanteras helt av Orleans Streaming Runtime och är transparenta för programkod som använder strömmar.

Microsoft .Orleans. Streaming.AzureStorage NuGet-paketet innehåller Azure Queue Storage-dataströmsprovidern .

Kökort

Olika dataströmprovidrar som levererar händelser över varaktiga köer uppvisar liknande beteende och är föremål för en liknande implementering. Därför tillhandahåller vi en allmän utökningsbar PersistentStreamProvider fil som gör att utvecklare kan ansluta olika typer av köer utan att skriva en helt ny strömleverantör från grunden. PersistentStreamProvider använder en IQueueAdapter komponent som abstraherar specifik information om köimplementering och ger möjlighet att ange och dequeue-händelser. Resten hanteras av logiken PersistentStreamProvideri . Azure Queue Provider som nämns ovan implementeras också på det här sättet: det är en instans av PersistentStreamProvider som använder en AzureQueueAdapter.

Enkel meddelandeströmsprovider

Den enkla meddelandeströmsprovidern, även känd som SMS-providern, levererar händelser via TCP genom att använda vanliga Orleans kornmeddelanden. Eftersom händelser i SMS levereras via otillförlitliga TCP-länkar garanterar SMS inte tillförlitlig händelseleverans och skickar inte automatiskt misslyckade meddelanden för SMS-strömmar. Som standard returnerar producentens anrop till OnNextAsync en Task som representerar dataströmkonsumentens bearbetningsstatus, vilket talar om för producenten om konsumenten har tagit emot och bearbetat händelsen. Om den här uppgiften misslyckas kan producenten välja att skicka samma händelse igen, vilket ger tillförlitlighet på programnivå. Även om leverans av dataströmmeddelanden är det bästa sättet är SJÄLVA SMS-strömmarna tillförlitliga. Det vill:abonnent-till-producent-bindningen som utförs av Pub-Sub är helt tillförlitlig.

Se även

OrleansFlöden implementeringsinformation