Wie kann ich Instanzen basierend auf der Verzögerung des Kafka-Themas automatisch skalieren?

7

Ich habe Autoscaling-Gruppen, die ich basierend auf der Verzögerung, die in bestimmten Kafka-Themen angezeigt wird, dynamisch vergrößern / verkleinern möchte. Es gibt eine 1: 1-Beziehung zwischen Thema und Autoscaling-Gruppe, die skaliert werden muss. Ich bin mir ziemlich sicher, dass ich keine CloudWatch-Metriken verwenden kann, um dies zu erreichen.

Gibt es eine Möglichkeit, dies mit Jenkins zu erreichen, ohne Rennbedingungen und andere Probleme zu schaffen?

Hinweis: Meine Anwendung ist nicht durch CPU, Festplatten-E / A oder andere von CloudWatch bereitgestellte Metriken eingeschränkt. Die Einschränkung ist die Fähigkeit der Anwendung, eingehende Kafka-Themen zu verarbeiten.

Danielhklein
quelle
Vielleicht können Sie etwas mehr erklären, warum Cloudwatch Ihrer Meinung nach kein guter Ansatz ist?
Tensibai
Meine Anwendung ist nicht durch CPU, Festplatten-E / A oder andere von CloudWatch bereitgestellte Metriken eingeschränkt. Die Einschränkung ist die Fähigkeit der Anwendung, eingehende Kafka-Themen zu verarbeiten.
Danielhklein

Antworten:

7

CloudWatch ist in dieser Hinsicht absolut der richtige Weg. Sie können Kafka Metrics in CloudWatch entweder über Folgendes anzeigen:

  1. Ein separater Prozess , der die Metriken in CloudWatch überträgt.
  2. Lassen Sie Ihre Produzenten, Verbraucher oder Stream-Prozessoren die benötigten Metriken in CloudWatch übertragen.

Der Prozess, dem Sie folgen, wird grob unterteilt in:

  1. Veröffentlichen Sie benutzerdefinierte Metriken .
  2. Erstellen Sie eine AutoScaling-Startkonfiguration .
  3. Erstellen Sie eine AutoScaling-Gruppe und -Richtlinien basierend auf Ihrer benutzerdefinierten Metrik.

Abhängig von Ihrem Kostenmodell würde ich auch überlegen, wie Sie Spot-Instanzen verwenden können, um die Kosten niedrig zu halten. Wenn Sie also nicht kritische, aber hohe Rechenauslastungen haben, verwenden Sie Spot-Instanzen als Teil Ihrer Autoscaling-Konfiguration.

Richard Slater
quelle
Der erste Link ist tot
Marquis Blount
1
@MarquisBlount hier ist der Google Cache für die Seite
Danielhklein