Instalando o Apache Kafka
Fala, pessoal! Hoje gostaria de compartilhar com vocês um pouco sobre o Apache Kafka. Tenho trabalhado com o Kafka para fazer uma sincronização com vários bancos de dados e achei interessante compartilhar um pouco do que venho aprendendo. Além disso, este artigo será uma forma de ter um local de fácil acesso caso eu tenha alguma dúvida no futuro.
O que é Apache Kafka
O Apache Kafka é uma plataforma open-source para realizar a transmissão de dados em um fluxo contínuo. É um sistema de mensageria de alto desempenho e tempo real. Nos últimos anos, o Apache Kafka vem se popularizando bastante devido ao aumento da adoção de microsserviços.
Nomeclaturas
Antes de iniciarmos a instalação, vou explicar algumas nomenclaturas que irão aparecer ao longo deste artigo:
- Producer : Permite as aplicações publicarem (transmitirem) conteúdo
- Consumer : Permite as aplicações assinarem/consumir tópicos e resultados de stream processors;
- Broker : O conceito de broker na plataforma do Kafka é nada mais do que praticamente o próprio Kafka, ele é quem gerencia os tópicos, define a forma de armazenamento das mensagens, logs;
- Tópico – Um tópico é uma forma de rotular ou categorizar uma mensagem;
- Partition: é a unidade de paralelismo do Kafka producer e consumer. O número de partições é definido quando um tópico é criado e pode ser aumentado a qualquer momento após a criação, mas nunca diminuído.
1. Instalação Apache kafka
O requisito para executar o Kafka é ter o JDK instalado na máquina. Agora, vamos fazer o download clicando no link abaixo:
https://www.apache.org/dyn/closer.cgi?path=/kafka/3.4.0/kafka_2.13-3.4.0.tgz
Extraia o arquivo:
tar -xzf kafka_2.13-3.4.0.tgz
Renomeie:
mv kafka_2.13-3.4.0 kafka
Entrar na basta :
cd kafka
1.1 Configurando o Broker
Vamos abir o arquivo kafka/config/server.properties e editar os seguintes parâmetros:
broker.id=1 (adicionamos um número inteiro e único, que é o identificador do broker)
listeners=PLAINTEXT://:9092→ em listeners, descomentamos e adicionamos uma porta na qual o borker será acessado;
log.dirs=c:/kafka/kafka-log: Podemos adicionar o caminho onde será armazenado os logs
1.2 Subindo o Zookeeper
Vamos subir primeiro o zookeeper:
bin/kafka-topics/zookeeper-server-start.bat config/zookeeper.properties
Após subir zookeeper, vamos iniciar o broker:
bin/kafka-topics/kafka-server-start.sh config/server.properties
1.3 Criando topic para teste:
Com os servidores online vamos criar os tópicos
bin/kafka-topics.sh --create --topic test-topic-replicated -bootstrap-server localhost:9092 --replication-factor 3 --partitions 3
1.4 Criando um consumer para testarmos
bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test-topic-replicated
2. Configurando o KAFKA para acesso remoto
Para permitir que sistemas externos se conectem ao Kafka, devemos adicionar a seguinte configuração nos brokers. Primeiro, abra o arquivo de configuração correspondente ao seu broker:
kafka/config/server.properties
Após o arquivo aberto, procure pela linha onde esteja escrito dessa forma:
advertised.listeners=PLAINTEXT://your.host.name:9092
Após descomentar, adicione o endereço IP pelo qual você tem acesso externo. Depois de fazer isso, basta reiniciar o ZooKeeper e o broker para permitir a conexão remota com o Kafka.