Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Kafka 101 - AceleraDev SP

Sponsored · SiteGround - Reliable hosting with speed, security, and support you can count on. →

Kafka 101 - AceleraDev SP

Apresentação de introdução ao Kafka, explicando conceitos básicos e com casos de uso da tecnologia.
Apresentação feita no dia 23/02/2019, para uma turma de formação do AceleraDev (curso de backend realizado pela Movile)

Avatar for Mariana Fantini

Mariana Fantini

February 23, 2019

Other Decks in Technology

Transcript

  1. • Mariana Fantini • Cientista da computação • UNESP Rio

    Claro • Desenvolvedora na Wavy [email protected] /marifantini /marianafantini Desenvolvedora na Wavy Quem sou eu?
  2. Quem é Movile? Líder global em marketplaces móveis A Movile

    é líder em marketplaces móveis e nosso sonho é fazer a vida de 1 bilhão de pessoas melhor por meio dos nossos apps. +150MM de pessoas mensalmente +1.600 pessoas em 15 escritórios #1 plataforma de delivery de comida na América Latina #1 plataforma de venda de ingressos na América Latina #2 aplicativo rentável globalmente para crianças
  3. TÓPICOS Introdução O que é Kafka? Motivação Por que usar

    Kafka? Definições Como funciona o Kafka? Casos de uso Como e por que utilizamos Kafka na Wavy? TALK Kafka 101 Sobre o que é essa talk?
  4. O que é Kafka? Introdução - Plataforma open source -

    Sistema distribuído - Permite o envio de informações entre sistemas - Tem um tempo de retenção de informações - Não garante ordem de entrega
  5. O que é Kafka? Introdução Como funciona? - Existem os

    producers, que produzem mensagens - Os tópicos, que transmitem essa mensagem - E os consumers, que leem a mensagem
  6. Por que usar Kafka? Motivação Problema: precisamos desenvolver um sistema

    de gerenciamento de conteúdos. Ele precisará enviar informações para outros sistemas, que são os publicadores.
  7. Por que usar Kafka? Motivação Problemas? E se... • O

    publicador não estiver funcionando e não receber a mensagem? • O publicador demorar para responder? • Houver erro de timeout? • API do publicador mudar?
  8. Por que usar Kafka? Motivação Será pior ainda se precisarmos

    extrair conteúdos de mais de um gerenciador
  9. Por que usar Kafka? Motivação Problemas resolvidos: • Independência entre

    os sistemas: ◦ Tempo de resposta do publicador não nos afeta ◦ Sem erro de timeout do publicador ◦ Alterações no publicador não nos afetam
  10. Por que usar Kafka? Motivação Problemas? • Criar lógica para

    gerenciar os conteúdos no banco • Escrever no banco de dados é uma operação custosa • Múltiplos sistemas escrevendo no mesmo banco ao mesmo tempo
  11. Por que usar Kafka? Motivação Problemas resolvidos: • Independência entre

    os sistemas: ◦ Tempo de resposta do publicador não nos afeta ◦ Sem erro de timeout do publicador ◦ Alterações no publicador não nos afetam
  12. Por que usar Kafka? Motivação Mas essa solução também tem

    problemas: • Comunicação com múltiplos publicadores?
  13. Por que usar Kafka? Motivação Opção de usar filas: teríamos

    menos problemas, mas ainda não é a melhor opção.
  14. Por que usar Kafka? Motivação “Se você quer mover e

    transformar um grande volume de dados em tempo real entre diferentes sistemas, então Apache Kafka pode ser exatamente o que você precisa” - Matt Kirwan
  15. Por que usar Kafka? Motivação Problemas resolvidos: • Mesmos da

    fila (sistemas independentes) • Podemos ter múltiplos consumidores (que receberão a mesma mensagem)
  16. Por que usar Kafka? Motivação Problemas resolvidos: • Mesmos da

    fila (sistemas independentes) • Podemos ter múltiplos consumidores (que receberão a mesma mensagem) • Bônus: Kafka mantém o histórico de mensagens
  17. Por que usar Kafka? Motivação Nenhuma solução é perfeita: •

    Kafka não garante ordem de entrega Mas, neste caso, isso não é um problema.
  18. Como funciona o Kafka? Definições 1. E se o consumer

    for inicializado quando já tem informação no tópico? 2. Como assim “sistema distribuído”? 3. O que é o Zookeeper?
  19. Como funciona o Kafka? Definições E se o consumer for

    inicializado quando já tem informação no tópico?
  20. Como funciona o Kafka? Definições Como assim “sistema distribuído”? •

    O Kafka pode ser executado em diferentes máquinas • Réplicas: maior disponibilidade de dados
  21. Como funciona o Kafka? Definições O que é o Zookeeper?

    • Outro serviço - Kafka depende do Zookeeper • Gerencia brokers • Elege partições líderes e réplicas • Notifica mudanças ao Kafka (adição ou remoção de brokers, por exemplo) • Não guarda quais mensagens foram lidas pelos consumers
  22. Como e por que utilizamos Kafka na Wavy? Casos de

    uso Content manager produz o conteúdo, publicador lê o conteúdo e o publica.
  23. Como e por que utilizamos Kafka na Wavy? Casos de

    uso Sistemas responsáveis por receber mensagens enviam dados de log para o Kafka, para que outro sistema seja responsável por persistir estes logs
  24. Como e por que utilizamos Kafka na Wavy? Casos de

    uso Outros sistemas também leem estes dados
  25. Como e por que utilizamos Kafka na Wavy? Casos de

    uso FONTE: https://kafka.apache.org/
  26. Como e por que utilizamos Kafka na Wavy? Casos de

    uso New York Times: The Monolog
  27. Documentações: • https://kafka.apache.org/ Artigos: • https://medium.com/@gabrielqueiroz/o-que-%C3%A9-esse-tal-de-apache- kafka-a8f447cac028 • https://www.mattkirwan.com/ •

    https://www.confluent.io/blog/publishing-apache-kafka-new-york-times/ Curso: • Apache Kafka Series - Learn Apache Kafka for Beginners v2, by Stephane Maarek - https://udemy.com/apache-kafka/ Referências