Wenn Sie Pub/Sub-Messwerte als Signal zum automatischen Skalieren Ihrer Pipeline verwenden, haben wir hier einige Empfehlungen für Sie.
Mehrere Signale für das Autoscaling Ihrer Pipeline verwenden
Verwenden Sie nicht nur Pub/Sub-Messwerte, um Ihre Pipeline automatisch zu skalieren. Dies kann zu Szenarien führen, in denen es einen Single Point of Failure für Ihre Autoscaling-Entscheidungen gibt. Verwenden Sie stattdessen eine Kombination von Signalen, um die automatische Skalierung auszulösen. 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:
Die Compute Engine (GCE) unterstützt das Autoscaling anhand von Signalen wie der CPU-Auslastung und Monitoring-Messwerten. 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 zum Skalieren anhand der CPU-Auslastung finden Sie unter Anhand 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.
Umgang mit Messwertlücken
Anhand der fehlenden Messwerte lässt sich nicht schließen, dass keine Nachrichten zu verarbeiten sind. Wenn Sie beispielsweise als Reaktion auf fehlende Messwerte die Verarbeitungsaufgaben auf null herunterskalieren, werden Nachrichten, die sich bereits im Backlog befinden oder in dieser Zeit veröffentlicht werden, möglicherweise nicht verarbeitet. Dies erhöht die End-to-End-Latenz. Legen Sie eine Mindestaufgabenanzahl fest, die größer als null ist, um die Latenz zu minimieren. So sind Sie immer bereit, veröffentlichte Nachrichten zu verarbeiten, auch wenn aktuelle Pub/Sub-Messwerte eine leere Warteschlange anzeigen.
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 einen Sicherheitsmechanismus, 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.