2016-08-12 1 views
1

rethinkdb und nodejs + Express-App passen gut in Container für Cluster-Umgebung?rethinkdb nodejs Container in Cluster-Umgebung

Die Situation ist unter in einem Docker Behälter 1. Laufe rethinkdb und nodjs + express App in einem Container 2. Während des Boot-up von NodeJS App überprüft er, ob es eine bestimmte Datenbank und Tabelle vorhanden ist oder nicht. Wenn nicht, dann erstellen Sie Datenbank und Tabelle

In einem Docker-Container ausgeführt wird funktioniert gut. Aber das Problem ist, dass wir Clustering von rethinkdb tun müssen, sowie die spezifische Anzahl von Replikaten der Tabelle beibehalten müssen.

das Hinzufügen all dieser Clustering- und Replikagelogik in der Nodejs-App scheint keine gute Idee zu sein. Art von stecken wie kann ich fortfahren. Hilfe wird sehr geschätzt.

Antwort

0

Lauf rethinkdb und nodjs + express App in einem Container

Sie sollten in der Regel nicht tun. Setzen Sie rethinkdb in einen eigenen Container und legen Sie Ihre Anwendung in einen separaten Container.

Ich würde empfehlen, docker-compose zu verwenden und eine docker-compose.yml Datei für Ihren Service einzurichten. Stellen Sie sicher, dass die Eigenschaft depends_on in der Webanwendungsdeklaration verwendet wird, sodass docker den Container rethinkdb vor dem Anwendungscontainer startet.

Wenn Sie Ihre RethinkDB-Container mit der Hand hochziehen, sollten Sie vollständig eingestellt sein, aber wenn Sie Swarm oder einen anderen Scheduler verwenden, lesen Sie weiter.

Ein Problem, das RethinkDB derzeit mit automatisierten/geplanten/containerisierten Umgebungen hat, sind die Ephemere von Containern und die Möglichkeit, dass sie möglicherweise neu starten und mit einer anderen IP-Adresse zurückkommen. Dies erfordert einige zusätzliche Werkzeuge um RethinkDB herum, um die Konfigurationstabellen zu modifizieren.

Für ein wenig Lesen würde ich empfehlen, how this was achieved in Kubernetes auszuprobieren.

+0

wir versuchen, Micro-Service-Architektur zu folgen, so dass wir alles in einem Container für einen Service setzen. Wir sind eine neue Mikro-Service-Architektur-Umgebung, also nicht sicher, was die beste Praxis ist. –

+0

Ich bin sicher, das ist das Gegenteil von dem, was Sie wollen, lesen Sie diesen Artikel, der erklärt, warum: http://microservices.io/patterns/deployment/service-per-container.html – dalanmiller

+0

Dank dalanmiller, Es sagt auch separate Datenbank für jeden Service ist möglich. http://microservices.io/patterns/data/database-per-service.html Wir haben einen Container mit einer rethinkdb und einer Nodejs Express App. –

Verwandte Themen