1: Introductie tot de sessie
Wat is Session? Simpel gezegd is het een getal dat de client door de server krijgt. Wanneer een webserver draait, kunnen er meerdere gebruikers zijn die websites bezoeken die op die server draaien. Wanneer elke gebruiker voor het eerst verbinding maakt met de webserver, stelt hij een sessie op met de server, en de server wijst automatisch een SessionID toe om de unieke identiteit van de gebruiker te identificeren. Deze SessionID is een string van 24 tekens die willekeurig door de webserver wordt gegenereerd, en we zullen deze in het onderstaande experiment in actie zien.
2: Gecentraliseerde modus en configuratie van de sessie in de Asp.Net
(1): InProc wordt Session opgeslagen in het proces, wat ook de opslagmethode in de ASP.Net is en tevens de standaardwaarde is (2): StateServer, Session wordt opgeslagen in een aparte toestandservice, d.w.z. ASP.NET State Service (3): SQLServer, Session wordt opgeslagen in de SQL Server-database (4): Custom, een aangepaste opslagmethode, die kan worden opgeslagen in Oracle, SQLServer, MongoDb en Redis Dit artikel gaat voornamelijk over het opslaan en delen van Sessions in Redis
3: Configuratie van de sessieprovider gebaseerd op Redis
(1) De volgende wijzigingen aanbrengen in de HomeControllers van sites A en B, zoals weergegeven in de onderstaande figuur, en de functies van het aanmaken en verkrijgen van sessies toevoegen
De bijbehorende View-weergaven
(2) RedisProvider-configuratie: Microsoft.Web.RedisSessionStateProvider Installeer Microsoft.Web.RedisSessionStateProvider met Nuget zoals weergegeven in de volgende afbeelding:
Pas het profiel aan:
4. Load balancing sessietest
(1) Voer in de browser in:http://192.168.152.128/ Maak een sessie aan
(2) Voer in de browser in:http://192.168.152.128/home/getsessionvalue, Open twee tabbladen, zorg dat je ze in hetzelfde browservenster opent, anders zal de SessionID zeker anders zijn
Uit de afbeelding zie je dat site A de sessies deelt die door site B zijn aangemaakt. Je kunt ook de sessie zien die je zojuist hebt aangemaakt vanuit Redis, zoals te zien is in de onderstaande figuur
|