SlideShare uma empresa Scribd logo
1 de 23
Baixar para ler offline
Felipe Lopes
Software Engineer
- Sistema de processamento de stream de dados em real
time / sistema de mensagem publish-subscribe distribuído:
- Persistência de mensagens com estrutura de disco O(1);
- Alto throughput: centenas de milhares de
mensagens/seg até em hardwares mais modestos;
- Clusterização no DNA: suporte a particionamento de
mensagens por entre servidores Kafka;
Apache Kafka
- Produto interno do LinkedIn;
- Open-sourced em 2011 e absolvido pela Apache
Foundation em 2012;
- Em 2014 engenheiros do LinkedIn criaram a Confluent,
empresa com foco em Kafka;
- Escrito em Scala e Java;
- Referência ao escritor alemão do século XX Franz Kafka;
Background
- Complexidade de integração:
- Sistema de registros;
- Ordenamento;
- Escalabilidade;
Data Integration
- POST
- PUT
- To “Pipe”
- To SQL;
- To Data
Lake;
Eventos
- Manter histórico de registros;
- Voltar no tempo (Allons-y);
- Reprocessamento;
Stream como registro
- Escalabilidade horizontal;
- Clusterização;
Escalabilidade
- Evento de criação antes de atualização;
Ordenamento
- Consumers distintos podem ter velocidades de
processamento distintas;
Pull over Push
Mais nodes = maior
throughput
Performance Linear
- Hub de eventos;
- Data pipeline;
- Entry point de Big data
(buffer);
Use cases
Event Hub
Semânticas
- Key, value, Timestamp;
- Imutável;
- Apenas inclusão;
- Persistido em disco;
Records
- Broker = nó no cluster;
- Producer escreve records
em um broker;
- Consumers leem records
em um broker;
- Líder / seguidor para
distribuição do cluster;
Producer & Consumer
- Tópico = nomenclatura
lógica para 1 ou mais
partições;
- Partições são replicadas;
- Ordenamento é garantido
apenas para uma partição;
Topics & Partitions
- ID único sequencial (por
partição);
- Consumers ou Kafka
mantêm o track do offset;
- Benefícios: Replay,
consumers com diferentes
velocidades, etc.
Offsets
- Escreve para o líder da
partição;
- Partições podem ser feitas
manualmente, baseadas
em uma chave ou
automáticas;
- Fator de replicação é
baseado no Tópico;
Particionamento
- Nome lógico para 1 ou mais
consumers;
- Consumo das mensagens é
feito em load balance por
entre todos os consumers
em um grupo;
Consumer groups
- Compressão de log (opcional);
- Disco não memória;
- Partições e líderes balanceados automaticamente;
- Heroku Kafka;
Cool features
- JVM é o oficial;
- Maioria das outras plataformas, pela comunidade;
- Confluent mantém clients C#, Go e Python;
- Baseado em polling;
Clients
Show me the code
Felipe Lopes
Software Engineer
felipe.lopes@socialminer.com
@OLopesFelipe
linkedin.com/in/felipelopes01
github.com/lopes-felipe
Seja um Miner
99jobs.com/social-miner/jobs

Mais conteúdo relacionado

Mais procurados

Samba, Squid, FTP, DHCP1
Samba, Squid, FTP, DHCP1Samba, Squid, FTP, DHCP1
Samba, Squid, FTP, DHCP1SoftD Abreu
 
Alta disponibilidade com PostgreSQL
Alta disponibilidade com PostgreSQLAlta disponibilidade com PostgreSQL
Alta disponibilidade com PostgreSQLLeonardo Cezar
 
Integração Windows e Linux com Samba
Integração Windows e Linux com SambaIntegração Windows e Linux com Samba
Integração Windows e Linux com Sambaelliando dias
 
Redes prática - Samba
Redes prática - SambaRedes prática - Samba
Redes prática - SambaLuiz Arthur
 
NFS – Network File System
NFS – Network File SystemNFS – Network File System
NFS – Network File SystemMarlon Munhoz
 
Otimizacao de websites em PHP
Otimizacao de websites em PHPOtimizacao de websites em PHP
Otimizacao de websites em PHPFelipe Ribeiro
 
Guia de configuração de um servidor linux para utilização em uma pequena empresa
Guia de configuração de um servidor linux para utilização em uma pequena empresaGuia de configuração de um servidor linux para utilização em uma pequena empresa
Guia de configuração de um servidor linux para utilização em uma pequena empresaSoftD Abreu
 
Escalabilidade horizontal com PostgreSQL e Pgpool II
Escalabilidade horizontal com PostgreSQL e Pgpool IIEscalabilidade horizontal com PostgreSQL e Pgpool II
Escalabilidade horizontal com PostgreSQL e Pgpool IIMatheus Espanhol
 
Percona XtraBackup
Percona XtraBackupPercona XtraBackup
Percona XtraBackupWebgoal
 

Mais procurados (20)

Roteiro nfs
Roteiro nfsRoteiro nfs
Roteiro nfs
 
Samba, Squid, FTP, DHCP1
Samba, Squid, FTP, DHCP1Samba, Squid, FTP, DHCP1
Samba, Squid, FTP, DHCP1
 
Servidor apache
Servidor apacheServidor apache
Servidor apache
 
Alta disponibilidade com PostgreSQL
Alta disponibilidade com PostgreSQLAlta disponibilidade com PostgreSQL
Alta disponibilidade com PostgreSQL
 
Samba4+debian8
Samba4+debian8Samba4+debian8
Samba4+debian8
 
Minicurso Samba
Minicurso SambaMinicurso Samba
Minicurso Samba
 
Integração Windows e Linux com Samba
Integração Windows e Linux com SambaIntegração Windows e Linux com Samba
Integração Windows e Linux com Samba
 
Linux - Servidor Web Apache
Linux - Servidor Web ApacheLinux - Servidor Web Apache
Linux - Servidor Web Apache
 
Samba configurando
Samba   configurandoSamba   configurando
Samba configurando
 
Redes prática - Samba
Redes prática - SambaRedes prática - Samba
Redes prática - Samba
 
Servidores WEB
Servidores WEBServidores WEB
Servidores WEB
 
Clusters
ClustersClusters
Clusters
 
Slides nginx
Slides nginxSlides nginx
Slides nginx
 
NFS – Network File System
NFS – Network File SystemNFS – Network File System
NFS – Network File System
 
GlusterFs
GlusterFsGlusterFs
GlusterFs
 
Otimizacao de websites em PHP
Otimizacao de websites em PHPOtimizacao de websites em PHP
Otimizacao de websites em PHP
 
Guia de configuração de um servidor linux para utilização em uma pequena empresa
Guia de configuração de um servidor linux para utilização em uma pequena empresaGuia de configuração de um servidor linux para utilização em uma pequena empresa
Guia de configuração de um servidor linux para utilização em uma pequena empresa
 
Escalabilidade horizontal com PostgreSQL e Pgpool II
Escalabilidade horizontal com PostgreSQL e Pgpool IIEscalabilidade horizontal com PostgreSQL e Pgpool II
Escalabilidade horizontal com PostgreSQL e Pgpool II
 
Percona XtraBackup
Percona XtraBackupPercona XtraBackup
Percona XtraBackup
 
Kernel Linux
Kernel LinuxKernel Linux
Kernel Linux
 

Semelhante a Kafka introdução

Apache Kafka: Comunicando microsserviços com performance
Apache Kafka: Comunicando microsserviços com performanceApache Kafka: Comunicando microsserviços com performance
Apache Kafka: Comunicando microsserviços com performanceWaldyr Felix
 
Conhecendo Apache Kafka
Conhecendo Apache KafkaConhecendo Apache Kafka
Conhecendo Apache KafkaRafa Noronha
 
Semana Acadêmica ICET - Feevale - 12/04/2014
Semana Acadêmica ICET - Feevale - 12/04/2014Semana Acadêmica ICET - Feevale - 12/04/2014
Semana Acadêmica ICET - Feevale - 12/04/2014Getup Cloud
 
Adequação do servidor Proxy/Cache Squid a redes de extrema carga
Adequação do servidor Proxy/Cache Squid a redes de extrema cargaAdequação do servidor Proxy/Cache Squid a redes de extrema carga
Adequação do servidor Proxy/Cache Squid a redes de extrema cargaLucas Brasilino
 
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
 
Skytools, pgbouncer e plproxy
Skytools, pgbouncer e plproxySkytools, pgbouncer e plproxy
Skytools, pgbouncer e plproxyFernando Ike
 
Estou seguro com no sql
Estou seguro com no sqlEstou seguro com no sql
Estou seguro com no sqlRafael Redondo
 
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
 
DBA Brasil 2.0 NOSql Apache Cassandra para DBAs
DBA Brasil 2.0   NOSql Apache Cassandra para DBAsDBA Brasil 2.0   NOSql Apache Cassandra para DBAs
DBA Brasil 2.0 NOSql Apache Cassandra para DBAsRonaldo Leite Martins
 
Tirando o coelho da cartola: integrando sistemas com RabbitMQ
Tirando o coelho da cartola: integrando sistemas com RabbitMQTirando o coelho da cartola: integrando sistemas com RabbitMQ
Tirando o coelho da cartola: integrando sistemas com RabbitMQNelson Senna do Amaral
 
07 - Osvaldo Daibert - Cenários para cache de dados distribuidos
07  - Osvaldo Daibert - Cenários para cache de dados distribuidos07  - Osvaldo Daibert - Cenários para cache de dados distribuidos
07 - Osvaldo Daibert - Cenários para cache de dados distribuidosDNAD
 
Apostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em LinuxApostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em Linuxeliezer
 
Apostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em LinuxApostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em Linuxeliezer
 
Apostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em LinuxApostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em Linuxguest7a481e8
 

Semelhante a Kafka introdução (20)

Apache Kafka: Comunicando microsserviços com performance
Apache Kafka: Comunicando microsserviços com performanceApache Kafka: Comunicando microsserviços com performance
Apache Kafka: Comunicando microsserviços com performance
 
Conhecendo Apache Kafka
Conhecendo Apache KafkaConhecendo Apache Kafka
Conhecendo Apache Kafka
 
Semana Acadêmica ICET - Feevale - 12/04/2014
Semana Acadêmica ICET - Feevale - 12/04/2014Semana Acadêmica ICET - Feevale - 12/04/2014
Semana Acadêmica ICET - Feevale - 12/04/2014
 
Adequação do servidor Proxy/Cache Squid a redes de extrema carga
Adequação do servidor Proxy/Cache Squid a redes de extrema cargaAdequação do servidor Proxy/Cache Squid a redes de extrema carga
Adequação do servidor Proxy/Cache Squid a redes de extrema carga
 
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
 
NoSQL Livre
NoSQL LivreNoSQL Livre
NoSQL Livre
 
Appi303 daibert
Appi303   daibertAppi303   daibert
Appi303 daibert
 
PostgreSQL Conceitos e aplicações
PostgreSQL  Conceitos e aplicaçõesPostgreSQL  Conceitos e aplicações
PostgreSQL Conceitos e aplicações
 
Kafka streams
Kafka streamsKafka streams
Kafka streams
 
Skytools, pgbouncer e plproxy
Skytools, pgbouncer e plproxySkytools, pgbouncer e plproxy
Skytools, pgbouncer e plproxy
 
Estou seguro com no sql
Estou seguro com no sqlEstou seguro com no sql
Estou seguro com no sql
 
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
 
Arch Linux
Arch LinuxArch Linux
Arch Linux
 
DBA Brasil 2.0 NOSql Apache Cassandra para DBAs
DBA Brasil 2.0   NOSql Apache Cassandra para DBAsDBA Brasil 2.0   NOSql Apache Cassandra para DBAs
DBA Brasil 2.0 NOSql Apache Cassandra para DBAs
 
Tirando o coelho da cartola: integrando sistemas com RabbitMQ
Tirando o coelho da cartola: integrando sistemas com RabbitMQTirando o coelho da cartola: integrando sistemas com RabbitMQ
Tirando o coelho da cartola: integrando sistemas com RabbitMQ
 
07 - Osvaldo Daibert - Cenários para cache de dados distribuidos
07  - Osvaldo Daibert - Cenários para cache de dados distribuidos07  - Osvaldo Daibert - Cenários para cache de dados distribuidos
07 - Osvaldo Daibert - Cenários para cache de dados distribuidos
 
Apostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em LinuxApostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em Linux
 
Apostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em LinuxApostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em Linux
 
Apostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em LinuxApostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em Linux
 
Artigo ipv6
Artigo ipv6Artigo ipv6
Artigo ipv6
 

Kafka introdução

  • 2. - Sistema de processamento de stream de dados em real time / sistema de mensagem publish-subscribe distribuído: - Persistência de mensagens com estrutura de disco O(1); - Alto throughput: centenas de milhares de mensagens/seg até em hardwares mais modestos; - Clusterização no DNA: suporte a particionamento de mensagens por entre servidores Kafka; Apache Kafka
  • 3. - Produto interno do LinkedIn; - Open-sourced em 2011 e absolvido pela Apache Foundation em 2012; - Em 2014 engenheiros do LinkedIn criaram a Confluent, empresa com foco em Kafka; - Escrito em Scala e Java; - Referência ao escritor alemão do século XX Franz Kafka; Background
  • 4. - Complexidade de integração: - Sistema de registros; - Ordenamento; - Escalabilidade; Data Integration
  • 5. - POST - PUT - To “Pipe” - To SQL; - To Data Lake; Eventos
  • 6. - Manter histórico de registros; - Voltar no tempo (Allons-y); - Reprocessamento; Stream como registro
  • 7. - Escalabilidade horizontal; - Clusterização; Escalabilidade
  • 8. - Evento de criação antes de atualização; Ordenamento
  • 9. - Consumers distintos podem ter velocidades de processamento distintas; Pull over Push
  • 10. Mais nodes = maior throughput Performance Linear
  • 11. - Hub de eventos; - Data pipeline; - Entry point de Big data (buffer); Use cases
  • 14. - Key, value, Timestamp; - Imutável; - Apenas inclusão; - Persistido em disco; Records
  • 15. - Broker = nó no cluster; - Producer escreve records em um broker; - Consumers leem records em um broker; - Líder / seguidor para distribuição do cluster; Producer & Consumer
  • 16. - Tópico = nomenclatura lógica para 1 ou mais partições; - Partições são replicadas; - Ordenamento é garantido apenas para uma partição; Topics & Partitions
  • 17. - ID único sequencial (por partição); - Consumers ou Kafka mantêm o track do offset; - Benefícios: Replay, consumers com diferentes velocidades, etc. Offsets
  • 18. - Escreve para o líder da partição; - Partições podem ser feitas manualmente, baseadas em uma chave ou automáticas; - Fator de replicação é baseado no Tópico; Particionamento
  • 19. - Nome lógico para 1 ou mais consumers; - Consumo das mensagens é feito em load balance por entre todos os consumers em um grupo; Consumer groups
  • 20. - Compressão de log (opcional); - Disco não memória; - Partições e líderes balanceados automaticamente; - Heroku Kafka; Cool features
  • 21. - JVM é o oficial; - Maioria das outras plataformas, pela comunidade; - Confluent mantém clients C#, Go e Python; - Baseado em polling; Clients
  • 22. Show me the code