2016-07-10 13 views
0

Ich habe 5 Server. An meinem ersten "primäre" ich in config:rethinkdb Cluster, was ist, wenn einige der Server ausgefallen sind?

join=ip2:port 
join=ip3:port 
join=ip4:port 
join=ip5:port 

Ich bin Verbindung über Proxy rethinkdb:

proxy --join ip1:port --join ip2:port 

Wenn ich aufhören rethinkdb auf IP1 alles stoppt. Ich weiß nicht, wie ich das lösen soll. Rethinkdb-Dokumente sind nicht vollständig. Muss ich diese Joins in jeder Konfiguration definieren?

UPDATE In der Tat, wenn ich jeden Server im Cluster stoppe meine App abstürzen! Ich bekomme im Webui etwas wie "Tabelle db.table ist für veraltete Lesevorgänge verfügbar, aber nicht für aktuelle Lese- oder Schreibvorgänge."

Außer Tabellenscherben sehe ich keinen Punkt.

Antwort

0

Ja, normalerweise möchten Sie, dass jeder Knoten die Adresse jedes anderen Knotens kennt, damit er sich verbinden kann, wenn eine Teilmenge der Knoten ausgefallen ist.

+0

jawohl ich bin mir da nicht sicher. Woher weißt du das? Ich habe meinen ip2 Server gestoppt und er sagt etwas wie "Tabelle ist nur für veraltete Lesevorgänge verfügbar" und natürlich funktioniert die App nicht! – pregmatch

+0

Es gibt zwei verschiedene Dinge: Erstens müssen Ihre Server sich gegenseitig erreichen können, und zweitens müssen Sie in der Lage sein, den Master für einen Shard zu erreichen, um Schreibvorgänge oder aktuelle Lesevorgänge auszuführen . Wenn Ihr Problem darin besteht, dass Ihre Server einander nicht erreichen können, können Sie das beheben, indem Sie jeder Konfiguration die richtigen Join-Zeilen hinzufügen. Wenn Ihr Problem darin besteht, dass der Master für den Shard nicht verfügbar ist, funktioniert das automatische Failover wahrscheinlich nicht. Sie können darüber unter https://rethinkdb.com/docs/failover/ lesen, aber das Wesentliche ist, dass Sie mindestens 3 Replikate benötigen. – mlucy