Datenstreams betreiben und überwachen
GoldenGate-seitige Überwachung
-
Vergewissern Sie sich, dass die Data Stream-Ressource im Verteilungsservice vorhanden und verfügbar ist.
-
Überwachen Sie gesendete Datensätze und Byte, Vorgangsanzahl, DDL-Anzahl, Tabellenaktivität und Netzwerkstatistiken, in denen die UI- oder Servicemetriken angegeben werden.
-
Prüfen Sie die Verteilungsservicelogs auf Authentifizierungs-, Trail-Lookup-, Positions-Lookup-, Schemagenerierungs-, Größenabschneiden- und WebSocket-Trennfehler.
-
Überwachen Sie die Quellextrakt- und -trailgenerierung unabhängig. Eine fehlerfreie WebSocket kann keine Daten bereitstellen, die den Trail nicht erreichen.
Consumer-Metriken
| Kennzahl | Warum es wichtig ist |
|---|---|
| Verbindungsstatus und Anzahl Neuverbindungen | Ermittelt die Instabilität von Netzwerk, Authentifizierung, Proxy und Service. |
Zuletzt empfangen und zuletzt zugesagt pos |
Trennt die Dateneingabe von einer erfolgreich dauerhaften Verarbeitung. Protokollieren Sie einen Hash- oder geschützten Wert, wenn Positionen als vertraulich betrachtet werden. |
| Datensätze und Byte nach Typ/Tabelle | Identifiziert unerwartetes Volume, Filterfehler und Skew. |
| Verarbeitungslatenz | Zeit zwischen op_ts und dauerhaftem Downstream Commit. Berücksichtigen Sie Unterschiede bei der Quellen- und Verbraucheruhr. |
| Tiefe der internen Warteschlange und Alter der ältesten Warteschlange | Ermittelt den Gegendruck vor der Gedächtniserschöpfung. |
| Änderungen an Schema-/Metadatenversion | Ermittelt DDL- und Vertragsänderungen. |
| Anzahl Duplikate und Idempotenzkonflikte | Validiert das Zustellungs- und Checkpointverhalten. |
| Fehler bei Dead-Letter und Validierung | Zeigt Datensätze an, für die eine manuelle oder automatisierte Korrektur erforderlich ist. |
Puffer- und Kapazitätsplanung
bufferSize steuert den Byteschwellenwert, bei dem der Service seine speicherresidente Nachrichtenqueue an den Client wegschreibt. Ein größerer Wert kann die Batch-Effizienz verbessern, aber die Speicherauslastung pro Nachricht und die Latenz erhöhen. Ein kleinerer Wert kann die Latenz verringern, aber den Nachrichten-Overhead erhöhen. Es handelt sich nicht um eine dauerhafte Queue, ersetzt nicht die Trailaufbewahrung und beseitigt nicht die Notwendigkeit für Verbraucher-Backpressure-Steuerelemente.
-
Testen Sie mit repräsentativen Transaktionsgrößen, LOBs, DDL, Tabellenanzahl und Spitzendurchsatz.
-
Legen Sie die maximale Nachrichtengröße von WebSocket und Proxy über dem größten erwarteten Batch fest.
-
Verwenden Sie gebundene Queues, und führen Sie einen schnellen Fehler aus, anstatt unbegrenztes Speicherwachstum zuzulassen.
-
Separate Netzwerk-Empfangs-, Validierungs-, Downstream-I/O- und Checkpoint-Commits, damit jede Phase gemessen werden kann.
Strategie erneut verbinden
-
Melden Sie sich erneut vom letzten dauerhaften Checkpoint an, nicht vom letzten nur empfangenen Datensatz.
-
Verwenden Sie ein exponentielles Backoff mit maximaler Verzögerung und Jitter.
-
Setzen Sie die Verzögerung nach einer stabilen Verbindung zurück.
-
Klassifizieren Sie nicht wiederholbare Fehler, wie ungültige Zugangsdaten oder eine nicht verfügbare gespeicherte Position, und führen Sie einen Operator-Alert aus, anstatt den Vorgang für immer zu wiederholen.
-
Behalten Sie während der Wiederherstellung denselben Ausgabevertrag bei. Wenn sich die Streamkonfiguration geändert hat, schließen Sie die Kompatibilitätsvalidierung ab, bevor Sie fortfahren.
Mehrere Consumer
Data Streams stellt keine Consumer-Gruppe im Kafka-Stil oder keinen vom Server verwalteten Offset pro Consumer bereit. Jeder unabhängige Client muss seinen eigenen Checkpoint verwalten und Datensätze gemäß seiner Verbindung und dem Wert begin empfangen. Geben Sie keinen Checkpoint für gleichzeitig aktive Consumer frei, es sei denn, ein externer Koordinator garantiert einzelne Eigentümerschaft und geordnete Checkpoint-Updates.
Änderungsmanagement
-
Versionieren Sie die Datenstreamkonfiguration, und generieren Sie AsyncAPI YAML mit dem Consumer-Release.
-
Testen Sie Erstellung, Verbindung, Verarbeitung im stabilen Zustand, Trennen, Neustart, Fehler bei beibehaltener Position, DDL, große Datensätze und Zugangsdatenrotation.
-
Stellen Sie kompatiblen Consumer-Code bereit, bevor Sie neue Payload-Felder oder Schemaänderungen aktivieren.
-
Behalten Sie einen Rollback-Plan bei, der den letzten zweifelsfrei funktionierenden Checkpoint und die letzte Konfiguration behält.