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
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.
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.
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
+1 für den IP-Tipp. Es ist leicht, das zu vergessen. –
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.
Tatsächlich können Sie beide verwenden, es ist nur das Session-Szenario in einer Load-Balanced-Umgebung. – Aliostad
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.
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.
- 1. Wie entwickelt man eine Webanwendung, die mit mehreren Datenbankverwaltungssystemen kompatibel ist?
- 2. Wie man Edelsteine entwickelt?
- 3. Wie entwickelt man eine BlockChain Client App?
- 4. Wie hostet man eine Rails-Webanwendung?
- 5. Java - Wie man eine Methode für die Suche entwickelt?
- 6. Wie entwickelt man GWT-Widget?
- 7. Wie entwickelt man Firefox Addon?
- 8. Wie überprüft man die HTML-Version, die eine Webanwendung verwendet?
- 9. Wie entwickelt man Linux Bildschirmschoner
- 10. Wie entwickelt man benutzerdefinierte Funktionen auf Ejabberd?
- 11. Wie entwickelt man eine mandantenfähige Anwendung mit Node.js (express.js)?
- 12. Wie entwickelt man eine Android App mit .Net Core 1.0?
- 13. Wie entwickelt man eine Hash-Funktion für Verkehrslizenznummern?
- 14. Wie entwickelt man die Statusleiste App in OS X Yosemite?
- 15. Übung 310. "Wie man Programme entwickelt"
- 16. Wie entwickelt man Firefox Addon mit angularjs
- 17. Wie man die Verzeichnisstruktur entwickelt, um EJB-Anwendungen zu entwickeln
- 18. Wie man große TYPO3 Projekte managt & entwickelt?
- 19. Wie entwickelt man aus der Ferne Software?
- 20. Wie man Werkzeugleiste mit XUL entwickelt
- 21. Wie entwickelt man WebRTC-Anwendungen für Anfänger?
- 22. Wie entwickelt man ein Python-Paket?
- 23. Wie entwickelt man mit MaterialiseCSS reagieren?
- 24. Wie entwickelt man leicht Android UI?
- 25. Wie entwickelt man die webbasierte Anwendung, die auf dem Handy in asp.net (vs2008) angezeigt werden kann
- 26. Wie man Shopify Themen lokal entwickelt?
- 27. Wie entwickelt man die Anwendung für 320x480 und 480x854?
- 28. Wie entwickelt man die Vorteile von 64-Bit-Systemen?
- 29. Wie entwickelt man iOS-Apps unter Linux?
- 30. Wie entwickelt man Internet Explorer Add-on
+1 für den Hinweis auf sticky Sitzung – Aliostad