Entschuldigen Sie zunächst bitte, wenn dies kurz und bündig ist, da ich dies gerade von einem Telefon aus tippe.
Insgesamt versuche ich, Einzelheiten zum Einrichten mehrerer dedizierter Maschinen zum Hosten einer webbasierten Anwendung herauszufinden. Derzeit besteht hierfür kein direkter Bedarf, aber der Bedarf wird in Kürze erwartet, und ich möchte bei der Ersteinrichtung sicherstellen, dass die zukünftige Erweiterbarkeit eine halbwegs reibungslose Transaktion ist und kein riesiges Durcheinander darstellt.
Meine größte Sorge ist die Datenbank. Wir verwenden MySQL und ich habe es bisher nur in einer Einzelmaschinenumgebung als kompletten Lampstack im Einsatz gesehen. Aber ich frage mich, wie ich es so handhaben könnte, dass es auf mehreren Maschinen läuft, wenn es wächst. Nicht nur physisch auf Speicherebene, sondern auch hinsichtlich der Zugänglichkeit zur App. Mein erster Gedanke sind 2+ Maschinen, bei denen die Datenbanken nur die Struktur, aber nicht die Daten spiegeln. Ich sehe dabei jedoch Probleme in Bezug auf die Datenverfügbarkeit, da Daten auf Maschine 1 möglicherweise von der App benötigt werden, während Daten von Maschinen 2+ ebenfalls benötigt werden. Da die Daten jedoch dynamischer Natur sind, müsste ich jede Datenbank abfragen, bis die benötigten Übereinstimmungen gefunden werden, was für die Verarbeitung übertrieben erscheint. Ist es also möglich, dass die Maschinen auf die nächste übergreifen und einen riesigen Datensatz zwischen ihnen bilden?
Insgesamt geht es, wie gesagt, um Speicherbeschränkungen und auch um Engpassprobleme, da ich diese gerne auf eine Weise bewältigen möchte, bei der ich die Lasten ausgleichen kann.
Ich weiß nicht wirklich, wo ich sonst nach Informationen suchen soll, meine Suche hat nichts Relevantes ergeben und das liegt wahrscheinlich daran, dass ich einfach nicht nach dem richtigen Material gesucht habe. Daher wäre ich für jeden Ratschlag hier als Ausgangspunkt/Endpunkt sehr dankbar.
Antwort1
Sie können ein HAProxy-Gateway verwenden, das den gesamten Datenverkehr akzeptiert. Auf diese Weise können Sie mehrere physische oder virtuelle Server hosten. Grundsätzlich wird jede Anfrage über die HAProxy-Gateway-Maschine geleitet und an einen der X Server in Ihrem Hochverfügbarkeitscluster gesendet. Jeder Ihrer Server verfügt über die WWW-Daten und Sie können einen separaten Datenbankserver haben. Der MySQL-Datenbankserver kann in einem Cluster mit verwalteten Servern repliziert oder konfiguriert werden.