Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Orleans streaming to funkcja Orleans frameworka, która umożliwia deweloperom pisanie reaktywnych aplikacji działających na sekwencji zdarzeń w sposób ustrukturyzowany. Orleans Przesyłanie strumieniowe udostępnia zestaw abstrakcji i interfejsów API, które sprawiają, że myślenie o strumieniach i praca z nimi jest prostsze i bardziej niezawodne. Strumień jest jednostką logiczną, która zawsze istnieje i nigdy nie może zakończyć się niepowodzeniem. Strumienie są identyfikowane przez element StreamId. Strumienie umożliwiają oddzielenie generowania danych od przetwarzania zarówno w czasie, jak i w przestrzeni. Strumienie działają równomiernie między ziarnami i Orleans klientami i mogą być zgodne i przenośne w wielu istniejących technologiach kolejkowania, takich jak Event Hubs, ServiceBus, Azure Queues i Apache Kafka. Orleans Przesyłanie strumieniowe obsługuje również dynamiczne powiązania strumieniowe, zarządzanie cyklem życia przezroczystego korzystania ze strumieni oraz rozszerzalnych dostawców strumieniowych.
Orleans W wersji 1.0.0 dodano obsługę rozszerzeń przesyłania strumieniowego do modelu programowania. Rozszerzenia przesyłania strumieniowego udostępniają zestaw abstrakcji i interfejsów API, które ułatwiają myślenie o strumieniach i sprawiają, że praca z nimi jest prostsza i bardziej niezawodna. Rozszerzenia przesyłania strumieniowego umożliwiają deweloperom pisanie reaktywnych aplikacji działających na sekwencji zdarzeń w sposób ustrukturyzowany. Model rozszerzalności dostawców strumieni sprawia, że model programowania jest zgodny i przenośny w szerokim zakresie istniejących technologii kolejkowania, takich jak Event Hubs, ServiceBus, Azure Queues i Apache Kafka. Nie ma potrzeby pisania specjalnego kodu ani uruchamiania dedykowanych procesów w celu interakcji z takimi kolejkami.
Dlaczego warto się tym przejmować?
Jeśli wiesz już wszystko o przetwarzaniu strumienia i znasz technologie, takie jak Event Hubs, Kafka, Azure Stream Analytics, Apache Storm, Apache Spark Streaming i Reaktywne rozszerzenia (Rx) na platformie .NET, możesz zapytać, dlaczego warto się tym przejmować. Dlaczego potrzebujemy jeszcze innego systemu przetwarzania strumieniowego i sposobu, w jaki aktorzy są powiązani ze strumieniami?"Dlaczego Orleans Strumienie?" ma odpowiedzieć na to pytanie.
Model programowania
Istnieje kilka zasad modelu programowania strumieni Orleans.
- Orleans strumienie są wirtualne. Oznacza to, że strumień zawsze istnieje. Nie jest jawnie tworzony ani niszczony i nigdy nie może zakończyć się niepowodzeniem.
- Strumienie są identyfikowane przez identyfikatory strumieni, które są tylko nazwami logicznymi składającymi się z identyfikatorów GUID i ciągów.
- Orleans Strumienie umożliwiają oddzielenie generowania danych od ich przetwarzania zarówno w czasie, jak i w przestrzeni. Oznacza to, że producent strumienia i odbiorca strumienia mogą znajdować się na różnych serwerach lub w różnych strefach czasowych i wytrzyma awarie.
- Orleans strumienie są lekkie i dynamiczne. Orleans Środowisko uruchomieniowe przesyłania strumieniowego jest przeznaczone do obsługi dużej liczby strumieni, które pojawiają się i znikają z dużą szybkością.
- Orleans powiązania strumienia są dynamiczne. Orleans Środowisko uruchomieniowe przesyłania strumieniowego jest przeznaczone do obsługi przypadków, w których ziarna łączą się ze strumieniami i rozłączają się z nimi z dużą szybkością.
- Orleans Środowisko uruchomieniowe przesyłania strumieniowego w sposób niewidoczny zarządza cyklem życia zużycia strumienia. Po zasubskrybowaniu strumienia aplikacja będzie otrzymywać zdarzenia strumienia, nawet w przypadku awarii.
- Orleans strumienie działają równomiernie między ziarnami i Orleans klientami.
Przykład szybkiego startu
Przykład Szybkiego Startu to dobry przegląd ogólnego przebiegu pracy związanej z korzystaniem ze strumieni w aplikacji. Po przeczytaniu tego, powinieneś przeczytać API Programowania Strumieni, aby lepiej zrozumieć pojęcia.
Dostawcy usługi Stream
Strumienie mogą pochodzić poprzez fizyczne kanały o różnych kształtach i formach oraz mogą mieć różną semantykę. Orleans Przesyłanie strumieniowe jest przeznaczone do obsługi tej różnorodności za pośrednictwem koncepcji dostawców strumienia, którzy są punktem rozszerzalności w systemie.
Orleans udostępnia kilka implementacji dostawcy strumienia:
Orleans obecnie obejmuje kilka implementacji dostawców:
- Prosta wiadomość (SMS), która używa bezpośrednich wywołań grain i nie korzysta z systemu przechowywania danych.
- Kolejki platformy Azure, które używają kolejek Azure Storage do przechowywania komunikatów i
- Usługa Azure EventHubs korzystająca z usługi Azure EventHubs
Aby uzyskać więcej informacji, zobacz Dostawcy usługi Stream.
Semantyka strumienia
Semantyka subskrypcji strumienia:
Orleans Strumienie gwarantują sekwencyjną spójność dla operacji subskrypcji usługi Stream. W szczególności, gdy użytkownik subskrybuje strumień, po Task
pomyślnym rozpoznaniu operacji subskrypcji użytkownik zobaczy wszystkie zdarzenia, które zostały wygenerowane po jego zasubskrybowaniu. Ponadto strumienie z możliwością przewijania umożliwiają subskrybowanie z dowolnego punktu w czasie w przeszłości przy użyciu polecenia StreamSequenceToken. Aby uzyskać więcej informacji, zobacz Orleans dostawcy usług strumieniowych.
Gwarancje dostarczania poszczególnych zdarzeń strumieniowych:
Indywidualne gwarancje dostarczania poszczególnych wydarzeń zależą od poszczególnych dostawców strumieni. Niektóre zapewniają maksymalnie jednokrotne dostarczanie (takie jak proste strumienie komunikatów (SMS) w wersjach Orleans wcześniejszych niż 7.0, później nazywane kanałem emisji), podczas gdy inne zapewniają co najmniej jednokrotne dostarczanie (np. usługa Azure Queue Streams). Istnieje nawet możliwość utworzenia dostawcy przesyłania strumieniowego, który gwarantuje dokładność jednokrotnej dostawy.
Zlecenie Dostarczania Wydarzeń:
Kolejność zdarzeń zależy również od określonego dostawcy strumienia. W strumieniach SMS producent jawnie kontroluje kolejność zdarzeń widocznych przez konsumenta, kontrolując sposób ich publikowania. Strumienie usługi Azure Queue nie gwarantują kolejności FIFO, ponieważ bazowe kolejki platformy Azure nie gwarantują kolejności w przypadkach awarii. Aplikacje mogą również kontrolować kolejność dostarczania strumienia przy użyciu polecenia StreamSequenceToken.
Implementacja strumieni
ImplementacjaOrleans strumieni zawiera ogólne omówienie implementacji wewnętrznej.
Przykłady kodu
Więcej przykładów używania interfejsów API przesyłania strumieniowego można znaleźć w SampleStreamingGrain.cs.