Como configurar o Cassandra Cluster no Docker Desktop usando Compose
- Rodrigo Saito
- há 3 dias
- 3 min de leitura
Atualizado: há 1 dia
Fala pessoal, Tudo bem?
Quer fazer a configuração do Cassandra usando o Docker Compose? Pois bem, vamos criar um cluster com 3 nós do Cassandra, para que voce possa testar a criação de bancos de dados, inserção de dados balanceados, TTLs, etc.
Para esse laboratório, será necessário estar com o Docker Desktop atualizado.
O Docker Compose é uma ferramenta que facilita a definição e gestão de aplicações multi-container no Docker. Ele utiliza um arquivo YAML para descrever os serviços (contêineres) da aplicação, suas dependências e configuração, permitindo que você os crie e inicie com um único comando.
O Docker compose pode ser encontrado já na instalação do Docker Desktop (no caso padrão, voce terá a ultima versão do compose).
Para verificar se o compose está instalado corretamente, dentro do Docker Destop, no terminal, digite:
docker compose version

Após ter aparecido divesos comandos de help, voce terá certeza de que o compose está instalado corretamente.
Caso voce ainda não tenha a imagem do Cassandra, baixe com o seguinte comando:
docker pull cassandra:latest

Depois da imagem baixada, é possivel verificar a vulnerabilidade da imagem, com o seguinte comando:
docker scout quickview cassandra:latest

A imagem do Cassandra do Docker deve já estar correta:

Teste de container
Para subir um container do Cassandra, digite o seguinte comando:
docker run --name myCassandra cassandra:latest

Até aqui, testamos que o Container myCassandra está subindo corretamente com a imagem baixada.
Podemos excluir esse container com os seguintes comandos do Docker:
docker stop myCassandra
docker rm myCassandra

Edição do arquivo docker-compose.yml
Abra o VS Code a instale a extensão do Docker. Na verdade a instalação dessa instalação é opcinal, a qual é para que voce consiga enxergar algumas propriedades do Docker via VS Code.

Crie uma pasta chamada clusterCassandra (ou qualquer nome de sua preferência) dentro da pasta C:\users\<seu_usuario>\. No meu caso é: C:\Users\rodrigosaito\
E faça a abertura da pasta criada via VS Code:


Crie dentro dessa pasta (nome a definir) um arquivo chamado docker-compose.yml. O nome do arquivo tem que ser exatamente este, pois o nome do arquivo já faz parte do comando de inicialização do docker compose.
O arquivo deve conter o seguinte conteúdo:
networks:
cassandraCluster:
services:
cassandra10:
image: cassandra:latest
container_name: cassandra10
hostname: cassandra10
networks:
- cassandraCluster
ports:
- "9042:9042"
environment: &environment
CASSANDRA_SEEDS: "cassandra10,cassandra20"
CASSANDRA_CLUSTER_NAME: MyTestCluster
CASSANDRA_DC: DC1
CASSANDRA_RACK: RACK1
CASSANDRA_ENDPOINT_SNITCH: GossipingPropertyFileSnitch
CASSANDRA_NUM_TOKENS: 128
JVM_EXTRA_OPTS: "-Xms256M -Xmx512M"
# mem_limit: 1g
cassandra20:
image: cassandra:latest
container_name: cassandra20
hostname: cassandra20
networks:
- cassandraCluster
ports:
- "9043:9042"
environment: *environment
depends_on:
cassandra10:
condition: service_started
# mem_limit: 1g
cassandra30:
image: cassandra:latest
container_name: cassandra30
hostname: cassandra30
networks:
- cassandraCluster
ports:
- "9044:9042"
environment: *environment
depends_on:
cassandra20:
condition: service_started
# mem_limit: 1g
Uma grande importancia nos arquivos YAML é que os mesmos precisam estar exatamente indentados. Nessa caso, estamos usando 2 espaços em branco para cada nível.
Esse arquivo estará disponível em nosso github, em: https://github.com/datalibtec/cassandra/blob/main/docker-compose.yml
Para iniciar os containers, digite o seguinte comando para alterar a pasta onde está o arquivo docker-compose.yml:
cd ClusterCassandra
Dentro da pasta, digite o seguinte comando(-d detach, para executar em backgroud):
docker compose up -d
No terminal, todos os nós de cluster deverão ter subido:

Os containers estarão sendo executados na aba Container do Docker Desktop:

Para se conectar a um dos containers, digite o comando:
docker exec -it cassandra10 cqlsh
Caso a mensagem de conexão recusada apareça, verifique o seu firewall do windows para que as portas 9042 sejam liberadas, ou desligue o antivirus local de sua máquina.

Teste as conexões nos 2 nós restantes, para ver se estão todos funcionando
docker exec -it cassandra20 cqlsh
exit
docker exec -it cassandra30 cqlsh
exit

Conecte novamente no nó cassandra10

Até esse ponto, fizemos a criação de um cluster no Cassandra, com 3 nós!
A versão mais simplificada dessa instalação também pode ser vista em: https://youtu.be/CIeOtNCXtA0
Obrigado a até +
Comments