GitHub language count Repository size GitHub last commit License Stargazers

RepiMe-logo

RepiMe-Flutter RepiMe-Dart

Apache Kafka - Serviços de Mensageria

O Apache Kafka é uma plataforma de streaming distribuída assíncrona que permite o processamento de dados em tempo real.


Sobre

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:


Funcionalidades ⚙️

  • 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

Pré-requisitos e configuração 🛠️

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

Tecnologias 🧑‍💻

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

Contribuidores


Carlos Eduardo

🧑‍💻

Matheus Martins

🧑‍💻

Adriano Lucas

🧑‍💻