Gestire e monitorare i flussi di dati
monitoraggio lato GoldenGate
-
Verificare che la risorsa Data Stream sia presente e disponibile nel servizio di distribuzione.
-
Monitorare i record e i byte inviati, i conteggi delle operazioni, i conteggi DDL, l'attività della tabella e le statistiche di rete se esposti dalle metriche dell'interfaccia utente o del servizio.
-
Esaminare i log del servizio di distribuzione per individuare errori di autenticazione, ricerca trail, ricerca posizione, generazione schema, troncamento dimensioni e disconnessione WebSocket.
-
Monitorare l'estrazione di origine e la generazione del trail in modo indipendente. Un file WebSocket in buono stato non può fornire dati che non stanno raggiungendo il trail.
Metriche consumer
| Metrica | Perché è importante |
|---|---|
| Conteggio stati di connessione e riconnessione | Rileva l'instabilità di rete, autenticazione, proxy e servizio. |
Ultima ricezione e ultimo commit pos |
Separa l'arrivo dei dati dall'elaborazione duratura riuscita. Registra un hash o un valore protetto se le posizioni sono considerate sensibili. |
| Record e byte per tipo/tabella | Identifica il volume imprevisto, gli errori di filtro e lo skew. |
| Latenza di elaborazione | Tempo compreso tra op_ts e commit a valle permanente. Conto delle differenze di clock di origine e consumatore. |
| Profondità coda interna ed età in coda meno recente | Rileva la backpressure prima dell'esaurimento della memoria. |
| Modifiche alla versione di schema/metadati | Rileva DDL e modifiche del contratto. |
| Conteggi conflitti duplicati e idempotenza | Convalida il funzionamento di consegna e checkpoint. |
| Errori di lettera morta e convalida | Mostra i record che richiedono una correzione manuale o automatica. |
Pianificazione di buffer e capacità
bufferSize controlla la soglia di byte alla quale il servizio cancella la coda di messaggi in memoria sul client. Un valore maggiore può migliorare l'efficienza del batch, ma può aumentare l'uso e la latenza della memoria per messaggio. Un valore inferiore può ridurre la latenza, ma aumentare il sovraccarico dei messaggi. Non si tratta di una coda durevole, non sostituisce la conservazione dei trail e non rimuove la necessità di controlli di backpressure dei consumatori.
-
Test con dimensioni di transazione rappresentative, LOB, DDL, conteggio tabelle e throughput di picco.
-
Impostare le dimensioni massime dei messaggi WebSocket e proxy al di sopra del batch previsto più grande.
-
Utilizza code delimitate e fallisci velocemente invece di consentire la crescita della memoria illimitata.
-
Ricezione di rete separata, convalida, I/O a valle e commit di checkpoint in modo da poter misurare ogni fase.
Riconnetti strategia
-
Eseguire la riconnessione dall'ultimo checkpoint durevole, non dall'ultimo record appena ricevuto.
-
Usa backoff esponenziale con un ritardo massimo e jitter.
-
Reimpostare il ritardo dopo una connessione stabile.
-
Classificare gli errori non ripetibili come credenziali non valide o una posizione salvata non disponibile e generare un avviso dell'operatore invece di riprovare per sempre.
-
Conserva lo stesso contratto di output durante il recupero. Se la configurazione del flusso è stata modificata, completare la convalida della compatibilità prima di riprendere.
Più consumatori
Data Streams non fornisce un gruppo di consumer in stile Kafka o un offset per consumatore gestito dal server. Ogni cliente indipendente deve mantenere il proprio checkpoint e riceve i record in base alla sua connessione e al valore begin. Non condividere un checkpoint tra i consumatori attivi contemporaneamente a meno che un coordinatore esterno non garantisca la proprietà unica e gli aggiornamenti dei checkpoint ordinati.
Gestione modifiche
-
Eseguire la versione della configurazione Data Stream e generare AsyncAPI YAML con la release consumer.
-
Test di creazione, connessione, elaborazione in stato stazionario, disconnessione, riavvio, errore di posizione conservata, DDL, record di grandi dimensioni e rotazione delle credenziali.
-
Distribuire il codice consumer compatibile prima di abilitare nuovi campi di payload o modifiche allo schema.
-
Conserva un piano di rollback che conserva l'ultimo checkpoint e configurazione validi noti.