Neste post, exploramos 5 razões para usar o Java Data Grid para armazenar em cache objetos Java na memória em seus aplicativos. Existem também muitos outros recursos da grade de dados do Java, além do armazenamento de dados, que podem revolucionar suas arquiteturas Java. Mas vamos tratar basicamente o datagrid para te ajudar a entender melhor essa linguagem de programação.

Memória mais rápida com o Java Data Grid

O Java Data Grid armazena objetos Java na memória. O acesso à memória é rápido com baixa latência. Portanto, se o acesso ao armazenamento de dados, disco ou banco de dados, for o principal gargalo no seu aplicativo, o uso de uma grade de dados como cache de memória na frente do armazenamento proporcionará um aumento no desempenho.

Escalone o aplicativo de estado compartilhado nas Java Virtual Machines

Se você precisar compartilhar o estado entre as JVMs para expandir seu aplicativo, o uso de um Java Data Grid em vez de um banco de dados aumentará sua escalabilidade. Uma arquitetura típica de estado compartilhado é mostrada abaixo, a camada do servidor de aplicativos armazena objetos Java compartilhados na grade de dados e esses objetos estão disponíveis para todos os nós do servidor de aplicativos em sua arquitetura.

A separação da camada da grade de dados da camada do servidor de aplicativos possui várias vantagens;

  • Os aplicativos podem ser reimplantados e reiniciados sem perder o estado compartilhado
  • JVMs de Data Grid e JVMs de aplicativo podem ser ajustadas separadamente
  • O estado pode ser compartilhado entre vários aplicativos diferentes.
  • Cada camada pode ser dimensionada horizontalmente separadamente, dependendo da carga de trabalho

Casos de uso típicos para estado compartilhado incluem; Armazenamento em conformidade com PCI dos códigos de segurança da placa; Estado no jogo em jogos online; dados da sessão na web; preços e catálogos no comércio eletrônico. Qualquer coisa que precise de acesso de baixa latência pode ser armazenada na grade de dados compartilhada.

Datagrid no Java

Com o datagrid do Java, a gestão de dados fica mais eficiente e rápida. (Foto: Oracle)

Alta disponibilidade para dados na memória Java

Bem como acesso de baixa latência e expansão do estado compartilhado. O Java Data Grids também fornece alta disponibilidade para seus dados na memória. Ao armazenar objetos Java em uma grade de dados, um objeto primário é armazenado em uma das JVMs do Data Grid e as cópias secundárias de backup do objeto são armazenadas em um nó JVM do Data Grid, garantindo que, se você perder um nó, não perca quaisquer dados.

Os clientes da grade de dados não precisam saber onde os dados devem acessá-los, para que a alta disponibilidade seja transparente para o seu aplicativo.

Dimensionar volumes de dados na memória

Objetos Java, em grades de dados, não são totalmente replicados em todas as JVMs do Data Grid, mas são armazenados como um objeto primário e um objeto secundário. Isso significa que quanto mais nós da JVM do Data Grid adicionarmos, mais heap de JVM teremos para armazenar objetos Java na memória (e lembre-se de que a memória é rápida).

Por exemplo, se construirmos um Data Grid com 20 JVMs, cada um com heap livre de 4 Gb (depois da sobrecarga da JVM), poderíamos teoricamente armazenar 80 Gb (4 vezes 20) de objetos Java compartilhados. Se assumirmos que temos 1 duplicado para alta disponibilidade, isso reduzirá nosso armazenamento pela metade, para que possamos armazenar 40 GB (0,5 vezes 4 vezes 20) de objetos Java na memória.

Integração nativa com JPA

O Java Data Grids possui integração nativa com estruturas JPA como TopLink e Hibernate, nas quais o Data Grid pode atuar como um cache de segundo nível entre o JPA e o banco de dados. Isso pode aumentar bastante o desempenho do aplicativo orientado a banco de dados se a latência associada ao acesso ao banco de dados for um gargalo de desempenho importante.

Já usaram o Data Grid do Java? Como foi a implementação? O que acharam dos resultados?

Deixe um comentário

  • (não será divulgado)