Ich habe ein Replikat-Set bestehend aus 5 Mitgliedern: primäre + Arbiter auf Server 1, sekundäre + Arbiter auf Server 2, versteckte sekundäre (Backup-Knoten) auf Server 3. Ich erwarte, dass diese Konfiguration funktioniert, wenn ein Server ausfällt oder die Verbindung vorübergehend unterbrochen wird.Verbindung zu MongoDB Replikat-Set dauert eine Minute + in PHP, wenn eine sekundäre unerreichbar ist
Allerdings, wenn Server 2 gegangen ist (die mit sekundären + Arbiter-Knoten), habe ich ein seltsames Problem angetroffen. Jede Verbindung mit dem Replikatsatz von PHP dauerte mehr als eine Minute. Ich habe versucht, Verbindungszeichenfolge zu ändern, um den heruntergefahrenen Server (sekundärer Knoten) auszuschließen, aber es hat nicht geholfen.
Zur gleichen Zeit funktionierte die Verbindung über Mongo-Konsole gut. Der primäre Knoten wurde als primärer Knoten beibehalten. Das PHP-Fehlerprotokoll enthielt keine Fehler.
Die einzige Sache, die geholfen hat, war das Entfernen der Knoten auf dem Server, der von der Replikatgruppe untergegangen ist.
Ich mache mir jedoch Sorgen über den Failover der Konfiguration. Wie ich jetzt weiß, wird die gesamte Konfiguration nicht mehr ordnungsgemäß funktionieren, wenn der Server mit sekundären + Arbiter-Knoten ausfällt. Gibt es eine Möglichkeit, es zu vermeiden? Ich brauche den PHP-Client, um eine Verbindung zum primären Server herstellen zu können, unabhängig davon, ob der sekundäre + Arbiter-Server verfügbar ist oder nicht. Wie erreiche ich das?
Version der mongo PHP-Client-Bibliothek ist 1.6.x, Version des Servers ist 3.0.
Die Konfiguration enthält 5 abstimmenden Mitglieder. Server 1 und 2 haben jeweils 2 stimmberechtigte Mitglieder, Server 3 hat 1 stimmberechtigtes Mitglied. Wenn Server 2 ausfällt, haben wir immer noch die Mehrheit der Stimmen online. – mephisto123