Diese Präsentation wurde erfolgreich gemeldet.
Die SlideShare-Präsentation wird heruntergeladen. ×

Conhecendo Apache Kafka

Weitere Verwandte Inhalte

Ähnliche Bücher

Kostenlos mit einer 30-tägigen Testversion von Scribd

Alle anzeigen

Ähnliche Hörbücher

Kostenlos mit einer 30-tägigen Testversion von Scribd

Alle anzeigen

Conhecendo Apache Kafka

  1. 1. conhecendo Apache Kafka Rafa Noronha, DevX | Marte | iti Normandes Junior, DevX | Marte | Zup Innovation
  2. 2. #vemproiti estamos contratando!
  3. 3. agenda o apresentar a tecnologia o seus muitos conceitos fundamentais o compartilhar como usamos no iti o alguns takeaways
  4. 4. alguns fatos sobre Apache Kafka
  5. 5. como Apache Kafka surgiu?
  6. 6. “nossa arquitetura não comtemplava algo para lidar com o fluxo contínuo dos dados” — Jay Kreps, former LinkedIn lead architect
  7. 7. hoje dezenas de milhares de organizações usam Apache Kafka
  8. 8. incluindo mais de um terço das Fortune 500
  9. 9. três típicos casos de uso de Apache Kafka
  10. 10. cenário 1 activity tracking
  11. 11. cenário 2 mensageria
  12. 12. cenário 3 pipelines de dados (transacionais e/ou telemetria)
  13. 13. stream processing é mais um cenário típico
  14. 14. stream processing?
  15. 15. “event streams” conjuntos de eventos, ou fluxos de eventos, sem fim determinado
  16. 16. fluxos de eventos podem representar qualquer atividade de negócio que nos interesse
  17. 17. “stream processing” -> processar fluxos de eventos -> transformar eventos de entrada em eventos de saída
  18. 18. alguns conceitos fundamentais do Apache Kafka
  19. 19. distributed event streaming platform [pt-BR] plataforma distribuída de streaming de eventos
  20. 20. três principais capacidades oferecidas pelo Apache Kafka
  21. 21. publicar e inscrever-se em streams de mensagens (similar a outras ferramentas de mensageria)
  22. 22. armazenar streams de mensagens, de maneira durável e tolerante a falhas
  23. 23. processar streams de mensagens sob demanda
  24. 24. três propriedades do Apache Kafka
  25. 25. roda como um cluster de uma ou mais instâncias, que podem abranger múltiplos datacenters
  26. 26. um cluster Kafka armazena streams de mensagens em categorias que chamamos de tópicos
  27. 27. mensagens possuem chave, valor e timestamp
  28. 28. quatro core APIs do Apache Kafka
  29. 29. Producer API permite que uma aplicação produza mensagens em um ou mais tópicos
  30. 30. Consumer API permite que uma aplicação inscreva-se em n tópicos e processe o stream de mensagens produzido ali
  31. 31. Stream API permite a uma aplicação agir como um stream processor, transformando streams de entrada em streams de saída
  32. 32. Stream API indicado para cenários de transformações mais complexas que aquelas atendidas pelas Producer e Consumer APIs
  33. 33. Connector API permite construir e reusar produtores e consumidores que conectam tópicos a aplicações ou bases de dados pré-existentes
  34. 34. Connector API por exemplo, um conector que exporta mensagens do Kafka para um s3 para fins de backup
  35. 35. Tópicos e Logs
  36. 36. um tópico é como uma categoria, como o nome de um feed
  37. 37. mensagens produzidas sempre são destinadas a um tópico
  38. 38. tópicos podem possuir n consumidores (zero a muitos)
  39. 39. tópicos são mantidos como logs particionados
  40. 40. logs particionados são conjuntos de mensagens sem fim pré-determinado (mais mensagens podem ser adicionadas)
  41. 41. mensagens em um log particionado são ordenadas e imutáveis
  42. 42. toda mensagem pertence a uma partição
  43. 43. toda mensagem possui um offset (um identificador numérico que indica a posição da mensagem em sua partição)
  44. 44. toda mensagem produzida é retida pelo cluster, tendo ela sido consumida ou não
  45. 45. o período de retenção de uma mensagem pode ser configurado por tópico
  46. 46. partições permitem escalar horizontalmente o armazenamento de um log
  47. 47. partições também funcionam como unidade de paralelismo
  48. 48. o consumo de um tópico sempre é arranjado em grupos de consumidores
  49. 49. cada grupo de consumidores possui offsets independentes para o consumo das partições de um tópico
  50. 50. um grupo de consumidores pode ter uma quantidade de consumidores não ociosos menor ou igual ao número de partições do tópico
  51. 51. quantas e quais partições cada consumidor recebe é definido dinamicamente pelo protocolo do Kafka
  52. 52. Réplicas
  53. 53. para fins de tolerância a falha, cada partição é replicada para número configurável de servidores
  54. 54. cada partição possui um servidor “leader” e zero ou mais servidores “followers”
  55. 55. garantias oferecidas pelo Apache Kafka
  56. 56. mensagens produzidas serão escritas conforme sua ordem de envio
  57. 57. um consumidor enxerga as mensagens conforme sua ordem de armazenamento no log
  58. 58. para um tópico com fator de replicação N, são toleradas até N-1 falhas de servidor, sem perder mensagens “commitadas” ao log
  59. 59. como Apache Kafka é usado atualmente no iti?
  60. 60. em cenários de mensageria
  61. 61. orquestração de microserviços: no processamento de transações, como a efetivação de um pagamento de conta
  62. 62. integração dos microserviços do iti a sistemas corporativos do Itaú
  63. 63. alguns key takeaways
  64. 64. Apache Kafka é um ótimo storage system otimizado para high-performance, low-latency commit log storage, replication, and propagation
  65. 65. Apache Kafka vai desempenhar da mesma maneira, seja retendo 50 KB, seja retendo 50TB
  66. 66. para prover flexibilidade, Apache Kafka possui uma grande superfície de configuração
  67. 67. combinar mensageria, storage e stream processing é o que posiciona muito bem o Apache Kafka como uma plataforma de streaming
  68. 68. traz a possibilidade de lidar com dados históricos e futuros com a mesma abordagem
  69. 69. traz a possibilidade de integrar todo tipo de sistema e workload, incluindo pipelines de dados, aplicações off-line ou com janelas estendidas de manutenção
  70. 70. e muito mais
  71. 71. referências o kafka.apache.org/intro o confluent.io/apache-kafka-stream-processing-book-bundle/ o training.confluent.io/schedule
  72. 72. Obrigado! #fazumiti

Hinweis der Redaktion

  • gerar relatórios
    alimentar sistemas de machine learning
    atualizar resultados de busca etc

    LinkedIn + 0.5B users
  • https://www.slideshare.net/GuozhangWang/apache-kafka-at-linkedin-43307044
  • uma diferença que quero destacar entre esse slide e o slide anterior
    aqui as pessoas não tiveram opção já o cenário do LinkedIn é recorrente temos opção? cuidado para não repetir erros datados de 2010
  • um ponto de encontro interessante é:
    Kafka pode ser visto como a espinha dorsal de uma arquitetura corporativa
  • por exemplo – stateful computations
  • tópicos são mantidos como logs particionados
    logs particionados são conjuntos de mensagens sem fim pré-determinado
    mensagens são ordenadas e imutáveis
    toda mensagem pertence a uma partição
    toda mensagem possui um offset



  • o consumo de um tópico sempre é arranjado em grupos de consumidores
    cada grupo possui offsets independentes
    um grupo pode ter uma quantidade de consumidores não ociosos menor ou igual ao número de partições do tópico
  • leader handles all read and write requests
    followers passively replicate the leader
    if the leader fails, one of the followers will automatically become the new leader https://www.confluent.io/blog/hands-free-kafka-replication-a-lesson-in-operational-simplicity/
  • para concluir com uma provocação…

    partiu “urbanizar“ a tecnologia do iti com práticas e ferramentas modernas

×