Provedor de estado de sessão ASP.NET para NCache em Fazendas da Web

Para implantações locais, ASP.NET Session State fornece três opções de armazenamento internas (InProc, StateServer e SqlServer) e uma quarta opção "Personalizada". As duas primeiras opções internas (InProc e StateServer) têm problemas de escalabilidade, enquanto a opção SqlServer tem problemas de desempenho e escalabilidade.

Uma estratégia muito melhor é usar a opção "Personalizada" e o plug-in NCache como seu provedor de estado de sessão ASP.NET. NCache é um cache distribuído de código aberto extremamente rápido e escalável para .NET. Ele lida com cargas de transações extremas, permitindo que você adicione mais servidores de cache em tempo de execução e dimensione linearmente. NCache também fornece replicação de cache inteligente para que você não perca nenhum estado de sessão ASP.NET se um servidor web ou um servidor de cache ficar inativo.

doc: Provedor de estado de sessão ASP.NET para NCache

Provedor de estado de sessão ASP.NET para NCache

Benefícios da NCache Provedor de estado de sessão ASP.NET

Em primeiro lugar, não há necessidade de programação para usar NCache como seu provedor de estado de sessão ASP.NET. Você simplesmente modifica seu web.config e especifica NCache como seu Provedor de Estado de Sessão (SSP). Veja detalhes em Configurando o provedor de estado de sessão ASP.NET para NCache. A seguir estão alguns dos benefícios de usar NCache como seu provedor de estado de sessão ASP.NET:

  1. Alta disponibilidade: NCache tem um arquitetura de clustering peer-to-peer com autorrecuperação sem um único ponto de falha. Isso fornece 100% de tempo de atividade para seu armazenamento ASP.NET Session State, que é muito importante para aplicativos essenciais aos negócios.

  2. Escalabilidade linear: NCache permite que você dimensione seu cluster de cache linearmente adicionando mais servidores de cache ao cluster. Isso aumenta sua capacidade de transação e também sua capacidade de armazenamento. Isso significa que o armazenamento do estado de sessão do ASP.NET nunca se torna um gargalo para seu aplicativo sob cargas de transações pesadas.

  3. Replicação de sessão inteligente: NCache fornece topologias de cache ricas (Cache Espelhado, Cache Replicado e Cache de Réplica de Partição) com replicação de sessão inteligente que não compromete o desempenho e a escalabilidade. Isso garante que você não perca nenhum dado da sessão quando um servidor web ou um servidor de cache ficar inativo.

  4. Serialização compacta rápida: NCache fornece uma serialização compacta rápida que é mais rápido do que a serialização .NET normal e não requer programação para usar. Basta registrar suas classes .NET com ele e NCache gera o código-fonte de serialização, compila-o na memória em tempo de execução quando seu aplicativo se conecta ao cache e, em seguida, usa esse código compilado para todas as serializações subsequentes.

Suporte para várias regiões (data centers)

NCache fornece duas maneiras de gerenciar o estado de sessão do ASP.NET para aplicativos executados em várias regiões (data centers) e ainda manter a consistência da sessão entre eles. Eles estão:

  1. Replicação WAN do estado da sessão ASP.NET: NCache fornece uma Topologia da ponte para permitir que você replique todo o armazenamento de estado de sessão ASP.NET (o cache distribuído) para outra região (datacenter) na WAN. Isso garante que suas sessões sempre existam em várias regiões (data centers). Você pode usar isso nos modos ativo-passivo (para recuperação de desastres) ou ativo-ativo. No ativo-ativo, você pode até mesmo balancear a carga do tráfego entre várias regiões (data centers). Tudo isso é feito por meio de alterações de configuração.

  2. Estado da sessão ASP.NET multirregional: Se você não deseja replicar o estado de sessão ASP.NET na WAN devido ao custo de consumo de largura de banda, você pode optar por usar este Estado de sessão ASP.NET multi-site característica de NCache. Nesse caso, o Estado de Sessão ASP.NET não é replicado entre sites e, em vez disso, é mantido no local de sua criação. Mas, se você mover qualquer tráfego de uma região (datacenter) para outra, o estado de sessão ASP.NET se moverá com ele.

    Isso permite que você tenha duas ou mais regiões ativas (datacenters), mantenha a maior parte do tráfego em seu próprio datacenter, mas ocasionalmente transborde para outro datacenter, se desejar. Além disso, você também pode desativar um datacenter sem causar interrupções para os usuários, pois suas sessões poderão ser acessadas por outros datacenters.

Recursos avançados em NCache Provedor de estado de sessão ASP.NET

NCache O provedor de estado de sessão ASP.NET implementa todos os recursos padrão do provedor de estado de sessão ASP.NET. Além disso, ele fornece vários recursos avançados para permitir que você lide com situações complexas em seus aplicativos.

  1. Compartilhe sessões entre domínios de aplicativos: Se você estiver usando vários domínios de aplicativo e para cada domínio de aplicativo você tiver um arquivo web.config separado, especifique o mesmo valor em sessionAppId=>"NCacheApp1" e isso resulta no compartilhamento da sessão nesses domínios de aplicativo. Se você usar um ID de aplicativo de sessão diferente, as sessões não serão compartilhadas entre os domínios do aplicativo.

  2. Erro ao registrar: Você pode habilitar o log de erros em um arquivo de log em seu servidor web (em INSTALL_DIR\NCache\log-files\SessionStoreProvider) especificando enableLogs = "true" . Você também pode habilitar o log de erros no log de eventos do Windows especificando writeExceptionsToEventLog = "true" .

  3. Bloqueio de sessão padrão: O comportamento padrão de bloqueio de sessão do ASP.NET é que, se uma sessão estiver bloqueada, outra solicitação para ela aguarda 90 segundos (configurável) e, no final, desbloqueia a sessão à força. Você pode especificar esta opção da seguinte forma:

     enableSessionLocking = "true" sessionLockingRetry = "-1" emptySessionWhenLocked = "false" 

  4. Bloqueio de sessão aprimorado: Se você tiver um aplicativo ASP.NET de alto tráfego em que os robôs podem extrair dados e usar o mesmo ID de sessão para centenas ou milhares de solicitações simultaneamente, você não pode pagar a opção de bloqueio de sessão padrão porque esperar 90 segundos pode comprometer todos os seus soquetes disponíveis. Em vez disso, você deseja retornar a solicitação rapidamente para indicar uma falha. Você pode especificar isso da seguinte forma:

     enableSessionLocking = "true" sessionLockingRetry = "5" emptySessionWhenLocked = "false" 

    Isso faz 5 tentativas em intervalos de meio segundo e, em seguida, retorna uma sessão vazia para indicar uma falha. Até mesmo lançar uma exceção aqui é caro. É por isso que uma sessão vazia é implementada. Esse comportamento foi implementado originalmente em uma solicitação de um site de uma companhia aérea de alto tráfego.

O que fazer a seguir?

NCache Adicionar ao carrinho
Baixar NCache
Solicitar demonstração personalizada

Inscreva-se no boletim informativo mensal por e-mail para obter as atualizações mais recentes.

© Copyright Alachisoft 2002 - . Todos os direitos reservados. NCache é uma marca registrada da Diyatech Corp.