KAFKA 101 | CURSO GRATUITO
O instrutor Tim Berglund apresenta GRATUITAMENTE o curso KAFKA 101 através da Confluent.
Sobre o curso
O que é Apache Kafka?
O Apache Kafka é uma plataforma de streaming de eventos usada para coletar, processar, armazenar e integrar dados em escala. Ele tem vários casos de uso, incluindo registro distribuído, processamento de fluxo, integração de dados e mensagens pub/sub.
Para entender completamente o que Kafka faz, vamos nos aprofundar no que é uma “plataforma de streaming de eventos” e como ela funciona. Portanto, antes de nos aprofundarmos na arquitetura Kafka ou em seus principais componentes, vamos discutir o que é um evento. Isso ajudará a explicar como o Kafka armazena eventos, como obter eventos dentro e fora do sistema e como analisar fluxos de eventos.
O que são eventos?
Um evento é qualquer tipo de ação, incidente ou alteração identificada ou registrada por software ou aplicativos. Por exemplo, um pagamento, um clique no site ou uma leitura de temperatura, junto com uma descrição do que aconteceu.
Em outras palavras, um evento é uma combinação de notificação – o elemento de quando que pode ser usado para acionar alguma outra atividade – e estado. Esse estado geralmente é bastante pequeno, digamos menos de um megabyte ou mais, e normalmente é representado em algum formato estruturado, digamos em JSON ou um objeto serializado com Apache Avro™ ou Protocol Buffers.
Kafka e Eventos – Pares Chave/Valor
Kafka é baseado na abstração de um log de commit distribuído. Ao dividir um log em partições, o Kafka é capaz de dimensionar os sistemas. Dessa forma, Kafka modela eventos como pares chave/valor. Internamente, chaves e valores são apenas sequências de bytes, mas externamente, em sua linguagem de programação de escolha, eles geralmente são objetos estruturados representados no sistema de tipos de sua linguagem. Kafka chama a tradução entre tipos de linguagem e serialização e desserialização de bytes internos. O formato serializado geralmente é JSON, JSON Schema, Avro ou Protobuf.
Os valores geralmente são a representação serializada de um objeto de domínio de aplicativo ou alguma forma de entrada de mensagem bruta, como a saída de um sensor.
As chaves também podem ser objetos de domínio complexos, mas geralmente são tipos primitivos, como strings ou inteiros. A parte chave de um evento Kafka não é necessariamente um identificador exclusivo para o evento, como seria a chave primária de uma linha em um banco de dados relacional. É mais provável que seja o identificador de alguma entidade no sistema, como um usuário, pedido ou um determinado dispositivo conectado.
Isso pode não parecer tão significativo agora, mas veremos mais adiante que as chaves são cruciais para o modo como Kafka lida com coisas como paralelização e localidade de dados.
Essa foi uma dica do Sergio Willians