Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Rails Octopus Gem – Verbindungsverhalten der Master-Slave-Replikation, wenn der Slave ausgefallen ist

Wie ich in diesem Blogbeitrag gelesen habe Ein ausgeschalteter oder nicht reagierender Slave kann Anwendungsfehler verursachen, da das Standardverhalten von Octopus darin besteht, alle Daten an den Master zu schreiben und alle Daten von den Slaves zu lesen (da an den Master geschriebene Daten dann an alle angeschlossenen Slaves repliziert werden). Wie im Octopus-Wiki, Abschnitt "Mehrere Sklaven" angegeben Das Lesen in einer Umgebung mit mehreren Slaves erfolgt per Round-Robin, sodass standardmäßig immer Daten von einem Slave abgerufen werden.

Ebenfalls aus dem oben genannten Blog entnommen:Als Fallback-Mechanismus sollten Sie Daten direkt vom Master lesen (mithilfe von .using(:master)). ), wenn keiner der Slave-Knoten verfügbar ist oder die Daten noch nicht vollständig auf die Slaves repliziert wurden. Es kann auch eine Option sein, Änderungen/Ergebnisse anwendungsspezifisch zwischenzuspeichern, um wiederholte Lesevorgänge von den Datenbankknoten zu verhindern.