Udostępnij za pośrednictwem


Orleans dostawcy strumienia

Strumienie mogą znajdować się w różnych kształtach i formularzach. Niektóre strumienie mogą dostarczać zdarzenia za pośrednictwem bezpośrednich łączy TCP, podczas gdy inne dostarczają zdarzenia za pośrednictwem trwałych kolejek. Różne typy strumieni mogą używać różnych strategii przetwarzania wsadowego, różnych algorytmów buforowania lub różnych procedur wsadowych. Aby uniknąć ograniczania aplikacji przesyłania strumieniowego tylko do podzbioru tych wyborów behawioralnych, dostawcy strumieni są punktami rozszerzalności do Orleans środowiska uruchomieniowego przesyłania strumieniowego, które umożliwiają użytkownikom implementowanie dowolnego typu strumienia. Ten punkt rozszerzalności jest podobny do Orleans dostawców magazynu.

Dostawca strumienia usługi Azure Event Hub

Azure Event Hub to w pełni zarządzana usługa pozyskiwania danych w czasie rzeczywistym, która umożliwia odbieranie i przetwarzanie milionów zdarzeń na sekundę. Jest ona przeznaczona do obsługi pozyskiwania danych z wielu źródeł o wysokiej przepływności i małych opóźnieniach oraz późniejszego przetwarzania tych danych przez wielu użytkowników.

Usługa Event Hubs jest często używana jako podstawa większej architektury przetwarzania zdarzeń, gdzie służy jako "drzwi wejściowe" dla potoku zdarzeń. Może służyć do pozyskiwania danych z wielu różnych źródeł, w tym kanałów informacyjnych mediów społecznościowych, urządzeń IoT i plików dziennika. Jedną z najważniejszych zalet usługi Event Hubs jest możliwość skalowania w poziomie w poziomie w celu spełnienia wymagań nawet największych obciążeń przetwarzania zdarzeń. Jest ona również wysoce dostępna i odporna na uszkodzenia, z wieloma replikami danych rozproszonych w wielu regionach świadczenia usługi Azure w celu zapewnienia wysokiej dostępności.

Microsoft .Orleans. Pakiet NuGet Streaming.EventHubs zawiera dostawcę strumienia usługi Event Hubs.

Dostawca strumienia usługi Azure Queue (AQ)

Dostawca strumienia usługi Azure Queue (AQ) dostarcza zdarzenia za pośrednictwem kolejek platformy Azure. Po stronie producenta dostawca strumienia AQ umieszcza zdarzenia bezpośrednio w kolejce platformy Azure. Po stronie konsumenta dostawca strumieniA AQ zarządza zestawem ściągających agentów , którzy ściągają zdarzenia z zestawu kolejek platformy Azure i dostarczają je do kodu aplikacji, który z nich korzysta. Można traktować ściągających agentów jako rozproszoną "mikrousługę" — podzielony na partycje, wysoce dostępny i elastyczny składnik rozproszony. Agenci ściągania działają wewnątrz tych samych silosów hostujących ziarna aplikacji. W związku z tym nie ma potrzeby uruchamiania oddzielnych ról procesów roboczych platformy Azure do ściągania z kolejek. Istnienie ściągania agentów, ich zarządzania, wycofywania, równoważenia kolejek między nimi i przekazywania kolejek z agenta, które zakończyły się niepowodzeniem do innego agenta, są w pełni zarządzane przez Orleans środowisko uruchomieniowe przesyłania strumieniowego i są niewidoczne dla kodu aplikacji korzystającego ze strumieni.

Microsoft .Orleans. Pakiet NuGet Streaming.AzureStorage zawiera dostawcę strumienia usługi Azure Queue Storage .

Karty kolejki

Różni dostawcy strumieni, którzy dostarczają zdarzenia za pośrednictwem trwałych kolejek, wykazują podobne zachowanie i podlegają podobnej implementacji. W związku z tym udostępniamy ogólny rozszerzalny element PersistentStreamProvider umożliwia deweloperom podłączanie różnych typów kolejek bez konieczności pisania zupełnie nowego dostawcy strumienia od podstaw. PersistentStreamProviderIQueueAdapter używa składnika, który tworzy abstrakcje szczegółów implementacji kolejki i zapewnia środki do kolejkowania i dequeue zdarzeń. Cała reszta jest obsługiwana przez logikę wewnątrz elementu PersistentStreamProvider. Dostawca kolejki platformy Azure wymieniony powyżej jest również implementowany w ten sposób: jest to wystąpienie PersistentStreamProvider , które używa elementu AzureQueueAdapter.

Prosty dostawca strumienia komunikatów

Prosty dostawca strumienia komunikatów, znany również jako dostawca programu SMS, dostarcza zdarzenia za pośrednictwem protokołu TCP, wykorzystując zwykłe Orleans komunikaty ziarna. Ponieważ zdarzenia w programie SMS są dostarczane za pośrednictwem zawodnych linków TCP, program SMS nie gwarantuje niezawodnego dostarczania zdarzeń i nie automatycznie ponownie wyślij wiadomości zakończonych niepowodzeniem dla strumieni SMS. Domyślnie wywołanie producenta w celu OnNextAsync zwraca wartość Task reprezentującą stan przetwarzania odbiorcy strumienia, który informuje producenta, czy konsument pomyślnie odebrał i przetworzył zdarzenie. Jeśli to zadanie zakończy się niepowodzeniem, producent może ponownie wysłać to samo zdarzenie, co spowoduje osiągnięcie niezawodności na poziomie aplikacji. Chociaż dostarczanie wiadomości strumieniowych jest najlepszym rozwiązaniem, strumienie wiadomości SMS są niezawodne. Oznacza to, że powiązanie subskrybenta-producent wykonywane przez Pub-Sub jest w pełni niezawodne.

Zobacz też

Orleansszczegóły implementacji Strumienie