Best Practices für die Verwendung von Pub/Sub-Messwerten als Skalierungssignal

Wenn Sie Pub/Sub-Messwerte als Signal für das Autoscaling Ihrer Pipeline verwenden, finden Sie hier einige Empfehlungen.

Verwenden Sie mehr als ein Signal, um Ihre Pipeline automatisch zu skalieren

Verwenden Sie für das Autoscaling Ihrer Pipeline nicht nur Pub/Sub-Messwerte. Dies kann zu Szenarien führen, in denen Sie einen Single Point of Failure für Ihre Autoscaling-Entscheidungen haben. Verwenden Sie stattdessen eine Kombination von Signalen, um das Autoscaling auszulösen. Ein Beispiel für ein zusätzliches Signal ist der CPU-Auslastungsgrad des Clients. Dieses Signal kann angeben, ob die Clientaufgaben Arbeit verarbeiten und ob das Skalieren den Clientaufgaben mehr Arbeit überlassen kann. Hier einige Beispiele für Signale aus anderen Cloud-Produkten, die Sie für Ihre Pipeline verwenden können:

  • Compute Engine (GCE) unterstützt Autoscaling anhand von Signalen wie der CPU-Auslastung und Monitoring-Messwerten. 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 Anhand von Monitoring-Messwerten skalieren. Weitere Informationen zur Skalierung mit CPU-Auslastung finden Sie unter Anhand der CPU-Auslastung skalieren.

  • Horizontales Pod-Autoscaling (HPA) von Google Kubernetes Engine unterstützt Autoscaling auf der Grundlage 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

Gehen Sie nicht davon aus, dass das Fehlen von Messwerten bedeutet, dass keine Nachrichten zu verarbeiten sind. Wenn Sie beispielsweise als Reaktion auf fehlende Messwerte Verarbeitungsaufgaben auf null herunterskalieren, werden Nachrichten, die sich bereits im Rückstand befinden oder während dieser Zeit veröffentlicht werden, nicht verbraucht. Dadurch erhöht sich die End-to-End-Latenz. Legen Sie eine Mindestanzahl von Aufgaben größer als null fest, um die Latenz zu minimieren. So sind Sie immer darauf vorbereitet, veröffentlichte Nachrichten zu verarbeiten, auch wenn aktuelle Pub/Sub-Messwerte auf eine leere Warteschlange hinweisen.

Sowohl GCE-Autoscaling als auch GKE HPAs sind darauf ausgelegt, die aktuelle Anzahl der Replikate beizubehalten, wenn keine Messwerte verfügbar sind. Dies ist ein Sicherheitsnetz, wenn 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 unbeabsichtigt herunterskaliert werden.