Suporte a sessão Java multi-site
NCache fornece persistência de sessão multissite que pode ser usada para gerenciar sessões Java de servlet em vários web farms (que são separados geograficamente) se você não quiser replicar sessões na WAN devido aos custos de consumo de largura de banda.
Para entender a persistência de sessões multissite, considere aplicativos de servlet Java executados em farms de servidores Web com balanceamento de carga que abrangem diversas regiões. Um Load Balancer pode redirecionar clientes para diferentes regiões dependendo do tráfego do usuário. Para armazenar sessões Java em cache, é necessário um cache clusterizado para que as sessões sejam replicadas entre regiões. Esta abordagem pode não ser adequada devido à replicação de sessões na WAN. Além disso, pode levantar problemas de desempenho porque os nós de cache estão separados geograficamente.
NCache Sessões Java multisite
Para resolver esses problemas, NCache apresenta o conceito de sessões multi-site. Armazenar em cache as sessões em um aplicativo de web farms separados geograficamente requer a configuração de caches separados em cada região. Suponhamos que você tenha quatro regiões, cada uma configurada com caches separados como CR-1, CR-2, CR-3 e CR-4. Cada cache clusterizado possui seu próprio conjunto de clientes (servlet Java) como um web farm. Cada cliente configurará o NCache filtro de servlet de sessão. Você precisa especificar o cache primário (cache de região atual) e um conjunto de caches secundários (lista de outros caches de região) junto com os prefixos definidos pelo usuário em cada nome de cache.
Esta configuração é carregada na inicialização do NCache filtro do provedor de sessão. Desta forma, cada cliente terá conhecimento de caches em outras regiões. O ID da sessão criado pelo NCache O provedor de sessão é conforme o prefixo do cache primário de cada região, ou seja, o prefixo do cache primário é anexado aos IDs de sessão dessa região. Esses clientes adicionarão, atualizarão e obterão sessões principalmente de seu próprio cache clusterizado, ou seja, o cache primário. No entanto, às vezes, uma solicitação do cliente pode ser enviada ao web farm de outra localização geográfica para balanceamento de carga. Agora, NCache identificará a solicitação de seu prefixo de cache primário e permitirá que as solicitações do usuário acessem a mesma sessão do cache anterior.
Para entender isso, considere uma rota de solicitação para um web farm do cache da região CR-2. Nesta situação, NCache extrai o prefixo do ID da sessão que será CR-1 e pesquisará seu ID de cache em sua própria lista de caches secundários. Como todos os clientes de região terão um conjunto de todos os outros caches de região como caches secundários, NCache irá buscar esta sessão no cache CR-1. NCache atualizará o ID desta sessão anexando seu prefixo de cache primário atual, ou seja, CR-2, e atualizando-o no cache primário atual (CR-2) para atender solicitações futuras.
Suponhamos que um cliente faça uma solicitação que passe pelo Load Balancer. Suponha que a solicitação de sessão passe para o Web Server1 em um web farm com base na carga do sistema. Assim que a solicitação chegar, uma sessão será criada com o prefixo Web Server1 anexado ao ID da sessão e salva no cache primário deste web farm, neste caso, Cache Replicado1.
Quando o Load Balancer roteia o mesmo cliente para o Web Farm2, NCache analisa o prefixo da sessão. Com a ajuda deste prefixo, ele busca a sessão do Replicated Cache1 mesmo que pertença ao Web Farm1. Isso permite que você tenha dois ou mais data centers ativos e mantenha a maior parte do tráfego em seu próprio data center, mas ocasionalmente transbordando para outros data centers, se necessário. Você também pode desligar um dos data centers sem causar interrupções aos usuários, pois suas sessões estarão acessíveis por outros data centers. Ou podemos dizer que se um dos web farms cair por qualquer motivo, outros web farms começarão a acessar as sessões do usuário do cache daquela região e, eventualmente, todos os dados da sessão serão movidos para o cache da próxima região para evitar a perda da sessão. dados.
NCache fornece uma opção de alteração sem código para aplicativos da web baseados em Java para armazenar sessões em NCache implementando o módulo de sessão nc-sessionprovider.jar como um filtro de servlet JSP. Para usar o NCache Módulo de sessão Java, você deve estar executando um contêiner compatível com Servlet 2.3+ (servidor web). O usuário só precisa referenciar algumas bibliotecas e adicionar um filtro no web.xml do aplicativo para que todas as solicitações cheguem ao aplicativo através NCache. As seguintes plataformas J2EE/Jakarta são suportadas:
- Tomcat
- JBoss/WildFlyName
- Lógica da Web
- WebSphere
Para saber mais sobre como você pode configurar o Módulo de Sessão Multi-Site, consulte Provedor de estado de sessão multissite.
Veja também
Visão Geral Conceitual
Configurando aplicativos para usar o módulo de sessão Java
Registro de erros