Wenn Sie Pub/Sub-Messwerte als Signal zum automatischen Skalieren Ihrer Pipeline verwenden, haben wir hier einige Empfehlungen für Sie.
Mehr als ein Signal für das Autoscaling der Pipeline verwenden
Verwenden Sie zum Autoscaling der Pipeline nicht nur Pub/Sub-Messwerte. Es kann es zu Szenarien kommen, in denen es einen Single Point of Failure für Ihre Autoscaling-Entscheidungen. Verwenden Sie stattdessen eine Kombination von Signalen, Autoscaling. Ein Beispiel für ein zusätzliches Signal ist die CPU-Auslastung des Clients. Dieses Signal kann angeben, ob die Clientaufgaben Arbeit bearbeiten und ob durch eine Skalierung die Clientaufgaben mehr Arbeit bewältigen können. Hier sind einige Beispiele für Signale aus anderen Cloud-Produkten, die Sie für Ihre Pipeline verwenden können:
Compute Engine (GCE) unterstützt Autoscaling auf der Grundlage von Signalen wie CPU-Auslastung und Monitoring-Messwerte. Die Compute Engine unterstützt außerdem mehrere Messwerte und Signale für eine bessere Zuverlässigkeit.
Weitere Informationen zur Skalierung mit Monitoring-Messwerten finden Sie unter Basierend auf Monitoring-Messwerten skalieren. Weitere Informationen zur Skalierung mit CPU-Auslastung finden Sie unter Basierend auf der CPU-Auslastung skalieren.
Das horizontale Pod-Autoscaling (HPA) der Google Kubernetes Engine (GKE) unterstützt die Autoscaling-Funktion basierend auf der Ressourcennutzung wie CPU- und Arbeitsspeichernutzung, benutzerdefinierten Kubernetes-Messwerten und externen Messwerten wie Monitoring-Messwerten für Pub/Sub. Außerdem werden mehrere Signale unterstützt.
Weitere Informationen finden Sie unter Horizontales Pod-Autoscaling.
Mit Messwertlücken umgehen
Nicht davon ausgehen, dass das Fehlen von Messwerten bedeutet, dass keine Nachrichten . Wenn Sie beispielsweise als Reaktion auf fehlende Messwerte herunterskalieren Verarbeitung von Aufgaben auf null setzen, Nachrichten, die sich bereits im Backlog befinden oder veröffentlicht werden während dieser Zeit möglicherweise nicht verbraucht werden. Dies erhöht die End-to-End-Latenz. Um die Latenz zu minimieren, legen Sie eine minimale Aufgabenanzahl größer als null fest, damit Sie immer auf veröffentlichte Nachrichten vorbereitet, auch wenn aktuelle Pub/Sub-Messwerte auf eine leere Warteschlange hinweisen.
Sowohl GCE-Autoscaler als auch GKE-HPAs sind so konzipiert, dass die aktuelle Anzahl der Replikate beibehalten wird, wenn Messwerte nicht verfügbar sind. Dies bietet ein Sicherheitsnetz, falls keine Messwerte verfügbar sind.
Sie können auch Pub/Sub-Ablaufsteuerungsmechanismen implementieren, um zu verhindern, dass Aufgaben überlastet werden, wenn sie aufgrund fehlender Messwerte versehentlich herunterskaliert werden.