Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Orleans Streaming ist ein Feature des Frameworks, mit dem Orleans Entwickler reaktive Anwendungen schreiben können, die auf strukturierte Weise mit einer Abfolge von Ereignissen arbeiten. Orleans Streaming bietet eine Reihe von Abstraktionen und APIs, die das Denken und Arbeiten mit Streams vereinfachen und robuster machen. Ein Datenstrom ist eine logische Entität, die immer vorhanden ist und nie fehlschlagen kann. Datenströme werden durch ihre StreamId identifiziert. Datenströme ermöglichen es, die Generierung von Daten von der Verarbeitung zu entkoppeln, sowohl im Zeit- als auch im Raum. Datenströme funktionieren einheitlich zwischen Grains und Orleans-Clients und können mit einer Vielzahl vorhandener Warteschlangentechnologien, wie Event Hubs, ServiceBus, Azure Queues und Apache Kafka, kompatibel und portierbar sein. Orleans Streaming unterstützt auch dynamische Datenstrombindungen, transparente Datenstromnutzungslebenszyklusverwaltung und erweiterbare Streamanbieter.
Orleans v.1.0.0 hat Unterstützung für Streamingerweiterungen zum Programmiermodell hinzugefügt. Streamingerweiterungen bieten eine Reihe von Abstraktionen und APIs, die das Denken und Arbeiten mit Streams vereinfachen und robuster machen. Mit Streamingerweiterungen können Entwickler reaktive Anwendungen schreiben, die auf strukturierte Weise auf eine Abfolge von Ereignissen reagieren. Das Erweiterbarkeitsmodell von Datenstromanbietern macht das Programmiermodell kompatibel und portierbar für eine Vielzahl vorhandener Warteschlangentechnologien wie Event Hubs, ServiceBus, Azure Queues und Apache Kafka. Es ist nicht erforderlich, speziellen Code zu schreiben oder dedizierte Prozesse auszuführen, um mit solchen Warteschlangen zu interagieren.
Warum sollte ich mich interessieren?
Wenn Sie bereits alles über stream Processing wissen und mit Technologien wie Event Hubs, Kafka, Azure Stream Analytics, Apache Storm, Apache Spark Streaming und Reaktive Erweiterungen (Rx) in .NET vertraut sind, fragen Sie möglicherweise, warum Sie sich interessieren sollten. Warum brauchen wir noch ein weiteres Streamverarbeitungssystem und wie Akteure mit Streams zusammenhängen?"Warum Orleans Datenströme?" ist dazu gedacht, diese Frage zu beantworten.
Programmiermodell
Es gibt mehrere Prinzipien hinter dem Orleans Streams-Programmiermodell:
- Orleans Datenströme sind virtuell. Das heißt, ein Datenstrom ist immer vorhanden. Sie wird nicht explizit erstellt oder zerstört, und sie kann nie fehlschlagen.
- Datenströme werden durch Datenstrom-IDs identifiziert , die nur logische Namen sind, die aus GUIDs und Zeichenfolgen bestehen.
- Orleans Datenströme ermöglichen es Ihnen , die Generierung von Daten von der Verarbeitung zu entkoppeln, sowohl in Zeit als auch im Raum. Dies bedeutet, dass sich der Stream-Produzent und der Stream-Consumer auf verschiedenen Servern oder in verschiedenen Zeitzonen befinden und Fehlern standhalten.
- Orleans Datenströme sind leicht und dynamisch. Orleans Streaming Runtime wurde entwickelt, um eine große Anzahl von Datenströmen zu verarbeiten, die zu einer hohen Rate kommen und gehen.
- Orleans Streambindungen sind dynamisch. Orleans Die Streaming Runtime wurde entwickelt, um Fälle zu behandeln, in denen Körner häufig mit Datenströmen verbunden und von diesen getrennt werden.
- Orleans Die Streaming-Runtime verwaltet transparent den Lebenszyklus der Datenstromnutzung. Nachdem eine Anwendung einen Datenstrom abonniert hat, empfängt sie dann die Ereignisse des Datenstroms, auch wenn fehler vorhanden sind.
- Orleans Streams arbeiten einheitlich über Körner und Orleans Clients hinweg.
Schnellstartbeispiel
Das Schnellstartbeispiel ist eine gute schnelle Übersicht über den gesamten Workflow der Verwendung von Datenströmen in der Anwendung. Nach dem Lesen sollten Sie die Streams-Programmier-APIs lesen, um ein tieferes Verständnis der Konzepte zu erhalten.
Streamanbieter
Datenströme können über physische Kanäle verschiedener Formen und Gestalten kommen und unterschiedliche Semantiken aufweisen. Orleans Streaming wurde entwickelt, um diese Vielfalt über das Konzept von Stream-Anbietern zu unterstützen, was ein Erweiterbarkeitspunkt im System ist.
Orleans stellt mehrere Streamanbieterimplementierungen bereit:
Orleans umfasst derzeit mehrere Anbieterimplementierungen:
- Simple Message (SMS), die direkte Getreideanrufe und kein Sicherungsspeichersystem verwendet,
- Azure Queues, die Azure Storage-Warteschlangen nutzen, um Nachrichten zu speichern, und
- Azure EventHubs, das Azure EventHubs verwendet
Weitere Informationen finden Sie unter Stream-Anbieter.
Stream-Semantik
Stream-Abonnementsemantik:
Orleans Datenströme garantieren sequenzielle Konsistenz für Stream-Abonnementvorgänge. Wenn ein Verbraucher einen Datenstrom abonniert hat, werden nach erfolgreicher Auflösung des Task
Abonnementvorgangs alle Ereignisse angezeigt, die nach der Abonnierung generiert wurden. Darüber hinaus können Sie rewindable streams von einem beliebigen Zeitpunkt in der Vergangenheit mithilfe von StreamSequenceToken abonnieren. Weitere Informationen finden Sie unter Orleans Streamanbieter.
Übermittlungsgarantien für einzelne Streamereignisse:
Individuelle Ereigniszustellungsgarantien hängen von einzelnen Datenstromanbietern ab. Einige bieten nur eine Best-Effort-Zustellung mit höchstens einmaliger Zustellung (z. B. Simple Message Streams (SMS) in Versionen vor Orleans 7.0, danach als Broadcast Channel bezeichnet), während andere mindestens eine einmalige Zustellung (z. B. Azure Queue Streams) bereitstellen. Es ist sogar möglich, einen Streaminganbieter zu erstellen, der genau einmal die Übermittlung garantiert.
Lieferauftrag für Veranstaltungen:
Die Ereignisreihenfolge hängt auch von einem bestimmten Datenstromanbieter ab. In SMS-Streams steuert der Produzent explizit die Reihenfolge der Vom Verbraucher gesehenen Ereignisse, indem er die Art der Veröffentlichung kontrolliert. Azure Queue-Streams garantieren keine FIFO-Reihenfolge, da die zugrunde liegenden Azure-Warteschlangen die Reihenfolge in Ausfallfällen nicht garantieren. Anwendungen können die Reihenfolge der Datenstromzustellung auch mithilfe von StreamSequenceToken steuern.
Implementierung von Streams
Die Orleans Streams-Implementierung bietet einen umfassenden Überblick über die interne Implementierung.
Codebeispiele
Weitere Beispiele für die Verwendung von Streaming-APIs innerhalb eines Korns finden Sie bei SampleStreamingGrain.cs.