2009-04-07 7 views
5

Guten Tag, alle.Bulletproof Sitzungen für IIS Web Farm

Wir machen gerade den Sprung von einem Webserver zu zwei und um ein nahtloses Failover für unsere Benutzer zu ermöglichen, müssen wir etwas über die Sitzung tun.

Gegenwärtig untersuchen wir drei verschiedene Methoden.

  1. Verwenden Sie eine State-Server
  2. Nutzen Sie SQL Server
  3. Chuck alles in verborgene Felder

Ich persönlich möchte Option Nummer eins an ihren Platz, wie wir gehen, um zu sehen habe keine dedizierte Datenbank für Option Nummer zwei und Option Nummer drei scheint wie ein unordentlicher Hack.

Das Problem, mit dem ich derzeit konfrontiert ist, ist, dass mein Manager nicht mit der Single Point of Failure von einem State Server (unser SQL-Server repliziert ist, so keine Probleme gibt) nicht zufrieden ist.

Gibt es etwas, was getan werden kann, um den Zustandsserver oder ähnliches zu replizieren?

Antwort

2

Nach einigen weiteren Untersuchungen haben wir uns für die Option StateServer entschieden. Wir sind noch dabei, zu sehen, wie wir den Single Point of Failure auf dem StateServer überwinden können, und wir haben zwei weitere Möglichkeiten der Untersuchung aufgezeigt.

Unsere erste Option ist die Verwendung eines Programms von Drittanbietern, um die Sitzungen zu behandeln. Derjenige, den wir gerade betrachten, heißt nCache: Ich denke, es gibt einen anderen namens ScaleOut, den wir uns auch ansehen können.

Option Nummer zwei ist Sitzungszustand partitionieren zu verwenden und wir sind zur Zeit in diese Option suchen auch: http://msdn.microsoft.com/en-gb/magazine/cc163730.aspx

1

Nach meinem Wissen gibt es keine Möglichkeit, Ihren StateServer-Dienst zu sichern oder zu replizieren. Ein weiteres Problem bei der Verwendung von StateServer in einer Webfarm ist, wenn Ihr Cluster es zulässt, dass derselbe Browser auf verschiedenen Anfragen andere Maschinen erreicht, die bei jeder Anfrage unterschiedliche Sitzungsdaten haben könnten! (Bearbeiten: Martin wies darauf hin, dass Sie dies beheben können, indem Sie eine einzelne StateServer-Instanz unter mehreren Webservern teilen). Für Ihre Zwecke wäre Option 2 oder 3 eher fehlertolerant, und ich werde eine andere Idee einbringen: Für kleine Datenstücke versuchen Sie, Cookies für den Sitzungsspeicher zu verwenden.

+0

ein einziger Staat Server bedeutet Having, dass alle Server in der Farm erreichen kann es so Option 1 wäre in Ordnung sein . Ich denke, Sie werden mit einem "In Process" -Staatsmanagement verwirrt. –

+0

Sie haben absolut recht, ich habe einen Blick darauf geworfen, dass ein einzelner StateServer-Dienst tatsächlich zwischen mehreren Webservern geteilt werden kann. Ich werde meine Antwort auf Genauigkeit korrigieren. Danke, dass du das unterstrichen hast! –

+0

Sie können Clientaffinität innerhalb des NLB verwenden, um zu vermeiden, zu einem anderen IIS zu wechseln. – MRFerocius

0

Stellen Sie außerdem sicher, dass Sie SQL Server nicht verwenden, um Sitzungsstatus zu speichern, der sowieso nur aus der Datenbank stammt. Wenn ja, können Sie die Datenbank auch jedes Mal aufrufen.

1

Ich denke, dass Sie zu einer anderen Architektur wechseln: mehr als ein Front-End-IIS.

Verwenden Sie NLB?

  • Wenn dies der Fall ist, verwenden Sie am besten einen Statusserver, der als Anwendungsserver im Konzept verwendet wird.
  • Hier in meiner Firma migrieren wir .NET-Anwendung auf zwei IIS mit Netzwerklastenausgleich, und die Anwendungen verwenden Sitzung in Proc Sitzung verwalten.

    Wir untersuchen, haben, dass es eine andere Alternative war:

    • mit Client-Affinität in der NLB-Konfiguration

      , so dass der Postback an den IIS zurück zu gehen, wo der Prozess erzeugt wurde, der Preis alles zu verlieren war NLB ...

    Nach Microsoft Advisory war die beste Option der Staat Server :)

    Hoffe, es hilft!

    Mit freundlichen Grüßen!

    3

    Es kann ein Schmerz sein, aber ich habe beschlossen, Sitzung zu deaktivieren und mit den Konsequenzen umzugehen. Bis jetzt ist nichts unüberwindliches entstanden.

    +0

    Ja, wenn Sie damit durchkommen, umgeht es all diese Diskussionen, die wir hier haben, und springt direkt zu einer robusteren und leistungsfähigeren Lösung. –

    Verwandte Themen