SlideShare uma empresa Scribd logo
1 de 13
Baixar para ler offline
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

Mais procurados

Construindo APIs com Amazon API Gateway e AWS Lambda
Construindo APIs com Amazon API Gateway e AWS LambdaConstruindo APIs com Amazon API Gateway e AWS Lambda
Construindo APIs com Amazon API Gateway e AWS LambdaAmazon Web Services LATAM
 
Construindo APIs com Amazon API Gateway e AWS Lambda
Construindo APIs com Amazon API Gateway e AWS LambdaConstruindo APIs com Amazon API Gateway e AWS Lambda
Construindo APIs com Amazon API Gateway e AWS LambdaAmazon Web Services LATAM
 
Migrando seu workload de Big Data para o Amazon EMR
Migrando seu workload de Big Data para o Amazon EMRMigrando seu workload de Big Data para o Amazon EMR
Migrando seu workload de Big Data para o Amazon EMRAmazon Web Services LATAM
 
Developer Lounge - AWS Summit SP 2019 - Processando alta demanda de Requisições
Developer Lounge - AWS Summit SP 2019 - Processando alta demanda de RequisiçõesDeveloper Lounge - AWS Summit SP 2019 - Processando alta demanda de Requisições
Developer Lounge - AWS Summit SP 2019 - Processando alta demanda de RequisiçõesFlávio Pimenta
 
Melhores práticas de workloads Microsoft na AWS
Melhores práticas de workloads Microsoft na AWSMelhores práticas de workloads Microsoft na AWS
Melhores práticas de workloads Microsoft na AWSAmazon Web Services LATAM
 
Arquitetura Serverless e AWS Lambda - Demo Session
Arquitetura Serverless e AWS Lambda - Demo SessionArquitetura Serverless e AWS Lambda - Demo Session
Arquitetura Serverless e AWS Lambda - Demo SessionAmazon Web Services LATAM
 
Visão única de cliente através da construção de um Data Lake
Visão única de cliente através da construção de um Data Lake Visão única de cliente através da construção de um Data Lake
Visão única de cliente através da construção de um Data Lake E-Commerce Brasil
 

Mais procurados (8)

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

Semelhante a Kafka Tech Talk - Introdução ao Spring Boot + Kafka

[Datafest 2018] Apache Spark Structured Stream - Moedor de dados em tempo qua...
[Datafest 2018] Apache Spark Structured Stream - Moedor de dados em tempo qua...[Datafest 2018] Apache Spark Structured Stream - Moedor de dados em tempo qua...
[Datafest 2018] Apache Spark Structured Stream - Moedor de dados em tempo qua...Eiti Kimura
 
Conhecendo Apache Kafka
Conhecendo Apache KafkaConhecendo Apache Kafka
Conhecendo Apache KafkaRafa Noronha
 
Tecnologias para mineração de dados nas nuvens
Tecnologias para mineração de dados nas nuvensTecnologias para mineração de dados nas nuvens
Tecnologias para mineração de dados nas nuvensAlessandro Binhara
 
Python Brasil 2020 - Desmitificando pipeline de dados com Python: o que apren...
Python Brasil 2020 - Desmitificando pipeline de dados com Python: o que apren...Python Brasil 2020 - Desmitificando pipeline de dados com Python: o que apren...
Python Brasil 2020 - Desmitificando pipeline de dados com Python: o que apren...Affinitas GmbH
 
Desenvolvendo para o Windows Azure e SQL Azure
Desenvolvendo para o Windows Azure e SQL AzureDesenvolvendo para o Windows Azure e SQL Azure
Desenvolvendo para o Windows Azure e SQL AzureLuciano Condé
 
Qconsp 2016 escalando uma plataforma de e-mail transacional- aprendizado da...
Qconsp 2016   escalando uma plataforma de e-mail transacional- aprendizado da...Qconsp 2016   escalando uma plataforma de e-mail transacional- aprendizado da...
Qconsp 2016 escalando uma plataforma de e-mail transacional- aprendizado da...fabio perrella
 
Escalando uma plataforma de e-mail transacional- aprendizado das trincheiras
Escalando uma plataforma de e-mail transacional- aprendizado das trincheirasEscalando uma plataforma de e-mail transacional- aprendizado das trincheiras
Escalando uma plataforma de e-mail transacional- aprendizado das trincheirasCelso Crivelaro
 
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óveisQConSP 2014 - Cassandra no Desenvolvimento  de Aplicações para  serviços Móveis
QConSP 2014 - Cassandra no Desenvolvimento de Aplicações para serviços MóveisEiti Kimura
 
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óveisQConSP 2014 - Cassandra no Desenvolvimento de Aplicações para serviços Móveis
QConSP 2014 - Cassandra no Desenvolvimento de Aplicações para serviços MóveisDataStax Academy
 
Beehive - Conceitos de Administração e Gerenciamento e Clients End-User
Beehive - Conceitos de Administração e Gerenciamento e Clients End-UserBeehive - Conceitos de Administração e Gerenciamento e Clients End-User
Beehive - Conceitos de Administração e Gerenciamento e Clients End-UserThiago Gutierri
 
apresentação RINA FI INATEL
apresentação RINA FI INATELapresentação RINA FI INATEL
apresentação RINA FI INATELMarco Casaroli
 
Inove simplificando a infraestrutura com Kafka
Inove simplificando a infraestrutura com KafkaInove simplificando a infraestrutura com Kafka
Inove simplificando a infraestrutura com KafkaTechrom Tecnologia
 
Kafka: Uma introdução para Desenvolvedores e Arquitetos
 Kafka: Uma introdução para Desenvolvedores e Arquitetos Kafka: Uma introdução para Desenvolvedores e Arquitetos
Kafka: Uma introdução para Desenvolvedores e ArquitetosVictor Osorio
 
Palestra DataFlow - II São Paulo Perl Workshop
Palestra DataFlow - II São Paulo Perl WorkshopPalestra DataFlow - II São Paulo Perl Workshop
Palestra DataFlow - II São Paulo Perl WorkshopAlexei Znamensky
 
TDC2018FLN | Trilha Python - RASA.ai - ChatBots com inteligência artificial e...
TDC2018FLN | Trilha Python - RASA.ai - ChatBots com inteligência artificial e...TDC2018FLN | Trilha Python - RASA.ai - ChatBots com inteligência artificial e...
TDC2018FLN | Trilha Python - RASA.ai - ChatBots com inteligência artificial e...tdc-globalcode
 
Comparacao Estrategica sobre as Tecnologias de Acesso a Dados da Microsoft
Comparacao Estrategica sobre as Tecnologias de Acesso a Dados da MicrosoftComparacao Estrategica sobre as Tecnologias de Acesso a Dados da Microsoft
Comparacao Estrategica sobre as Tecnologias de Acesso a Dados da MicrosoftLuciano Condé
 
TDC2017 | POA Trilha BigData - Implementando uma arquitetura de BI e Big Data...
TDC2017 | POA Trilha BigData - Implementando uma arquitetura de BI e Big Data...TDC2017 | POA Trilha BigData - Implementando uma arquitetura de BI e Big Data...
TDC2017 | POA Trilha BigData - Implementando uma arquitetura de BI e Big Data...tdc-globalcode
 

Semelhante a Kafka Tech Talk - Introdução ao Spring Boot + Kafka (20)

[Datafest 2018] Apache Spark Structured Stream - Moedor de dados em tempo qua...
[Datafest 2018] Apache Spark Structured Stream - Moedor de dados em tempo qua...[Datafest 2018] Apache Spark Structured Stream - Moedor de dados em tempo qua...
[Datafest 2018] Apache Spark Structured Stream - Moedor de dados em tempo qua...
 
Conhecendo Apache Kafka
Conhecendo Apache KafkaConhecendo Apache Kafka
Conhecendo Apache Kafka
 
Tecnologias para mineração de dados nas nuvens
Tecnologias para mineração de dados nas nuvensTecnologias para mineração de dados nas nuvens
Tecnologias para mineração de dados nas nuvens
 
Python Brasil 2020 - Desmitificando pipeline de dados com Python: o que apren...
Python Brasil 2020 - Desmitificando pipeline de dados com Python: o que apren...Python Brasil 2020 - Desmitificando pipeline de dados com Python: o que apren...
Python Brasil 2020 - Desmitificando pipeline de dados com Python: o que apren...
 
Kafka streams
Kafka streamsKafka streams
Kafka streams
 
Big Data na Globo.com - Dev Version - 2016
Big Data na Globo.com - Dev Version - 2016Big Data na Globo.com - Dev Version - 2016
Big Data na Globo.com - Dev Version - 2016
 
Desenvolvendo para o Windows Azure e SQL Azure
Desenvolvendo para o Windows Azure e SQL AzureDesenvolvendo para o Windows Azure e SQL Azure
Desenvolvendo para o Windows Azure e SQL Azure
 
Qconsp 2016 escalando uma plataforma de e-mail transacional- aprendizado da...
Qconsp 2016   escalando uma plataforma de e-mail transacional- aprendizado da...Qconsp 2016   escalando uma plataforma de e-mail transacional- aprendizado da...
Qconsp 2016 escalando uma plataforma de e-mail transacional- aprendizado da...
 
Escalando uma plataforma de e-mail transacional- aprendizado das trincheiras
Escalando uma plataforma de e-mail transacional- aprendizado das trincheirasEscalando uma plataforma de e-mail transacional- aprendizado das trincheiras
Escalando uma plataforma de e-mail transacional- aprendizado das trincheiras
 
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óveisQConSP 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
 
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óveisQConSP 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
Beehive - Conceitos de Administração e Gerenciamento e Clients End-UserBeehive - Conceitos de Administração e Gerenciamento e Clients End-User
Beehive - Conceitos de Administração e Gerenciamento e Clients End-User
 
apresentação RINA FI INATEL
apresentação RINA FI INATELapresentação RINA FI INATEL
apresentação RINA FI INATEL
 
Inove simplificando a infraestrutura com Kafka
Inove simplificando a infraestrutura com KafkaInove simplificando a infraestrutura com Kafka
Inove simplificando a infraestrutura com Kafka
 
Kafka: Uma introdução para Desenvolvedores e Arquitetos
 Kafka: Uma introdução para Desenvolvedores e Arquitetos Kafka: Uma introdução para Desenvolvedores e Arquitetos
Kafka: Uma introdução para Desenvolvedores e Arquitetos
 
Streaming architecture with big data clusters
Streaming architecture with big data clustersStreaming architecture with big data clusters
Streaming architecture with big data clusters
 
Palestra DataFlow - II São Paulo Perl Workshop
Palestra DataFlow - II São Paulo Perl WorkshopPalestra DataFlow - II São Paulo Perl Workshop
Palestra DataFlow - II São Paulo Perl Workshop
 
TDC2018FLN | Trilha Python - RASA.ai - ChatBots com inteligência artificial e...
TDC2018FLN | Trilha Python - RASA.ai - ChatBots com inteligência artificial e...TDC2018FLN | Trilha Python - RASA.ai - ChatBots com inteligência artificial e...
TDC2018FLN | Trilha Python - RASA.ai - ChatBots com inteligência artificial e...
 
Comparacao Estrategica sobre as Tecnologias de Acesso a Dados da Microsoft
Comparacao Estrategica sobre as Tecnologias de Acesso a Dados da MicrosoftComparacao Estrategica sobre as Tecnologias de Acesso a Dados da Microsoft
Comparacao Estrategica sobre as Tecnologias de Acesso a Dados da Microsoft
 
TDC2017 | POA Trilha BigData - Implementando uma arquitetura de BI e Big Data...
TDC2017 | POA Trilha BigData - Implementando uma arquitetura de BI e Big Data...TDC2017 | POA Trilha BigData - Implementando uma arquitetura de BI e Big Data...
TDC2017 | POA Trilha BigData - Implementando uma arquitetura de BI e Big Data...
 

Kafka Tech Talk - Introdução ao Spring Boot + 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