2017-03-20 3 views
0

Ich schreibe eine geclusterte Vert.x-Anwendung, die in ihrem Einstiegspunkt einen Pool von Worker-Verticles verwendet. Diese Verticles durchlaufen endlos die Ausführung von Aufgaben aus einer zentralen persistenten Warteschlange. Dieser Typ von Verticles ist natürlich ein Worker-Verticle, der in seinem eigenen dedizierten Worker-Pool läuft.Skalierung von Worker-Pools in vert.x

Ich möchte die Anzahl dieser Verticles nach der Anzahl der ausstehenden Aufgaben in der Warteschlange hoch und runter skalieren, aber da ein Worker-Pool eine konstante Größe hat, habe ich keine Ahnung, wie man ein solches Verhalten erreicht.

Gibt es Best Practices, in denen ich den Clustered Worker-Pool vergrößern und verkleinern kann?

Außerdem - Ich möchte mehr VMs zu meinem Cluster hinzufügen, wie die Gesamtlast auf dem System wächst. Gibt es in vert.x eine integrierte Cluster-Autoskalierung?

Dank

Antwort

1

Ich glaube nicht, es möglich ist, die Arbeiter Poolgröße über einen VertX api, aber der Arbeiter-Pool ist nur ein Standard FixedThreadPool Testamentsvollstrecker Dienst wieder Maßstab. Sie können diesen Executor-Service durch eine andere Instanz ersetzen. Sehen Sie sich die verschiedenen Executor-Dienste von Java an und prüfen Sie, ob sie Ihren Anforderungen entsprechen.

Siehe diesen Beitrag zum Ändern der ExecutorService: multithreading within vertx