O Apache Kafka é uma plataforma de streaming distribuída assíncrona que permite o processamento de dados em tempo real.
Para desenvolver um projeto básico, na disciplina COM241 - Sistemas Distribuídos da Universidade Federal de Itajubá, utilizando o Apache Kafka para enviar e receber temperaturas convertidas em dois tópicos diferentes (temperatura atual e temperatura convertida), é necessário configurar um produtor de dados que envie as temperaturas para um tópico específico e um consumidor que receba os dados e realize as conversões necessárias antes de enviar para o tópico de temperatura convertida. Além disso, é preciso definir a estrutura da mensagem a ser enviada, como formato, codificação e dados adicionais, e configurar a comunicação entre os componentes através de um servidor Kafka, que permitirá o envio e recebimento das mensagens de forma assíncrona. Com isso, é possível utilizar o Apache Kafka para criar um sistema robusto e escalável de processamento de dados em tempo real para temperatura.
As orientações estão divididas nos seguintes tópicos:
- Comunicação da aplicação com o broker
- Envio de mensagens para os tópicos criados no broker - Publish
- Consumo de mensagens enviadas para os tópicos - Subscribe
- Propriedades para identificação dos grupIds de um mesmo tópico - Groups
- Envio de temperaturas randômicas
- Serviço destinado para conversão da temperatura fornecido para Kelvin
- Serviço destinado para conversão da temperatura fornecido para Fahrenheit
No geral, para executar a aplicação é recomendado que o sistema já possua:
> Java JDK 11+;
> Binários do Apache Kafka;
> Intellij IDEA Comuntity ou Ultimate;
> Maven.
Os pormenores de configuração do Kafka/Zookeeper estão presentes na documentação dessa aplicação protótipo.
Para executar a aplicação é necessário:
# Clone este repositório com
$ git clone https://github.com/darlosss/com242_apache_kafka_trabalho1
# Acesse a pasta dos binários do kafka e inicie os servidores pelo terminal
# Zookeeper server
$ zookeeper-server-start.sh config/zookeeper.properties
# Kafka broker
$ kafka-server-start.sh config/server.properties
O ponto de início deste projeto foi uma aplicação Java, as dependências utilizadas estão presentes no pom.xml
Aplicação:
-> Java
- org.projectlombok: lombok ^1.18.26
- org.apache.kafka: kafka-clients ^2.6.3
- org.slf4j: slf4j-simple ^1.7.29
- com.google.code.gson: gson ^2.10.1
Utilitários:
-> Dev
- Intellij IDEA Ultimate
- Binary Kafka
Carlos Eduardo 🧑💻 |
Matheus Martins 🧑💻 |
Adriano Lucas 🧑💻 |