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.


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.


Der erste Link ist tot
Marquis Blount

1
@MarquisBlount hier ist der Google Cache für die Seite
Danielhklein
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.