Demoscale zeigt horizontale Skalierung mit Docker Compose. Ein Dashboard nimmt Aufträge an, Redis dient als gemeinsame Queue und mehrere Worker verarbeiten die Aufträge parallel.
Der Dashboard-Container heißt demoscale. Die Worker werden beim Skalieren
automatisch benannt, zum Beispiel demoscale-worker-1 bis
demoscale-worker-4.
danbu/demoscaleFühren Sie die Befehle aus dem Demo-Verzeichnis aus. Setzen Sie in .env den
Docker-Hub-Namespace und den Image-Tag, der getestet werden soll:
REGISTRY_USER=danbu
IMAGE_REPOSITORY=demoscale
IMAGE_TAG=1.0.0
DASHBOARD_PORT=8080
JOB_COUNT=12
PROCESS_SECONDS=2
Laden Sie die Images und starten Sie zunächst einen Worker:
docker compose pull
docker compose up -d --no-build --scale worker=1
docker compose ps
Erwartet werden die Container demoscale, demoscale-producer-1,
demoscale-queue-1 und demoscale-worker-1. Redis und Producer sollten als
healthy angezeigt werden.
Öffnen Sie http://localhost:8080. Die Oberfläche enthält Schaltflächen für
5, 20 und 40 Testjobs. Der technische JSON-Endpunkt ist unter
http://localhost:8080/status erreichbar.

Der Screenshot zeigt vier aktive Worker, eine leere Queue und bereits verarbeitete Testjobs.
Jobs können direkt im Browser oder über die Kommandozeile erzeugt werden:
curl "http://localhost:8080/health"
curl "http://localhost:8080/enqueue?n=10"
curl "http://localhost:8080/status"
Die Antwort des Enqueue-Endpunkts sollte "enqueued": 10 enthalten.
Skalieren Sie den Worker-Service auf vier Container:
docker compose up -d --scale worker=4
docker compose ps
Erzeugen Sie erneut Jobs, zum Beispiel:
curl "http://localhost:8080/enqueue?n=20"
Nach ungefähr 12 Sekunden bei PROCESS_SECONDS=2 prüfen Sie den Status:
curl "http://localhost:8080/status"
docker compose logs --tail=50 worker
Ein erfolgreicher Test zeigt:
queue_length: 0, sobald alle Jobs verarbeitet wurden;workers;processed;docker compose down
Das Named Volume bleibt dabei erhalten. Für einen vollständigen Neustart mit gelöschten Redis-Queue-Daten verwenden Sie:
docker compose down -v
queue auf Redis zu.container_name für Worker würde die horizontale Skalierung
verhindern; deshalb ist nur der Dashboard-Container exakt demoscale.Content type
Image
Digest
sha256:493245811…
Size
44 MB
Last updated
about 2 months ago
docker pull danbu/demoscale:demoscale-dashboard-1.2.10