Ich habe oft gehört, dass die Bereitstellung einer traditionellen monolithischen Rails-App (dh keine interne Web-API, keine Nachrichtenwarteschlange, kein Redis/memcached-Server) zu mehreren Servern eine Reihe von Fehlern erzeugen kann sehr schwer zu debuggen, aber ich habe eine harte Zeit, mit einigen konkreten Beispielen trotz ein paar Stunden googelnProbleme mit der Bereitstellung von Rails-Servern auf mehrere Hosts
einige offensichtliche Probleme kommen, die ich denken kann, sind:
Beobachter - wird wahrscheinlich nicht richtig funktionieren da die Beobachtung nur auf einem Server und nicht auf allen Servern erfolgt (vorausgesetzt, es gibt keine Nachrichtenwarteschlange)
Sitzungen - müssten diese wahrscheinlich in der Datenbank speichern, die ihren eigenen Host benötigen würde
Caches - alle Kehrmaschinen würden Probleme haben, die Ungültigkeiten zwischen Servern verbreiten.
Möchte jemand anderes beitragen? Ich würde wirklich alle Artikel schätzen, auf die andere vielleicht gestoßen sind oder nur allgemeine Weisheit :)
Ja ich glaube total Rails kann kein Problem heraufskalieren, ich arbeite gerade mit einer alten Rails 2.3 App und versuche andere Leute davon zu überzeugen, kleine Schritte zur Skalierung zu machen :) – Kabal458
Beobachter machen Sinn - das Problem wird aufkommen Wenn Sie erwarten, dass auf jedem Server eine Beobachtung auftritt, ist das Caching ein gutes Beispiel dafür, aber das ist ein anderes Problem. Sitzung ich nicht vollständig folgen. Ich nehme an, Sie sagen, dass alle Sitzungsdaten vollständig im Cookie gespeichert sind - was ein guter Grund ist, sich selbst an den DB Store zu wenden. Ich denke, es würde brechen, wenn Sie etwas wie FileStore verwenden. – Kabal458
Wenn Sie den Cookie-Speicher verwenden, besteht keine Verbindung zwischen Server und Browser. Wenn Ihre Daten klein genug sind, warum verwenden Sie sie dann nicht? –