Java Web Sessions com NCache

Sessões são uma maneira de armazenar dados para usuários distintos. Objetos de sessão Java, feitos no servidor de aplicação, chamados contêineres de servlet que hospedam a aplicação web, dentro de um Java Servlet ou de uma Java Server Page (JSP) incluem Apache Tomcat, WildFly, Lógica da Web e Esfera da Web.

Por exemplo, o servidor web Tomcat fornece manipulação de sessão por meio de replicação de sessão em clusters de servidor web Tomcat. A replicação de sessão pode causar sobrecarga de dados e memória, tornando-se lenta e sem desempenho e escalabilidade.

Portanto, NCache fornece uma opção melhor onde os usuários podem armazenar suas sessões Java dentro de seu aplicativo sem nenhum problema em um web farm com balanceamento de carga.

Sessões da Web Java

Diferentes contêineres de servlet associados a NCache

NCache fornece a seus usuários as opções de usar diferentes tipos de contêineres de servlet que podem hospedar seus aplicativos da Web com facilidade, conforme discutido abaixo.

  1. ApacheTomcat: É uma implementação de código aberto de páginas Java Servlet e Java Server e também fornece um ambiente de servidor web HTTP “puro Java” no qual o código Java pode ser executado. Ele fornece manipulação de sessão por meio de sessões fixas.
  2. Vôo selvagem: É um servidor de aplicativos escrito em Java que implementa e gerencia aplicativos Java em uma variedade de ambientes.
  3. Lógica da Web: É um aplicativo compatível com Java Enterprise Edition (EE) que implanta, executa e distribui os aplicativos baseados em Java.
  4. Esfera da Web: É o servidor de aplicativos mais avançado para construir e executar aplicativos Java.

Configurando o Módulo de Sessão Java para NCache

Para configurar sessões Java, é necessário modificar o arquivo “session.xml” localizado em %NC_Home%/config no NCache pasta. Segue o código que faz isso para NCache. Para obter mais detalhes sobre como adicionar bibliotecas, definir filtros e implantar o aplicativo usando contêineres de servlet, consulte Adicionando Bibliotecas e Definindo Filtro para obter ajuda.

<?xml version="1.0" encoding="UTF-8"?>  
   <!--for single regional session provider-->
<servlet-session-config>
    <cache id="myPartitionedCache"/>
    <log log-props="log4j.properties"/>
    <locking enable-session-locking="true" retries-count="2" retry-interval="500ms" lock-timeout="36000ms" empty-session-when-locked="false"/>
</servlet-session-config>

Benefícios do Módulo de Sessão Java para NCache

NCache fornece ao usuário uma opção “sem alteração de código” para aplicativos Java persistirem sessões em NCache cache distribuído. Se seu aplicativo estiver sendo executado em um farm de servidores Web com balanceamento de carga e você precisar de um armazenamento confiável e escalável para a persistência de sua sessão, NCache oferece as seguintes vantagens:

  1. Melhor performance: NCache fornece tempo de resposta mais rápido, portanto, melhor desempenho.
  2. Alta disponibilidade: NCache fornece clusters de cache distribuídos fortes sem ponto único de falha que são altamente disponível o que significa que você pode adicionar ou remover o cache sem interromper seu aplicativo.
  3. Confiabilidade Extrema: NCache permite que o usuário replique sessões de servlet Java em vários servidores de acordo com sua topologia especificada sem comprometer a confiabilidade e o desempenho. É por isso que o usuário não perderá nenhum dado da sessão, mesmo que o servidor de cache fique inativo por qualquer motivo.
  4. Replicação de sessão brilhante por meio de topologias: NCache fornece várias topologias de cache através das quais você persiste suas sessões de acordo com suas necessidades. Por exemplo, pode-se usar topologia replicada particionada para maior confiabilidade e escalabilidade.
  5. Escalabilidade linear: NCache, uma distribuição na memória linearmente escalável grid, tem a capacidade de lidar com altas cargas e é por isso que os aplicativos de sessão podem alcançar o máximo de escalabilidade possível.

Suporte para várias regiões em Java Web Sessions

Para gerenciar sessões de servlet Java em vários web farms, localizados geograficamente separadamente, NCache fornece persistência de sessão em vários sites das seguintes maneiras:

  1. Replicação de WAN de Java Web Sessions: NCache permite que um usuário replique todas as sessões Java na WAN para outra região (data center), o que é feito através do Topologia da ponte característica de NCache. Isso garante que suas sessões Java nunca sejam perdidas, mesmo que uma região fique inativa.
  2. Sessões da Web Java de vários sites: Se um usuário não quiser replicar as sessões na WAN principalmente devido ao alto consumo de largura de banda e possíveis problemas de desempenho, ele poderá optar por usar o conceito de Suporte a sessão Java multi-site, uma característica de NCache. Nesta abordagem, cada região pode configurar seus caches separados e cada cache terá seu próprio conjunto de clientes (servlet Java). A sessão não será replicada entre sites, mas será mantida em seu local de criação.

Com isso podemos ter duas ou mais regiões separadas ativas e um usuário pode manter a maior parte do tráfego em sua própria região. Da mesma forma, se o usuário desativar uma região por algum motivo, isso não causará nenhum problema, pois essa região poderá ser acessada por outras regiões.

Recursos avançados em NCache Sessões da Web Java

Java Web Sessions para NCache implementa todos os recursos padrão fornecidos pelo Java Web Sessions. Além disso, ele implementa alguns recursos avançados para lidar com outras situações importantes.

  1. Expiração da Sessão: NCache trata a expiração da sessão e remove as sessões do cache por um tempo limite de sessão especificado. Da mesma forma, podemos especificar o valor do tempo limite da sessão por meio de contêineres de servlet e NCache usará internamente esse intervalo para expirar sessões do cache.
  2. Lidando com várias solicitações de sessão e integridade de dados: Para evitar a situação em que solicitações paralelas podem fazer com que as sessões sejam alteradas, NCache fornece um mecanismo de bloqueio para que duas solicitações paralelas não possam alterar a mesma sessão. Você pode especificá-lo no arquivo “session.xml” da seguinte maneira:
    <servlet-session-config>
        <locking enable-session-locking="true" retries-count="2" retry-interval="500ms" lock-timeout="36000ms" empty-session-when-locked="false"/>
    </servlet-session-config>
  3. Manipulando a serialização de dados da sessão: Depois de colocar seus objetos Java em sessões de servlet Java e armazená-los fora do processo, toda a sessão de servlet Java deve ser serializada. NCache fornece serialização mais rápida em comparação com a serialização Java regular, chamada Serialização compacta. Com isso a velocidade da sua aplicação Java aumenta muito.

O que fazer a seguir?

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