Latest / M365.FM – Microsoft 365, Copilot & KI Podcast auf Deutsch / Azure Event Hubs einfach erklärt: Echtzeit-Datenstreaming mit Partitionen, Consumergruppen und Kafka (KI-Synchronfassung)
Transcript
- 0:00Bereit für 10 Tage Microsoft 365 Co-Pilot KI-Azure und die Menschen, die die Zukunft der Arbeit gestalten?
- 0:07Diesen Januar ist die M-Tron 65-Con zurück und zwar noch größer.
- 0:12Seien Sie dabei bei Live-Sitzungen, Demos aus der Praxis und praktischem Wissen von MVPs und Branchenexperten aus aller Welt.
- 0:18Keine generischen Folien, keine endlosen Schlagworte.
- 0:21Wir stellen uns den echten Herausforderungen Co-Pilot Studio, KI-Agents, Fabric, Sicherheit, Governance und Automatisierung.
- 0:28Ganz gleich, ob Sie IT-Experte, Entwickler oder Führungskraft sind, es gibt speziell auf Sie zugeschnittene Sitzungen.
- 0:35An 10 vollen Tagen können Sie verschiedene Technologien kennenlernen und sich mit einer globalen Community vernetzen.
- 0:40Sehen Sie sich die Live-Übertragung an und nehmen Sie praktische Einblicke mit nach Hause in Ihr Unternehmen.
- 0:45Januar 2027, 10 Tage, eine Microsoft Community.
- 0:49Die Registrierung ist ab sofort möglich.
- 0:51Gehen Sie noch heute zu Ihrem Standort.
- 0:53Das ist m325-conton.net.
- 0:58Melden Sie sich jetzt unter m325-conton.net an und wir sehen uns im Januar live.
- 1:05Willkommen zurück zu einer neuen Folge von Microsoft Knowledge Nuggets.
- 1:07Ich bin Ihr Gastgeber Mirko Peters und heute befassen wir uns mit einem realen Datenproblem.
- 1:12Lassen Sie mich Sie folgendes fragen.
- 1:14Stellen Sie sich vor, Sie arbeiten in einer Fabrik mit 1000 Sensoren für Temperatur, Druck und Vibration.
- 1:18Wieder unterbrochen, laufen, laufen und und und und und und.
- 1:19Das sind also 1000 Datenpunkte pro Sekunde.
- 1:22Vor 20 Jahren war die Lösung einfach.
- 1:24Sie haben tagsüber all diese Daten gesammelt, in einer Datei gespeichert und dann um Mitternacht einen Batchjob ausgeführt, um die Daten zu verarbeiten.
- 1:30Am nächsten Morgen hatten Sie dann einen Bericht, der Ihnen zeigte, was gestern passiert war.
- 1:33Das hat gut funktioniert, als schnell genug bedeutete, dass es morgen früh sein würde.
- 1:37Aber die Welt hat sich verändert.
- 1:38Sensoren wurden billiger, Apps wurden intelligenter und die Nutzer erwarten sofortige Antworten.
- 1:43Dieser nächtliche Batchjob bedeutet, dass Ihre Daten immer einen Tag alt sind.
- 1:46Und in einer Welt, in der eine überhitzte Maschine innerhalb von Minuten einen Brand verursachen kann, sind Daten von einem Tag nutzlos.
- 1:51Also stellen Sie auf Echtzeit um und erfassen die Daten, sobald sie generiert werden.
- 1:54Aber hier fangen die Probleme an.
- 1:56Versuchen Sie mal, all diese Streaming-Daten in eine herkömmliche Datenbank zu stellen.
- 1:59Und sie gerät einfach ins Stocken.
- 2:01Datenbanken sind für Abfragen und Transaktionen konzipiert, nicht für die Verarbeitung einer Flut von Ereignissen.
- 2:05Sie versuchen es mit einer normalen Nachrichtenwarteschlange und das funktioniert eine Zeit lang.
- 2:09Aber Warteschlangen sind dafür konzipiert, dass ein einzelner Konzipiert, dass ein einzelner Consumer eine Nachricht abrufende verarbeitet.
- 2:13Sie sind also nicht für Millionen von Ereignissen pro Sekunde mit mehreren nachgelagerten Systemen konzipiert, die alle denselben Stream lesen möchten.
- 2:20Das ist die zentrale Herausforderung.
- 2:22Sie benötigen eine Möglichkeit, riesige Datenmengen zu verarbeiten, diese zu puffern, damit nichts verloren geht und sie in Echtzeit an mehrere Consumer zu verteilen.
- 2:29Das ist kein Datenbankproblem.
- 2:30Es ist kein Warteschlangenproblem.
- 2:32Das sind Streaming-Probleme.
- 2:33Also wie kann man das lösen?
- 2:33Hier kommt Azure Event Hubs ins Spiel.
- 2:36Was ist Azure Event Hubs?
- 2:37Hier ist die einfachste Definition.
- 2:40Azure Event Hubs ist eine vollständig verwaltete Echtzeit-Datenstreaming-Plattform, die speziell dafür entwickelt wurde, mit geringer Latenz zu verarbeiten.
- 2:46Beachten Sie, dass ich nicht Nachrichtenwarteschlange oder Datenbank gesagt habe.
- 2:49Event Hubs ist keine Warteschlange und keine Datenbank.
- 2:52Es ist ein Datenstrom und der Unterschied ist wichtig.
- 2:54Eine Warteschlange enthält eine Nachricht, bis ein Consumer sie abruf und ist sie weg.
- 2:57Eine Datenbank speichert Daten, damit Sie sie später erfragen können.
- 3:00Ein Datenstrom ist jedoch anders.
- 3:01Es handelt sich um einen kontinuierlichen Fluss von Ereignissen, die mehrere Leser unabhängig voneinander in ihrem eigenen Tempo lesen können, ohne dass Datenstrom entfernt werden müssen.
- 3:08Lassen Sie uns nun ein paar Mythen ausräumen.
- 3:10Event Hubs können Millionen von Ereignissen pro Sekunde verarbeiten.
- 3:13Wir sprechen hier von der Aufnahme von Hunderttausenden von Nachrichten pro Sekunde von Tausenden von Produzenten von Produzenten.
- 3:18Dies geschieht mit sehr geringer Latenz.
- 3:20Von Senden eines Ereignisses bis zu dem Zeitpunkt, an dem ein Consumer es lesen kann, vergehen nur Millisekunden.
- 3:25Folgendes überrascht viele, Event Hubs ist Kafka-kompatibel.
- 3:28Wenn Sie also bereits mit Apache Kafka gearbeitet haben, können Sie Ihre vorhandenen Kafka-Tools und Clients verwenden, um mit Event Hubs zu kommunizieren, ohne ein neues Protokoll erlernen oder Ihre Anwendungen neu schreiben zu müssen.
- 3:36Event Hubs spricht dieselbe Sprache.
- 3:38Am einfachsten kann man sich Event Hubs als eine Art Hochgeschwindigkeitsdateneingangstür vorstellen.
- 3:42Denken Sie sich ein belebtes Bürogebäude während der Hauptverkehrszeit vor.
- 3:45Hunderte von Menschen betreten jede Minute die Eingangstür und die Tür hält sie nicht auf, stellt keine Fragen und leitet sie nicht in bestimmte Räume um.
- 3:52Sie lässt sie einfach schnell herein.
- 3:54Das Event Hubs. Es ist die Eingangstür für Ihre Daten.
- 3:56Die Daten werden nicht verarbeitet, analysiert oder entschieden, was damit zu tun ist.
- 3:59Die Daten werden einfach so schnell wie möglich in Ihre Azure-Umgebung eingeschleust, damit Ihre nachgelagerten Systeme die eigentliche Arbeit erledigen können.
- 4:05Aber wie funktioniert das eigentlich? Lassen Sie uns die Einzelbeschlüsse.
- 4:08Die Bausteine, Partitionen, Consumergruppen, Durchsatz.
- 4:11In jedem Event Hub gibt es also eine Struktur, die das Ganze zum Funktionieren bringt.
- 4:14Das wichtigste Element ist die Partition.
- 4:16Stellen Sie sich eine Partition, wenn eine Fahrspur von der Autobahn fährt.
- 4:18Daten kommen an und landen auf einer dieser Fahrspur.
- 4:20Hier ist der Schlüssel.
- 4:21Innerhalb jeder Fahrspur bleibt die Reihenfolge der Ereignisse genau in der Reihenfolge, in der Sie eingegangen sind.
- 4:24Ereignis 1 kommt vor Ereignis 2 und Ereignis 2 vor Ereignis 3.
- 4:27Diese Reihenfolge ändert sich innerhalb dieser Lainy.
- 4:30Wenn Ihre Anwendung Ereignisse, also in der exakten Reihenfolge benötigt, behalten Sie sie nicht.
- 4:33Sie können zwischen 2 und 32 Partitionen pro Event Hub haben und legen diese Zahl fest, wenn Sie den Hub erstellen.
- 4:39Sie kann später nicht mehr geändert werden.
- 4:40Daher müssen Sie sich im Voraus Gedanken über Ihren Durchsatzbedarf machen.
- 4:43Mehr Partitionen bedeuten mehr parallele Verarbeitung.
- 4:45Wenn Sie ein hohes Ereignis auf Komma warten, benötigen Sie mehr Partitionen, damit mehrere Consumer gleichzeitig aus verschiedenen Lanes lesen können.
- 4:51Mehr Partitionen bedeuten jedoch auch mehr Komplexität.
- 4:54Zwausträglich gilt, dass Sie Ihre Wahl nicht willkürlich, sondern basierend auf dem erwarteten Durchsatz treffen sollten.
- 4:57Wenn Sie sich nicht sicher sind, beginnen Sie mit einer kleineren Größe und testen.
- 5:00Partitionen allein reichen nicht aus.
- 5:01Sie benötigen auch Consumergruppen.
- 5:03Eine Consumergruppe ist einfach eine separate Downstream-Anwendung, die denselben Stream liest.
- 5:07Jede Consumergruppe erhält eine eigene, unabhängige Kopie.
- 5:10Wenn Sie also eine Gruppe für Echtzeitanalysen und eine andere für die Archivierung im Speicher haben, lesen beide gleichzeitig dieselben Ereignisse, ohne sich zu stören.
- 5:17Die Analysegruppe liest Temperaturdaten, um Anomalien zu erkennen.
- 5:20Die Archivierungsgruppe liest dieselben Daten und sendet sie zur Langzeitspeicherung an einen Data Lake.
- 5:24Beide Gruppen sehen jedes Ereignis.
- 5:26Keine Gruppe blockiert die andere.
- 5:27Und das ist ein wichtiger Aspekt.
- 5:28In einer herkömmlichen Warteschlange wird eine Nachricht von einem Prozessor verarbeitet und ist dann weg.
- 5:32Hier können mehrere Consumer denselben Datenstrom unabhängig von einer Nächsten.
- 5:35Das ist die Stärke von Consumergruppen.
- 5:37Aber wie messen Sie, wie viele Daten Ihr Event-Hub verarbeiten kann?
- 5:39Hier kommen die Durchsatzeinheiten ins Spiel.
- 5:41Eine Durchsatzeinheit oder TU ist ein Maß für die Kapazität.
- 5:44Eine TU bietet Ihnen 1 MB pro Sekunde an eingehenden Daten und 2 MB pro Sekunde an ausgehenden Daten.
- 5:50Wenn Sie also 10 MB pro Sekunde erfassen müssen, benötigen Sie mindestens 10 TUs.
- 5:53Sie können manuell hochskalieren oder die automatische Erhöhung aktivieren,
- 5:56wodurch Ihre TUs bei Datenverkehrsspitzen automatisch erhöht werden.
- 5:59Sie zahlen für die maximale Anzahl an TUs, die in einer Stunde genutzt werden.
- 6:02Wenn Sie also 20 TUs für 10 Minuten verwenden, bauen Sie für die gesamte Stunde 20 TUs ein.
- 6:07Noch ein Aspekt Aufbewahrung.
- 6:09Ereignisse verschwinden nicht aus dem Haupt, nachdem sie verbraucht wurden.
- 6:12Sie verbleiben für einen konfigurierbaren Zeitrahmen.
- 6:13Im Standardtarif sind das 1 bis 7 Tage.
- 6:15Im Premiumtarif bis zu 90 Tage.
- 6:17Dies ermöglicht etwas, das als Wiedergabe bezeichnet.
- 6:19Wenn Ihr nachgelagerter Consumer ausfällt
- 6:21oder Sie Daten für eine neue Analyse erneut verarbeiten müssen,
- 6:23können Sie zurückgehen und alte Ereignisse erneut lesen.
- 6:25Das ist anders als bei einer Warteschlange,
- 6:27bei der eine Nachricht, sobald sie verbraucht wurde, für immer verloren ist.
- 6:29Kennen Sie also die einzelnen Bestandteile,
- 6:31aber wir arbeiten sie in einem echten System tatsächlich zusammen.
- 6:34Funktionsweise.
- 6:34Das Producer- und Consumer-Modell.
- 6:36Lassen Sie uns den Ablauf von Anfang bis Ende durchgehen.
- 6:38Auf der einen Seite haben Sie Producer.
- 6:40Ein Producer ist eine beliebige Anwendung
- 6:42oder ein Gerät, das Ereignisse an den Hubs sendet.
- 6:44Dabei kann es sich um einen Temperatursensor in einer Fabrik,
- 6:46einen Webserver der Seitenaufrufe protokolliert
- 6:48oder eine Banking-App handeln, die Transaktionsdaten sendet.
- 6:50Produzenten können über drei verschiedene Protokolle mit Event-Hubs kommunizieren.
- 6:53In AMQP, HTTPS oder Kafka.
- 6:55Es gibt also eine Möglichkeit, eine Verbindung herzustellen,
- 6:57ganz gleich, welche Sprache oder Plattform Sie verwenden.
- 6:59Wenn ein Produzent ein Ereignis sendet,
- 7:00entscheidet der Hub, in welche Partition es verschoben.
- 7:03Standardmäßig werden Ereignisse im Round-Rubin-Verfahren verteilt.
- 7:06Das erste Ereignis wird am Partition 1 verschoben,
- 7:07das zweite am Partition 2 USB.
- 7:09Sie können aber auch einen Partitionsschlüssel verwenden.
- 7:10Wenn Sie möchten, dass alle Ereignisse von demselben Gerät
- 7:13in derselben Partition landen, legen Sie die Geräte-ID
- 7:15als Partitionsschlüssel für.
- 7:16Auf diese Weise bleibt die Reihenfolge der Ereignisse
- 7:17von diesem Gerät erhalten.
- 7:18Der Hub selbst führt nicht viele Verarbeitungsvorgänge auf.
- 7:21Er puffert die Ereignisse und speichert sie
- 7:22für den Aufbewahrungszeitraum in den Partitionen.
- 7:24Stellen Sie sich das als ein Aufbewahrungswort.
- 7:26Die Ereignisse verbleiben dort und warten darauf,
- 7:27dass sie gelesen werden.
- 7:29Auf der anderen Seite gibt es Konsumenten.
- 7:31Konsumenten sind nachgelagerte Anwendungen,
- 7:32die Daten aus dem Hub lesen.
- 7:34Und hier kommt der wichtige Teil.
- 7:35Konsumenten verwenden ein Pull-Modell.
- 7:37Sie steuern ihr eigenes Tempo.
- 7:38Sie erhalten keine Push-Ereignisse,
- 7:39sondern fordern Ereignisse an, wenn diese bereit sind.
- 7:41Dies unterscheidet sich von einer Warteschlange,
- 7:43bei der das System nachrichten an einen Consumer-Push.
- 7:45Hier entscheidet der Consumer,
- 7:46wann der nächste Batch abgerufen werden soll.
- 7:48Jede Consumer-Gruppe verfolgt ihre eigene Position im Stream.
- 7:51Diese Position wird als Offset bezeichnet.
- 7:53Der Offset teilt dem Consumer mit,
- 7:54welche Ereignisse er bereits verarbeitet hat.
- 7:56Der Consumer speichert diesen Offset an einem dauerhaften Ort,
- 7:59in der Regel im Azure Blob-Speicher.
- 8:00Dieser Vorgang wird als Prüfpunktspeicherung bezeichnet.
- 8:02Hier werden die Gründe für die Bedeutung von Prüfpunkten.
- 8:04Stellen Sie sich vor, Ihre Konsumeranwendung
- 8:05stürzt während der Verarbeitung eines Ereignis-Badges ab.
- 8:08Beim Neustart liest sie den letzten Prüfpunkt aus dem Blob-Speicher
- 8:11und setzt die Arbeit genau an diesem Punkt fort.
- 8:13Sie verarbeitet alte Ereignisse nicht erneut
- 8:14und überspringt keine Ereignisse.
- 8:16Sie setzt die Arbeit genau dort fort, wo sie aufgehört.
- 8:18Das ist Zuverlässigkeit ohne Komplexität.
- 8:20Die wichtigste Erkenntnis ist,
- 8:21dass Event-Hubs Produzenten und Konsumenten vollständig entkoppelt.
- 8:24Produzenten wissen nicht, wer ihre Daten liest.
- 8:26Consumer wissen nicht, wer die Daten sendet.
- 8:28Es ist unabhängig.
- 8:28Der Hub befindet sich in der Mitte und puffert und verteilt Ereignisse.
- 8:31Jede Seite arbeitet in ihrem eigenen Tempel.
- 8:33Diese Entkopplung macht Event-Hubs so leistungsstark
- 8:35für den Aufbau skalierbarer, widerstandsfähiger Systeme.
- 8:38Verdeutlichen wir dies anhand realer Szenarien.
- 8:41Reale Anwendungsfälle.
- 8:42Beginnen wir mit dem wichtigsten, IoT-Telemetrie.
- 8:45Stellen Sie sich eine intelligente Fabrik mit tausenden von Sensoren vor.
- 8:48Jede Maschine verfügt über Sensoren,
- 8:49die Temperatur, Druck, Vibration und Energieverbrauch messen.
- 8:52Jeder einzelne sendet alle paar Sekunden an Messwert.
- 8:54Das sind nicht hunderte von Ereignissen pro Sekunde,
- 8:56sondern hunderttausende oder vielleicht Millionen,
- 8:58je nach Größe der Fabrik.
- 8:59Sie können diese Daten nicht in einer herkömmlichen Datenbank speichern,
- 9:01nicht mit einem Batch-Auftrag verarbeiten,
- 9:02der einmal täglich ausgeführt wird.
- 9:04Bis Sie den Bericht erhalten, ist eine Maschine
- 9:05möglicherweise bereits überhitzt und hat die Produktion eingestellt.
- 9:08Daher leiten Sie alle Sensordaten an Event-Hubs weiter,
- 9:11die die Daten problemlos verarbeiten.
- 9:13Anschließend verbinden Sie Azure Stream Analytics mit dem Hub,
- 9:15damit Echtzeitabfragen für die Daten ausgeführt werden können.
- 9:18Wenn ein Temperaturmesswert einen Schwellenwert überschreitet,
- 9:20wird eine Warnung ausgelöst, ein Wartungsteam wird benachrichtigt
- 9:22und ein Computer wird heruntergefahren, bevor er ausfällt.
- 9:25Es ist vorausschauende Wartung in Aktion.
- 9:26Ein weiterer häufiger Anwendungsfall ist die Anwendungsprotokollierung
- 9:29und Überwachung.
- 9:29Angenommen, Sie betreiben eine Microservice-Architektur
- 9:31mit 50 verschiedenen Diensten, die alle unterschiedliche Dinge tun.
- 9:35Jeder Dienst generiert Protokolle mit Fehlern,
- 9:36Warnungen und Leistungsmetriken.
- 9:37Früher haben Sie diese Protokolle in Dateien auf jedem Server geschrieben
- 9:40und wenn etwas kaputt ging, mussten Sie sich bei fünf verschiedenen Computern anmelden,
- 9:43um den Fehler zu finden.
- 9:44Das ist ein Albtraum.
- 9:46Stattdessen veranlassen Sie, dass jeder Dienst seine Protokolle
- 9:48an einen einzelnen Event-Hub sendet.
- 9:50Eine zentrale Pipeline.
- 9:52Dann erstellen Sie mehrere Consumer-Gruppen.
- 9:54Eine Gruppe liest den Stream und sendet kritische Fehler
- 9:56an ein Echtzeitwarnsystem.
- 9:58Eine andere Gruppe liest denselben Stream
- 10:00und schreibt alle Protokolle zur langfristigen Speicherung und Analyse
- 10:02in Azure Data Lake.
- 10:03Eine dritte Gruppe speist ein Live-Dashboard aus den Systemzustand anzeigen.
- 10:06Jedes Team sieht dieselben Daten in Echtzeit,
- 10:08ohne sich gegenseitig zu stören.
- 10:10Klick-Stream-Analysen sind ein weiterer wichtiger Aspekt.
- 10:12Stellen Sie sich vor, Sie betreiben eine E-Commerce-Website.
- 10:13Jeder Klick, jeder Seitenaufruf, jede Suchanfrage
- 10:15und jedes Ereignis bei dem der Nutzer in den wahren Kopf will Liquid
- 10:17wird an Event-Hubs gesendet.
- 10:18Das ist ein riesiger Strom von Daten zum Nutzerverhalten.
- 10:20Nachgelagerte Verbraucher analysieren den Strom in Echtzeit.
- 10:23Ein Verbraucher erstellt Benutzerprofile,
- 10:24die zeigen, welche Produkte sich die Nutzer ansehen
- 10:26und welche Kategorien sie durchsuchen.
- 10:27Ein anderer Verbraucher erkennt Trends
- 10:29und sieht, welche Produkte plötzlich beliebt sind.
- 10:31Ein dritter Verbraucher personalisiert das Einkaufserlebnis,
- 10:34indem er Empfehlungen auf der Grundlage dessen anzeigt,
- 10:35worauf der Nutzer gerade geklickt hat.
- 10:37All dies geschieht in Millisekunden, nicht über Nacht.
- 10:39Und dann ist da noch die Betrugserkennung im Finanzwesen.
- 10:41Banken verarbeiten jeden Tag Millionen von Transaktionen.
- 10:44Kreditkartenabbuchungen, Überweisungen, Online-Zahlungen.
- 10:47Jede Transaktion ist ein Ereignis
- 10:48und jede einzelne muss in Echtzeit auf Betrug hin bewertet werden.
- 10:51Sie können nicht auf einen Batch-Auftrag warten,
- 10:53denn wenn eine betrügerische Transaktion durchgeführt wird,
- 10:55ist das Geld weg.
- 10:55Daher überträgt die Bank jede Transaktion an Event-Hubs.
- 10:58Nachgelagerte Machine-Learning-Modelle
- 11:00verarbeiten den Datenstrom
- 11:01und bewerten jede Transaktion auf Betrugsrisiko.
- 11:03Verdächtige Transaktionen werden innerhalb von Sekunden
- 11:05gekennzeichnet und blockiert.
- 11:07In der Zwischenzeit speisen separate Verbrauchergruppen
- 11:09denselben Datenstrom in Compliance-Systeme
- 11:10für die Berichterstattung über gesetzliche Bestimmungen
- 11:12und in operative Dashboards
- 11:13zur Überwachung des Transaktionsvolumens ein.
- 11:15Drei verschiedene Verbraucher,
- 11:16die alle denselben Datenstrom lesen
- 11:17und dabei unterschiedliche Dinge tun.
- 11:19Der rote Faden, der sich durch alle diese Szenarien zieht,
- 11:21ist derselbe.
- 11:21Hohes Volumen, mehrere Verbraucher
- 11:23und die Notwendigkeit von Echtzeit-Informationen.
- 11:25Event-Hubs ist nicht die Lösung für jedes Problem,
- 11:27aber in dieser Kombination ist es das richtige Tool
- 11:29für die Aufgabe.
- 11:31Nun ist Event-Hubs nicht der einzige Messaging-Dienst in Azure.
- 11:34Vergleichen wir mit den anderen.
- 11:35Event-Hubs im Vergleich zu Event-Grid und Service-Bus.
- 11:38Azure verfügt über drei Hauptdienste
- 11:39zum Verschieben von Daten.
- 11:41Event-Grid, Event-Hubs und Service-Bus.
- 11:43Diese werden oft verwechselt,
- 11:44deshalb wollen wir das Ganze aufklären.
- 11:46Event-Grid ist der Rauchmelder.
- 11:47Es ist schlank und reaktionsschnell.
- 11:48Wenn etwas passiert,
- 11:50wird ein Blob in den Speicher hochgeladen.
- 11:52Der Status eines virtuellen Computers ändert sich.
- 11:55Eine Ressource wird erstellt.
- 11:56Event-Grid löst ein Ereignis aus.
- 11:58Es überträgt nicht die Daten selbst,
- 11:59sondern meldet nur, hey, etwas ist passiert.
- 12:01Anschließend wird diese Benachrichtigung an Händler
- 12:02wie Azure Functions oder Logic Apps weitergeleitet.
- 12:04Event-Grid ist kein Datenstrom
- 12:06und nicht für hohen Durchsatz konzipiert.
- 12:08Es wird für diskrete Ereignisse vorgesehen,
- 12:09die eine schnelle Reaktion erfüllen.
- 12:10Es eignet sich am besten für Trigger zum Hochladen von Blobs,
- 12:12Änderungen des Ressourcenstatus
- 12:13und serverlose Workflows.
- 12:15Service-Bus ist der Postdienst.
- 12:16Er ist zuverlässig geordnet und garantiert die Zustellung.
- 12:19Wenn Sie eine Nachricht über Service-Bus senden,
- 12:21wissen Sie, dass sie ankommen.
- 12:22Service-Bus unterstützt die First-in-First-out-Reihenfolge
- 12:24der Erkennung von Duplikaten und Transaktionen.
- 12:26Wenn eine Nachricht nicht verarbeitet werden kann,
- 12:27wird sie in eine Warteschlange für unzustellbare Nachrichten verschoben,
- 12:29in der Sie sich später überprüfen können.
- 12:30Service-Bus wurde für geschäftskritische Workflows
- 12:32wie Zahlungsabwicklung, Auftragserfüllung
- 12:34und Genehmigungsketten entwickelt.
- 12:36Service-Bus verarbeitet tausende von Nachrichten pro Sekunde,
- 12:38nicht Millionen.
- 12:38Das ist auch gut so,
- 12:39denn wenn Sie eine Zahlung verarbeiten,
- 12:40benötigen Sie nicht Millionen von Ereignissen pro Sekunde.
- 12:42Jede einzelne Nachricht muss genau einmal
- 12:44in der richtigen Reihenfolge ankommen.
- 12:45EventHubs ist die Überwachungskamera.
- 12:47Es zeichnet alles zur Wiedergabe und Analyse auf.
- 12:50Das wurde für Streaming mit hohem Volumen
- 12:51und Millionen von Ereignissen pro Sekunde entwickelt
- 12:53und mehrere Consumer können denselben Stream
- 12:54unabhängig von Analysen.
- 12:56Ereignisse verbleiben Tage oder Wochen lang im Hub,
- 12:58sodass Sie sie bei Bedarf erneut abspielen können.
- 12:59EventHubs ist nicht für Transaktionsnachrichten vorgesehen.
- 13:02Es ist für Telemetriedaten,
- 13:03Analysepipelines und alle Szenarien vorgesehen,
- 13:05in denen Sie große Datenmengen erfassen
- 13:07und an mehrere Consumer verteilen müssen.
- 13:08Wie treffen Sie also Ihre Entscheidung?
- 13:10Stellen Sie sich drei Fragen.
- 13:11Reagieren Sie auf eine Änderung.
- 13:12Ein Blob wurde hochgeladen, eine VM wurde erstellt,
- 13:15der Status einer Ressource wurde geändert.
- 13:16Das ist EventGrid.
- 13:17Benötigen Sie eine garantierte Zustellung,
- 13:19eine strikte Reihenfolge.
- 13:20Zahlungen verarbeiten, Workflows ausführen,
- 13:22Geschäftstransaktionen koordinieren,
- 13:23das ist Servicebus.
- 13:24Streamen Sie große Datenmengen für Analysen,
- 13:26IoT-Telemetriedaten, Anwendungsprotokolle,
- 13:28Clickstreams oder zur Betrugserkennung
- 13:29oder zur Betrugserkenntung.
- 13:30Das ist EventHubs.
- 13:32Aber das ist der Clou.
- 13:33Sie müssen sich nicht für einen von beiden entscheiden.
- 13:34Diese Dienste arbeiten zusammen.
- 13:35EventHubs erfassen den Rohdatenstrom.
- 13:38EventGrid reagiert auf Ereignisse in diesem Strom
- 13:40und löst nachgelagerte Aktionen aus.
- 13:42Servicebus verarbeitet die zuverlässige Nachrichtenübermittlung
- 13:44für Geschäftsworkflows.
- 13:45Wenn Sie beides zusammen verwenden,
- 13:46erhalten Sie das Beste aus beiden Welten.
- 13:48Sprechen wir über die Kosten für den Betrieb dieser Art von Pipeline.
- 13:51Preise und Tarife
- 13:51Sprechen wir über die Kosten,
- 13:53denn zu wissen, was EventHubs leistet, ist eine Sache.
- 13:55Aber zu wissen, was es kostet, ist eine ganz andere.
- 13:57EventHubs verfügt über vier Tarife,
- 13:58wobei Basic der günstigste ist.
- 13:59Er bietet einen Tag Aufbewahrungsdauer,
- 14:01eingeschränkte Features
- 14:02und die niedrigsten Kosten pro Durchsatzeinheit.
- 14:04Dies eignet sich für einfache Szenarien,
- 14:06in denen Sie nicht viel benötigen.
- 14:07Die meisten Benutzer überspringen jedoch Basic
- 14:08und beginnen mit Stand.
- 14:09Standard ist die optimale Lösung.
- 14:11Sie bietet bis zu sieben Tage Aufbewahrungsdauer,
- 14:13EventHubs Capture für die automatische Archivierung im Speicher,
- 14:15Kafka-Kompatibilität
- 14:16und bis zu 20 Consumer-Gruppen.
- 14:19Dies deckt die meisten Produktionsworkloads.
- 14:20Wenn Sie also etwas Konkretes entwickeln,
- 14:22sollten Sie in der Regel hier beginnen.
- 14:23Premium ist eine Stufe höher.
- 14:24Sie erhalten 90 Tage Aufbewahrungsdauer,
- 14:261TB Speicher pro Verarbeitungseinheit,
- 14:28vorhersagbare Leistungen
- 14:29für die Netunterstützung für die Netzwerkisolierung.
- 14:32Diese Stufe ist für anspruchsvolle Workloads konzipiert,
- 14:35bei denen Latenz und Isolation eine richtige Rolle spielen.
- 14:37Dedicate ist die oberste Stufe.
- 14:38Ein Single-Tenant-Cluster
- 14:39nur für Sie mit 10TB pro Kapazitätseinheiten.
- 14:42Er eignet sich für sehr große Workloads,
- 14:43bei denen Sie die gesamte Umgebung für sich benötigen.
- 14:45Ja, er ist teuer,
- 14:46aber wenn Sie kontinuierlich große Mengen verarbeiten,
- 14:48kann er kostengünstiger sein als die Skalierung Premium.
- 14:51Was sind also die Kostentreppen?
- 14:52Vier Faktoren.
- 14:54Durchsatzeinheiten?
- 14:54Die Menge der zu verschiebenden Daten.
- 14:57Aufbewahrungsdauer?
- 14:58Wie lange Sie Ereignisse aufbewahren?
- 14:59Erfassung, ob Sie im Speicher archivieren?
- 15:01Und Georeplikation,
- 15:03wenn Sie Daten für die Notfallwiederherstellung
- 15:04regionsübergreifend kopieren.
- 15:06Hier sind ein paar Tipps zur Kostenoptimierung.
- 15:08Beginnen Sie mit Standard
- 15:09und skalieren Sie nur bei Bedarf hoch.
- 15:11Verwenden Sie eine kurze Aufbewahrungsdauer für wichtige Daten.
- 15:13Bewahren Sie die Daten ein oder zwei Tage im Hub auf
- 15:15und lagern Sie sie dann für die Langzeitanalyse
- 15:17in einen kostengünstigen Speicher wie Blob oder Dadalek aus.
- 15:19Überwachen Sie Ihre Durchsatznutzung,
- 15:20dimensionieren Sie Ihre TOs richtig
- 15:21und stellen Sie nicht zu viele Daten.
- 15:22Verwenden Sie außerdem nach Möglichkeit
- 15:24HTTP für Absender anstelle von AMQP,
- 15:27da für AMQP-Verbindungen Gebühren anfallen,
- 15:29für HTTP jedoch nicht.
- 15:30Sehen wir uns nun eine einfache Architektur an,
- 15:32um zu sehen, wie Sie tatsächlich loslegen.
- 15:34Erste Schritte, eine einfache Architektur.
- 15:36Das grundlegende Muster ist einfach.
- 15:38Produzenten senden Ereignisse an Event Hubs
- 15:39und Konsumenten lesen von Event Hubs.
- 15:41Das ist alles.
- 15:42Hier ist ein konkretes Beispiel.
- 15:44Stellen Sie sich vor,
- 15:44IoT-Geräte senden Temperaturdaten an Event Hubs.
- 15:47Eine Azure-Funktion wird durch jeden neuen Batch
- 15:49von Ereignissen ausgelöst
- 15:50und die Funktion verarbeitet die Daten.
- 15:51Sie filtert möglicherweise Messwerte heraus,
- 15:53die im normalen Bereich liegen,
- 15:54behält nur die Anomalien bei
- 15:55und schreibt diese dann zur schnellen Abfrage in Cosmos DB.
- 15:58Das ist eine vollständige Pipeline in drei Diensten.
- 16:00Das Schöne an Funktionen ist,
- 16:01dass sie automatisch mit ihrer Partitionsanzahl skaliert werden.
- 16:04Wenn Sie über acht Partitionen verfügen,
- 16:05können Funktionen bis zu acht Instanzen hochfahren,
- 16:07wobei jeder Messwert
- 16:08und schreibt diese dann aufgrund der Abfrage in Cosmos DB.