Instalação servidor Kafka no Ubuntu Server
O que é o Kafka
Resumidamente o Kafka é usado para trabalhar com fila de mensagens e como uma plataforma de streaming de eventos, usando um modelo de “publicar/assinar”. Foi criado e disponibilizado pelo Linkedin em 2011. Ele permite que os produtores consigam gravar mensagens no Kafka, que posteriormente podem ser lidas por um ou mais consumidores. Esses registros não podem ser modificados após serem enviados para o Kafka. Ele é executado como um cluster de um ou mais servidores, ou seja, mesmo que só tenhamos um servidor ele mesmo assim é considerado um cluster. Cada nó desse cluster é também chamado de broker.
Para saber mais detalhes sobre Kafka acesse meu outro post.
Instalação do Java
Neste tutorial, usaremos o Ubuntu 22.04 LTS Server, mas as etapas também devem ser semelhantes em outras versões do Ubuntu. Antes de começar, vamos nos certificar que o Java está instalado no servidor. Você pode verificar se o Java já está instalado executando o seguinte comando:
|
|
Se o Java não estiver instalado, como no exemplo acima, você poderá instalá-lo executando o seguinte comando:
|
|
Instalação do Kafka
Agora que temos o Java instalado, podemos prosseguir com a instalação do Kafka. Primeiro, baixe a versão mais recente do Kafka no site do Apache Kafka. No momento que estou escrevendo, a versão mais recente é a 3.6.1. Você pode baixá-lo usando wget:
|
|
Após baixar o arquivo, vamos extrai-lo:
|
|
Isto criará um novo diretório chamado “kafka_2.13-3.6.1”. Entre para este diretório:
|
|
O Kafka usa um arquivo de configuração chamado server.properties
, a configuração padrão deve funcionar para a maioria dos casos de uso, mas você pode personalizá-lo conforme necessário. Você pode, por exemplo, alterar o número da porta que o Kafka executa ou o número de threads do servidor, para mais detalhes podemos acessar a documentação. Se quiser dar uma conferida no arquivo, podemos executar o comando abaixo:
|
|
Iniciar o servidor Kafka
Aqui teremos duas opções para iniciar o servidor Kafka, o modo tradicional, iniciando o servidor Kafka com o Zookeeper e o modo “Kraft” que é uma maneira recente de iniciar o Kafka sem utilizar o Zookeeper, saiba mais sobre aqui. Escolha uma das opções para iniciar o servidor e então poderemos avançar para os testes.
Iniciando servidor com Zookeeper
Em um terminal iremos iniciar o Zookeeper, lembrando que os comandos precisam ser executados nessa ordem:
|
|
Em outro terminal vamos iniciar o servidor Kafka:
|
|
Iniciando servidor sem Zookeeper
Para iniciar o Kafka sem Zookeeper executaremos os comandos abaixo, primeiro geraremos um valor de Cluster UUID:
|
|
Com o valor de Cluster UUID iremos formatar o diretório de logs:
|
|
E por fim iniciaremos o servidor Kafka:
|
|
Realizando alguns testes
Alguns exemplos de eventos que podem ser usados em um servidor Kafka são transações de pagamento, geolocalização, pedidos de compras, medições de sensores de dispositivos IoT e diversas outras. Esses eventos são organizados em tópicos. De maneira simples o tópico é como se fosse uma pasta, uma maneira de organizar as coisas.
Agora que o servidor Kafka está em execução (podemos ver pelas mensagens de log quando iniciamos o servidor), podemos realizar alguns testes para ver o servidor em funcionamento. Para nosso teste vamos criar um tópico e enviar alguma mensagem para ele. Para criar o tópico vamos executar o seguinte comando:
Criando Tópicos
|
|
Para validar se o tópico foi criado, podemos listar os tópicos do servidor:
|
|
Também podemos descrever o tópico criado para entender os detalhes:
|
|
Produzindo mensagens
Podemos produzir mensagens pela linha de comando, para isso podemos utilizar o producer linha. Cada linha digitada realizará a gravação de um evento separado no tópico.
|
|
Para encerrar o envio de mensagens aperte as teclas CTRL+C
Consumindo mensagens
Para consumir as mensagens vamos executar o comando abaixo:
|
|
Se você ver as mensagens digitadas anteriormente é sinal que tudo deu certo. Um teste bem legal de ser feito é deixar o terminal aberta conectado com o consumidor e em outro terminal utilizar o comando para produzir mensagens. Você poderá ver as mensagens entrando imediatamente no terminal onde o consumidor está ativo.
Bom agora já conseguimos fazer o básico no nosso servidor Kafka, em breve estarei escrevendo algumas outras dicas sobre Kafka. Até lá.