1: Introdução à Sessão
O que é Session? Simplificando, é um número fornecido ao cliente pelo servidor. Quando um servidor web está rodando, pode haver vários usuários navegando por sites que estão rodando nesse servidor. Quando cada usuário se conecta pela primeira vez ao servidor web, ele estabelece uma sessão com o servidor, e o servidor automaticamente atribui a ele um SessionID para identificar a identidade única do usuário. Este SessionID é uma string de 24 caracteres gerada aleatoriamente pelo servidor web, e veremos isso em ação no experimento abaixo.
2: Modo centralizado e configuração da Sessão no Asp.Net
(1): InProc, Session é armazenado no processo, que também é o método de armazenamento na ASP.Net e é o valor padrão (2): StateServer, a Session é armazenada em um serviço de estado separado, ou seja, ASP.NET Serviço de Estado (3): SQLServer, Session é armazenada no banco de dados SQL Server (4): Custom, um método de salvamento personalizado, que pode ser salvo no Oracle, SQLServer, MongoDB e Redis Este artigo fala principalmente sobre o armazenamento e compartilhamento de Sessões em Redis
3: Configuração do Provedor de Sessão baseada no Redis
(1) Fazer as seguintes alterações nos HomeControladores dos Sites A e B, conforme mostrado na figura abaixo, e adicionar as funções de criação e obtenção de sessões
As visões correspondentes de View
(2) Configuração do RedisProvider: Microsoft.Web.RedisSessionStateProvider Instale o Microsoft.Web.RedisSessionStateProvider com Nuget conforme mostrado na imagem a seguir:
Modifique o perfil:
4. Teste de sessão de balanceamento de carga
(1) Insira no navegador:http://192.168.152.128/ Crie uma Sessão
(2) Insira no navegador:http://192.168.152.128/home/getsessionvalue, Abra duas abas, certifique-se de abri-las na mesma janela do navegador, caso contrário o Session ID será definitivamente diferente
Pela figura, você pode ver que o site A compartilha as sessões criadas pelo site B. Você também pode ver a sessão que acabou de criar a partir do redis, como mostrado na figura abaixo
|