Meine aktuelle extra kleine VM stößt an ihre Grenzen, also habe ich beschlossen, eine zweite extra kleine Instanz zu erstellen und die beiden zu einem Verfügbarkeitsset hinzuzufügen, damit mein Dienst immer verfügbar ist und durch den Lastenausgleich auch die Last ausgeglichen wird. Meine Frage ist, was mit den Daten passieren wird. Werden sie auf beiden gleich sein? Weil ich auf beiden die gleichen Daten verfügbar haben muss! Zum Beispiel:
Request1 -> vm1 -> fügt Daten hinzu Request2 -> vm2 -> möchte Daten lesen, die zuerst auf vm1 abgelegt wurden
Oder noch viel einfacher: Wenn ich ein WordPress-Blog betreibe und ein Blog hinzufüge, muss es auf beiden verfügbar sein!
Michi
Antwort1
Jede virtuelle Maschine wird von ihrer eigenen virtuellen Festplatte unterstützt, die sich in einem Seitenblob in Azure Storage befindet. Dies ist kein guter Ort, um Inhalte zu speichern, die über mehrere Instanzen hinweg gemeinsam genutzt werden müssen (und der In-Proc-Sitzungsstatus ist auch auf die laufende Instanz dieser virtuellen Maschine beschränkt). Sie müssen Ihren Sitzungsstatus und alle anderen persistenten Daten an einem gemeinsamen Ort speichern, auf den beide virtuellen Maschinen zugreifen können.nichtSpeichern Sie Inhalte direkt auf der Hauptfestplatte der VHD oder der temporären Festplatte.
Für den Sitzungsstatus können Sie ganz einfach die Windows Azure SQL-Datenbank (im Grunde SQL-as-a-Service) einrichten und diese als Ihren Sitzungsstatusanbieter verwenden. Oder Sie könnten Memcached ausführen, Table Storage verwenden oder etwas ganz anderes wählen – andere Ideen überlasse ich Ihrer Fantasie.
Dasselbe gilt für die Ausführung von WordPress – Inhalte müssen in einem gemeinsamen Datenspeicher liegen. Da WordPress MySQL verwendet, können Sie MySQL in einer unabhängigen Instanz einer virtuellen Maschine einrichten oder eine MySQL-Datenbank über den Azure Store abonnieren.
Eine weitere Möglichkeit besteht darin, Inhalte im Blob-Speicher zu speichern, der völlig unabhängig von den von Ihnen erstellten virtuellen Maschinen ist und sehr einfach zugänglich ist. Blob-Speicher bietet zusammen mit Tabellenspeicher eine hervorragende Sprach-SDK-Unterstützung, die auf der REST-API basiert (derzeit .net-, PHP-, Java-, Python-, Node- und Ruby-SDKs). Sie können das SDK Ihrer Wahl aus dem Azure-Repository herunterladen.herunterladenSeite. Sie können auch den Quellcode einsehen, in derGitHub-Repository.