SlideShare uma empresa Scribd logo
Tech Talk - Kafka
Davi Alves - Desenvolvedor @M4U
@davicdsalves
Agenda
- Introdução
- Spring Boot + Kafka
- Streams + KSQL + Schemas
História
- 2010 Linkedin sofria em consumir
grandes volumes de data com baixa
latência, arquiteturas de eventos em
tempo real
- Pipelines de dados customizados
para streaming e queues, deveriam
escalar junto com o site
- Kafka criado internamente para
receber informações sobre todas as
ações no site e logs agregados de
outros serviços
- Pontos principais do Kafka: API
simples produtor/consumidor, alto
volume, arquitetura escalável desde o
inicio
Antes
Depois
Terminologia
- Produtor
- Consumidor
- Tópicos
- Partições
- API Kafka Streams
- Kafka Connectors
Produtor
- Servidores enviando logs
- Informação de dispositivos IOT
- Aplicação gerando eventos
- Kafka: Array de bytes
Consumidor
- Lê/Consome os dados de um
cluster Kafka
- Inscreve em um tópico, não
consome de um produtor
- Destino final de um dado
Tópicos
- Logs de dados contínuos
- Formato de chave/valor+timestamp
- Sem interferência entre grupos
Particionamento
- Divisão de tópicos
(performance+escalabilidade)
- Produtor pode decidir partição
- Uma partição por consumidor
em um grupo
Tolerante a falhas
- Partições são replicadas entre
brokers
- Broker eleito líder da partição
Kafka Streams
- API permite consumir de 1+ tópicos
- Produzir dados para 1+ tópicos
- Enriquecer dados
final KStream<String, String> textLines = builder.stream(inputTopic);
final Pattern pattern = Pattern.compile("W+", Pattern.UNICODE_CHARACTER_CLASS);
final KTable<String, Long> wordCounts = textLines
.flatMapValues(value -> Arrays.asList(pattern.split(value.toLowerCase())))
.groupBy((keyIgnored, word) -> word)
.count();
wordCounts.toStream().to(outputTopic, Produced.with(Serdes.String(), Serdes.Long()));
Kafka Connectors
- Framework para conectar sistemas
externos no Kafka
- Componentes prontos
- Conectores Source/Sink
- Source envia os dados para Kafka
- Sink lê os dados do Kafka
Zookeeper
- Eleição de Controller
- Broker responsável pela
liderança das partições
- Zookeeper elege e monitora
Controller
- Membros do cluster
Kafka no Linkedin
- 4,5 trilhão de mensagens por dia
- 300 Terabytes de entrada
- 900 Terabytes de saída
- 4.5 milhões de mensagens por segundo,
único cluster
- 1300 servidores
Kafka como serviço
- Confluent cloud
- $0,11/GB ou $0,13/GB entrada
- $0,11/GB ou $0,13/GB saída
- $0,10/GB-mês storage
- Amazon SQS: Alternativa mais antiga para
Kafka
- Standard queue: $0.40 (por milhão/req)
- FIFO Queue: $0.50 (por milhão/req)
- Amazon Kinesis: Mais proximo de "Kafka
como serviço", partições e réplicas
- Shard Hour (1MB/second ingress,
2MB/second egress): $0.015
- PUT Payload Units (1,000,000 units):
$0.014
Obrigado!

Mais conteúdo relacionado

PPTX
Começando com aplicações serverless na AWS
PPTX
Deep dive com Amazon Aurora
PDF
Arquiteturas de Software para o Século XXI
PDF
Aws glue
PPTX
Belemtransito – soa, nuvem e builds
PDF
Seu primeiro aplicativo de Big Data
PDF
Utilizando NoSQL para Big Data com DynamoDB
PDF
Desenvolvendo aplicacoes moveis Android na Nuvem da Amazon Web Services
Começando com aplicações serverless na AWS
Deep dive com Amazon Aurora
Arquiteturas de Software para o Século XXI
Aws glue
Belemtransito – soa, nuvem e builds
Seu primeiro aplicativo de Big Data
Utilizando NoSQL para Big Data com DynamoDB
Desenvolvendo aplicacoes moveis Android na Nuvem da Amazon Web Services

Mais procurados (8)

PDF
Construindo APIs com Amazon API Gateway e AWS Lambda
PPTX
Construindo APIs com Amazon API Gateway e AWS Lambda
PDF
Começando com Amazon Redshift
PPTX
Migrando seu workload de Big Data para o Amazon EMR
PDF
Developer Lounge - AWS Summit SP 2019 - Processando alta demanda de Requisições
PDF
Melhores práticas de workloads Microsoft na AWS
PDF
Arquitetura Serverless e AWS Lambda - Demo Session
PPTX
Visão única de cliente através da construção de um Data Lake
Construindo APIs com Amazon API Gateway e AWS Lambda
Construindo APIs com Amazon API Gateway e AWS Lambda
Começando com Amazon Redshift
Migrando seu workload de Big Data para o Amazon EMR
Developer Lounge - AWS Summit SP 2019 - Processando alta demanda de Requisições
Melhores práticas de workloads Microsoft na AWS
Arquitetura Serverless e AWS Lambda - Demo Session
Visão única de cliente através da construção de um Data Lake
Anúncio

Semelhante a Introdução ao Kafka (20)

PDF
[Datafest 2018] Apache Spark Structured Stream - Moedor de dados em tempo qua...
PPTX
Conhecendo Apache Kafka
PDF
Tecnologias para mineração de dados nas nuvens
PPTX
Python Brasil 2020 - Desmitificando pipeline de dados com Python: o que apren...
PDF
Kafka streams
PDF
Big Data na Globo.com - Dev Version - 2016
PPTX
Desenvolvendo para o Windows Azure e SQL Azure
PDF
Escalando uma plataforma de e-mail transacional- aprendizado das trincheiras
PDF
Qconsp 2016 escalando uma plataforma de e-mail transacional- aprendizado da...
PDF
QConSP 2014 - Cassandra no Desenvolvimento de Aplicações para serviços Móveis
PDF
QConSP 2014 - Cassandra no Desenvolvimento de Aplicações para serviços Móveis
PPT
Beehive - Conceitos de Administração e Gerenciamento e Clients End-User
PPTX
apresentação RINA FI INATEL
PDF
Inove simplificando a infraestrutura com Kafka
PPTX
Kafka: Uma introdução para Desenvolvedores e Arquitetos
PPTX
Streaming architecture with big data clusters
PDF
Palestra DataFlow - II São Paulo Perl Workshop
PDF
TDC2018FLN | Trilha Python - RASA.ai - ChatBots com inteligência artificial e...
PPT
Comparacao Estrategica sobre as Tecnologias de Acesso a Dados da Microsoft
PDF
TDC2017 | POA Trilha BigData - Implementando uma arquitetura de BI e Big Data...
[Datafest 2018] Apache Spark Structured Stream - Moedor de dados em tempo qua...
Conhecendo Apache Kafka
Tecnologias para mineração de dados nas nuvens
Python Brasil 2020 - Desmitificando pipeline de dados com Python: o que apren...
Kafka streams
Big Data na Globo.com - Dev Version - 2016
Desenvolvendo para o Windows Azure e SQL Azure
Escalando uma plataforma de e-mail transacional- aprendizado das trincheiras
Qconsp 2016 escalando uma plataforma de e-mail transacional- aprendizado da...
QConSP 2014 - Cassandra no Desenvolvimento de Aplicações para serviços Móveis
QConSP 2014 - Cassandra no Desenvolvimento de Aplicações para serviços Móveis
Beehive - Conceitos de Administração e Gerenciamento e Clients End-User
apresentação RINA FI INATEL
Inove simplificando a infraestrutura com Kafka
Kafka: Uma introdução para Desenvolvedores e Arquitetos
Streaming architecture with big data clusters
Palestra DataFlow - II São Paulo Perl Workshop
TDC2018FLN | Trilha Python - RASA.ai - ChatBots com inteligência artificial e...
Comparacao Estrategica sobre as Tecnologias de Acesso a Dados da Microsoft
TDC2017 | POA Trilha BigData - Implementando uma arquitetura de BI e Big Data...
Anúncio

Último (20)

PPTX
Física I - 01 e 02 - Introdução ao método Científico.pptx
PPTX
'Conservação de massa equação da continuidade.pptx
PDF
Projecto Fotovoltaico de um sistema de abastecimento de agua
PDF
Aula-5-Transistores-de-poASAStencia-TBJ.pdf
PPTX
Aula_Teorica_Estados limites de serviço no concreto armado.pptx
PPTX
Aula_Semicondutortes_Diodos e LEDs_apresentação
PPTX
Aula 6_Delineamento em Blocos Casualizados_28.09.2020_Mestrado.pptx
PDF
Aula sobre Materiais de construção - Construções rurais.ppt
PPTX
Trabalho sobre Distancia de Visibilidade do Curso de Engenharia
PPT
DIFERENTES TIPOS DE SOLO NA AGRICULTURA.
PDF
Análise do concreto permeável com adição de resíduos
PPTX
PROCEDIMENTOS DE BLOQUEIO- Executante.pptx
PPTX
Aula 03 - Fisica teorica e experimental.pptx
PPT
DIFERENTES SINTOMAS E SINAIS DE PLANTAS.
PPTX
1_Aula_de_Pesquisa_Aplicada__Engenharia____P_2024.2.pptx
PDF
APRESENTACAO_ NR10 Ferramentas isoladas.pdf
PDF
Aula 01 INT. EnnnnnnnnnnnnnnENF.pdf 2.pdf
PDF
Aula_04 gestão da manutenção _Custos da manutencão.pdf
PDF
Manutenção de motores de indução trifésicos.pdf
PPTX
Apresentação de brainstorm geométrica colorida.pptx
Física I - 01 e 02 - Introdução ao método Científico.pptx
'Conservação de massa equação da continuidade.pptx
Projecto Fotovoltaico de um sistema de abastecimento de agua
Aula-5-Transistores-de-poASAStencia-TBJ.pdf
Aula_Teorica_Estados limites de serviço no concreto armado.pptx
Aula_Semicondutortes_Diodos e LEDs_apresentação
Aula 6_Delineamento em Blocos Casualizados_28.09.2020_Mestrado.pptx
Aula sobre Materiais de construção - Construções rurais.ppt
Trabalho sobre Distancia de Visibilidade do Curso de Engenharia
DIFERENTES TIPOS DE SOLO NA AGRICULTURA.
Análise do concreto permeável com adição de resíduos
PROCEDIMENTOS DE BLOQUEIO- Executante.pptx
Aula 03 - Fisica teorica e experimental.pptx
DIFERENTES SINTOMAS E SINAIS DE PLANTAS.
1_Aula_de_Pesquisa_Aplicada__Engenharia____P_2024.2.pptx
APRESENTACAO_ NR10 Ferramentas isoladas.pdf
Aula 01 INT. EnnnnnnnnnnnnnnENF.pdf 2.pdf
Aula_04 gestão da manutenção _Custos da manutencão.pdf
Manutenção de motores de indução trifésicos.pdf
Apresentação de brainstorm geométrica colorida.pptx

Introdução ao Kafka

  • 1. Tech Talk - Kafka Davi Alves - Desenvolvedor @M4U @davicdsalves
  • 2. Agenda - Introdução - Spring Boot + Kafka - Streams + KSQL + Schemas
  • 3. História - 2010 Linkedin sofria em consumir grandes volumes de data com baixa latência, arquiteturas de eventos em tempo real - Pipelines de dados customizados para streaming e queues, deveriam escalar junto com o site - Kafka criado internamente para receber informações sobre todas as ações no site e logs agregados de outros serviços - Pontos principais do Kafka: API simples produtor/consumidor, alto volume, arquitetura escalável desde o inicio Antes Depois
  • 4. Terminologia - Produtor - Consumidor - Tópicos - Partições - API Kafka Streams - Kafka Connectors
  • 5. Produtor - Servidores enviando logs - Informação de dispositivos IOT - Aplicação gerando eventos - Kafka: Array de bytes Consumidor - Lê/Consome os dados de um cluster Kafka - Inscreve em um tópico, não consome de um produtor - Destino final de um dado
  • 6. Tópicos - Logs de dados contínuos - Formato de chave/valor+timestamp - Sem interferência entre grupos Particionamento - Divisão de tópicos (performance+escalabilidade) - Produtor pode decidir partição - Uma partição por consumidor em um grupo
  • 7. Tolerante a falhas - Partições são replicadas entre brokers - Broker eleito líder da partição
  • 8. Kafka Streams - API permite consumir de 1+ tópicos - Produzir dados para 1+ tópicos - Enriquecer dados final KStream<String, String> textLines = builder.stream(inputTopic); final Pattern pattern = Pattern.compile("W+", Pattern.UNICODE_CHARACTER_CLASS); final KTable<String, Long> wordCounts = textLines .flatMapValues(value -> Arrays.asList(pattern.split(value.toLowerCase()))) .groupBy((keyIgnored, word) -> word) .count(); wordCounts.toStream().to(outputTopic, Produced.with(Serdes.String(), Serdes.Long()));
  • 9. Kafka Connectors - Framework para conectar sistemas externos no Kafka - Componentes prontos - Conectores Source/Sink - Source envia os dados para Kafka - Sink lê os dados do Kafka
  • 10. Zookeeper - Eleição de Controller - Broker responsável pela liderança das partições - Zookeeper elege e monitora Controller - Membros do cluster
  • 11. Kafka no Linkedin - 4,5 trilhão de mensagens por dia - 300 Terabytes de entrada - 900 Terabytes de saída - 4.5 milhões de mensagens por segundo, único cluster - 1300 servidores
  • 12. Kafka como serviço - Confluent cloud - $0,11/GB ou $0,13/GB entrada - $0,11/GB ou $0,13/GB saída - $0,10/GB-mês storage - Amazon SQS: Alternativa mais antiga para Kafka - Standard queue: $0.40 (por milhão/req) - FIFO Queue: $0.50 (por milhão/req) - Amazon Kinesis: Mais proximo de "Kafka como serviço", partições e réplicas - Shard Hour (1MB/second ingress, 2MB/second egress): $0.015 - PUT Payload Units (1,000,000 units): $0.014