Use o código e tenha 10% de desconto!

Apache Cassandra Escalabilidade horizontal para aplicações Java

Otávio Santana

*Você terá acesso às futuras atualizações do livro.

A nova era das aplicações vem com novos bancos de dados

O mundo dos negócios cresce de maneira exponencial com várias oportunidades e empresas concorrendo entre si. A disputa entre clientes é algo que não se define mais pela localização da empresa, mas pela usualidade e, sobretudo, o tempo de resposta. Existem diversos estudos que explicam que melhorias de milissegundos são o suficiente para adquirir novos clientes, fidelizar os já existentes, além de desbancar a concorrência.

Nessa batalha pelos milissegundos, nasceram diversos paradigmas e frameworks, porém, toda essa melhoria seria inútil se a persistência da informação continuasse lenta. Com a necessidade de uma melhor performance, surgiram os bancos de dados NoSQL para facilitar o desempenho e a distribuição da informação.

Junto a esse conceito, nasceu o Apache Cassandra, o banco de dados NoSQL elástico, tolerante a falhas e com um alto grau de performance, tendo cases de sucessos nas maiores empresas do mundo, como o Netflix, GitHub, eBay, dentre outros. O Cassandra é um banco de dados não relacional originado pelo Facebook, e hoje é um banco de dados NoSQL do tipo família de coluna open source dentro da Apache Foundation.

De uma maneira geral, o objetivo do livro é abordar o Cassandra, seus conceitos e sua aplicabilidade com o Java. Para cobrir todos esses conceitos, o livro foi desenhado no total de dez capítulos.

O escopo do inicial é a introdução dos bancos de dados não relacionais. Serão abordados os desafios dos bancos de dados distribuídos, suas limitações com o teorema do CAP, o que é NoSQL e seus tipos, além da comparação entre o NoSQL e o já consolidado banco de dados relacional.

Em seguida, abordaremos os conceitos do Cassandra, como a sua hierarquia, leitura e escrita, seu funcionamento no nó e sua orquestração dentro de um Cluster. Veremos sua instalação manual, Docker e Cluster com docker-compose.

A realização de consultas é muito comum dentro de um banco de dados. No mundo relacional o desenvolvedor está familiarizado com o SQL. O Cassandra tem a sua própria linguagem de consulta: o Cassandra Query Language ou CQL. Você vai aprender como criar keyspace, família de coluna, realizar as operações CRUD (criação, recuperação, atualização e deleção dos dados) que os desenvolvedores tanto amam.

Existem diversas similaridades entre a linguagem da comunicação do Cassandra, o CQL, e o SQL. Vale lembrar que conceitualmente o banco relacional e o Cassandra estão em diferentes espectros, levando em consideração o teorema do CAP. Realizar a modelagem do Cassandra da mesma maneira que se realiza dentro do banco relacional terá um alto impacto de performance.

Após todos os conceitos de comunicação do Cassandra e dicas de modelagem, o próximo passo é a integração com o Java. Dentro disso, o primeiro ponto a ser exibido é o Driver do DataStax, cuja API é similar ao driver JDBC. Um ponto importante é que uma vez o desenvolvedor tenha familiaridade com o CQL toda a comunicação acontece de maneira bastante fluida.

No dia a dia, os negócios se comportam com orientação a objetos, de modo que também é importante que nos debrucemos sobre os impactos dos Mappers, frameworks cujo objetivo é realizar o mapeamento entre o Cassandra e os objetos de uma entidade de negócio, seja de maneira positiva, com a produtividade, ou de maneira negativa, com possíveis problemas de performance. Dentre esses Mappers utilizaremos o DataStax Mapper, Spring Data Cassandra, Hibernate OGM Cassandra e o Eclipse JNoSQL. E para facilitar a comparação entre eles será utilizado o mesmo exemplo que se baseia em uma solução para uma biblioteca.

Público-alvo/pré-requisitos

Desenvolvedores Java, entusiastas e familiarizados com a tecnologia NoSQL e que desejam aprender ou aprofundar os conhecimentos no Cassandra.

Sumário

  • 1 Conceitos básicos de NoSQL
    • 1.1 Chave-valor
    • 1.2 Orientado a documentos
    • 1.3 Grafos
    • 1.4 Teorema do CAP
  • 2 Cassandra
    • 2.1 Definição
    • 2.2 Hierarquia
    • 2.3 Realizando uma operação dentro do Cassandra
    • 2.4 Consistência versus disponibilidade
    • 2.5 Dentro de um nó Cassandra
  • 3 Instalação do Cassandra
    • 3.1 Realizando download do Cassandra
    • 3.2 Configurações dentro do arquivo yaml
    • 3.3 Simplificando a instalação com contêineres
    • 3.4 Criando o primeiro cluster com Docker Compose
  • 4 Conhecendo o CQL
    • 4.1 Keyspace
    • 4.2 Familia de colunas
    • 4.3 Tipos no Cassandra
    • 4.4 Manipulando informação
    • 4.5 Segurança
  • 5 Modelando sua aplicação com Cassandra
    • 5.1 Dicas de modelagem
  • 6 Realizando integração com Java
    • 6.1 Requisitos mínimos para as demonstrações
    • 6.2 Esqueleto dos projetos exemplos
    • 6.3 Utilizando o driver do Cassandra
    • 6.4 Utilizando o Mapper
  • 7 Criando um aplicativo com Hibernate
    • 7.1 O que é Hibernate OGM?
  • 8 Criando um aplicativo com Java e Spring
    • 8.1 Facilitando o acesso aos dados com Spring Data
  • 9 Criando um aplicativo com Java EE, ops, Jakarta EE
    • 9.1 O que é Jakarta EE?
    • 9.2 Utilizando Jakarta NoSQL, a primeira especificação do Jakarta EE
  • 10 Considerações finais
    • 10.1 Motor de busca
    • 10.2 Validando os dados com Bean Validation
    • 10.3 Realizando testes de integração com o Cassandra
    • 10.4 Experimentando outros sabores de Cassandra

Dados do produto

Número de páginas:
150
ISBN:
978-65-86110-47-0
Data publicação:
10/2020

Compartilhe!

Compartilhe no Facebook Compartilhe no Twitter

*Você terá acesso às futuras atualizações do livro.