8

Starten, um tatsächlichen Code zu meiner Website zu entwickeln und wollte wissen, wie ich die Website entwickeln oder entwerfen, die Last-Balance-freundlich ist. Ich habe einen Beitrag zu Stackoverflow bezüglich der Skalierbarkeit gelesen und die ausgewählte Antwort lautete: "Stellen Sie sicher, dass Sie beim Entwickeln Ihrer Anwendung den Lastenausgleich berücksichtigen." Wie gehe ich vor?Wie entwickelt man eine Web-Anwendung, die Load-Balance-freundlich ist

Antwort

3

Ihre Entscheidung wird in die Umwelt fallen. Wenn es sich um ein Produkt zum Verkauf handelt, haben Sie keine Kontrolle über die Implementierung des Lastenausgleichs. Dies bedeutet, dass "sticky sessions", bei denen ein Benutzer für die Dauer einer Sitzung an denselben Server gebunden ist, nicht garantiert werden können. Sticky-Sitzungen ermöglichen nahezu allen Anwendungen eine Lastverteilung, sind jedoch nicht so effizient.

Wenn Sie eine Implementierung mit Sticky-Sitzungen nicht garantieren können, vermeiden Sie die Verwendung des Sitzungsstatus insgesamt oder suchen Sie in einer freigegebenen Sitzung.

+0

+1 für den Hinweis auf sticky Sitzung – Aliostad

1

Nun, eine Antwort besteht darin, die Abhängigkeit von Sitzungsvariablen zu reduzieren. Es ist möglich, Sitzungsvariablen zwischen Servern über den Sitzungsserver zu teilen, aber das bedeutet, dass alle Ihre Server einen einzigen Fehlerpunkt auf dem Sitzungsserver haben und dann die Leistung verringern.

Grundsätzlich versuchen Sie einfach, jede Seite als Stand-alone und Staatenlos wie möglich zu machen, und Sie werden gut sein.

2

1) verwenden Sie keine statische Felder zum Speichern von Daten, Statistiken, ...

2) Sitzung mit Sorgfalt verwenden - Sie können immer noch im Prozess mit klebrigen ssessions verwenden, aber ich mag es nicht.

3) Verlassen Sie sich nicht auf die IP des Servers

+0

+1 für den IP-Tipp. Es ist leicht, das zu vergessen. –

0

Eine Sache, zu berücksichtigen, ist die Verwendung von Sitzungsdaten Zustand zu halten.

Da Ihre Anwendung nachfolgende Anfragen von anderen Servern in der Kontostandslinie bearbeiten können, können Sie den InProc-Modus und den StateServer-Modus nicht verwenden.

+0

Tatsächlich können Sie beide verwenden, es ist nur das Session-Szenario in einer Load-Balanced-Umgebung. – Aliostad

1

Dies ist für die meisten von Ihnen offensichtlich, aber tatsächlich war ein Problem in unserer Umgebung, als wir einen Load Balancer/mehrere Webserver einsetzten: Verlassen Sie sich nicht auf die IP-Adressen Ihres Webservers.

Wir hatten eine Produktionsumgebung, die einen Switch und eine Reihe von internen IP-Adressen verwendete, einschließlich der des Webservers (unsere Produkte laufen normalerweise in einer geschlossenen Umgebung, nicht im offenen Internet). Wenn Sie mehrere Webserver haben, wird das ein Problem.

1

Stellen Sie sicher, dass Sie über eine Entwicklungs-/QA-Umgebung verfügen, in der Sie Ihre Software in einer Umgebung mit Lastenausgleich testen können und die Probleme in Ihrem Code während der Entwicklung sehen und nicht bis zum Bereitstellungstag warten müssen.

Verwandte Themen