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, Servidor Oracle WebLogic e Servidor de aplicativos IBM WebSphere.

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.

Arquitetura de cache de sessão web Java usando NCache Provedor de sessão em um cluster Web com balanceamento de carga para escalabilidade linear.
Gerenciamento escalável de sessões Java com NCache Cluster dinâmico.

Contêineres de servlet Java suportados e suas especificações

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. NCache É compatível com as especificações do Java Servlet 3.1+.

  1. ApacheTomcat: É uma implementação de código aberto de Java Servlet e Java Server pages e também fornece ambiente de servidor web HTTP "puro Java" no qual código Java pode ser executado. Ele fornece manipulação de sessão por meio de sticky sessions.
  2. Vôo selvagem: WildFly é um servidor de aplicativos Java EE leve, de alto desempenho e de código aberto desenvolvido pela Red Hat.
  3. Servidor Oracle WebLogic: O Oracle WebLogic é um servidor de aplicativos Java EE usado para desenvolver, implantar e executar aplicativos corporativos.
  4. Servidor de aplicativos IBM WebSphere: O IBM WebSphere Server é um servidor de aplicativos Java EE que fornece um ambiente de tempo de execução para criar, implementar e gerenciar aplicativos corporativos.

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 diretório do sistema. 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. NCache Utiliza a API padrão de filtro de servlet do Java, permitindo interceptar chamadas de gerenciamento de sessão e redirecioná-las para o cache distribuído sem exigir modificações na lógica do seu aplicativo.

<?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>

Por que usar NCache Para gerenciamento de sessão Java?

NCache fornece ao usuário uma opção "sem alteração de código" para que aplicativos Java persistam 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 Proporciona o tempo de resposta mais rápido, resultando em melhor desempenho. Ao utilizar NCache A serialização compacta permite que objetos Java sejam serializados significativamente mais rápido do que com a serialização padrão do Java, reduzindo drasticamente a sobrecarga da CPU e a latência da rede.
  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 ao usuário replicar sessões de servlet Java em vários servidores de acordo com a topologia especificada. Topologias como a Réplica Particionada garantem que os dados da sessão sejam espelhados entre os nós, proporcionando 100% de disponibilidade mesmo se um servidor de cache individual falhar, sem comprometer a confiabilidade e o desempenho. É por isso que o usuário não perderá nenhum dado de 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.

Como gerenciar sessões Java em várias regiões?

Gerenciar sessões em data centers distribuídos geralmente apresenta desafios de latência e sincronização. NCache resolve isso fornecendo opções flexíveis de persistência em vários sites. Para gerenciar sessões de servlet Java em vários farms de servidores web, que estão localizados geograficamente em locais distintos, 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?

Perguntas Frequentes (FAQ)

NCache Melhora o desempenho ao mover os dados da sessão de bancos de dados lentos e com uso intensivo de disco ou de replicação de servlets com alta sobrecarga para um cache distribuído na memória. NCache A serialização compacta permite que os objetos Java sejam serializados mais rapidamente do que com a serialização padrão do Java, reduzindo significativamente os ciclos de CPU e a latência de rede em ambientes de alto tráfego.

Sim. Travas deslizantes portáteis NCache Oferece uma integração "sem necessidade de alteração de código" aproveitando a API padrão de filtro de servlet do Java. Basta modificar o arquivo de configuração session.xml para apontar para o seu servidor. NCache cluster, e o filtro intercepta automaticamente as chamadas de gerenciamento de sessão, redirecionando-as para o armazenamento distribuído.

Para evitar perda de dados ou "leituras sujas" durante solicitações paralelas (como chamadas AJAX), NCache Implementa um mecanismo robusto de bloqueio de sessão. Isso garante que, enquanto uma solicitação estiver modificando um objeto de sessão, outras solicitações sejam enfileiradas ou tratadas com base na sua configuração de bloqueio específica, mantendo uma consistência de dados rigorosa.

Sim. Travas deslizantes portáteis NCache Suporta farms web geograficamente distribuídas por meio da Topologia Bridge para Replicação WAN. Isso garante alta disponibilidade replicando dados de sessão entre data centers. Como alternativa, você pode usar sessões Java Multi-site para manter o tráfego local a uma região, mantendo a capacidade de failover para um site diferente caso um data center fique indisponível.

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