SlideShare uma empresa Scribd logo
Apache Kafka
Uma introdução para Desenvolvedores e Arquitetos
Este quem vos fala...
Victor Osório
Senior Software Engineer @ Openet
Mais de 15 anos de experiência com
desenvolvimento Java
https://twitter.com/vepo
https://www.linkedin.com/in/victorosorio
https://github.com/vepo
Agenda
1. Quais problemas o Kafka Resolve?
2. Como é definida a Arquitetura de um broker Kafka?
3. Como desenhar uma arquitetura usando Kafka?
4. Usando Kafka no Java SE
5. Usando Kafka no Quarkus
Público Alvo
• Desenvolvedor Java
• Interesse em Microsserviços
• Interesse em Sistemas Distribuídos
• Interesse em Sistemas Escaláveis
Quais problemas o
Kafka Resolve?
2010’s – Internet Onipresente
Implicações
• Mais serviços existentes
• Mais acessos simultâneos
• Falência dos modelos de Arquitetura de Software
antigos
• Emergência de novos modelos de Arquitetura de
Software
Novos Desafios!
Como integrar Serviços?
S1
HTTP
Server
S3
MySQL MongoDBETL
Event Driven Architecture
• Cada serviço possui sua Base de Dados Database per servisse
• É necessário um mecanismo para garantir a integração dos serviços
• Pub/Sub middlewares
Pub/Sub
Book
Store
Order
Email Catalog
Pub/Sub Alternatives
• Amazon Kinesis.
• RabbitMQ.
• Apache Kafka.
• MuleSoft Anypoint Platform.
• Azure Event Hubs.
• PieSync.
• TIBCO Spotfire.
• IBM MQ.
• Google Cloud Pub/Sub
Porque o Apache
Kafka?
• Por causa das escolhas arquiteturais é possível
entregar:
 High-throughput: Kafka is capable of handling high-
velocity and high-volume data using not so large
hardware. It is capable of supporting message
throughput of thousands of messages per second.
 Low latency: Kafka is able to handle these messages
with very low latency of the range of milliseconds,
demanded by most of new use cases.
 Fault tolerant: The inherent capability of Kafka to be
resistant to node/machine failure within a cluster.
 Durability: The data/messages are persistent on disk,
making it durable and messages are also replicated ...
Como é definida a
Arquitetura de um
broker Kafka?
Definindo os nós
• Kafka Cluster
• Producers
• Consumers
• Stream Processors
• Connectors
APIs Kafka
• Kafka has four core APIs:
 The Producer API allows an application to publish a stream of records to one or
more Kafka topics.
 The Consumer API allows an application to subscribe to one or more topics and
process the stream of records produced to them.
 The Streams API allows an application to act as a stream processor, consuming an
input stream from one or more topics and producing an output stream to one or
more output topics, effectively transforming the input streams to output streams.
 The Connector API allows building and running reusable producers or consumers
that connect Kafka topics to existing applications or data systems. For example, a
connector to a relational database might capture every change to a table.
Fonte: https://kafka.apache.org/documentation/#gettingStarted
Enviando mensagem
Producer Kafka
Cluster
Kafka
Cluster
Kafka
Cluster
Kafka
Cluster
Kafka
Cluster Consumer
Tópico
Chave
Tópico
Chave
Enviando mensagem
• Tópico é uma categoria ou o nome do Feed/Stream
 Deve ser muito bem definido
• Chave é o identificador da Mensagem
 Pode ser nulo!
 Deve ser muito bem definido, irá determinar o comportamento do Stream!
• Mensagem é um ByteArray enviado pelo Stream
 Não pode ser nulo!
 Deve ser definido o método de Serialização e o Formato
Kafka recebendo a mensagem
• Mensagens sempre são escritas no
final de um arquivo
• Um mesmo tópico pode ter várias
partições
• De acordo com a Chave a mensagem
é enviada para uma partição
especifica
• Uma mensagem é referenciada por:
 Tópico
 Partição
 Índice
Recebendo mensagem
• Vários Consumers podem apontar para o mesmo
Tópico
• Cada tipo de Consumer é escalável
 Para ser escalável, um Tópico deve ter mais de 1 partição
• Propriedades:
 Tópico
 Partição
 Offset
• Por padrão está configurado Auto.Commit, não é
necessário fazer ACK.
 Em caso de erro, mate o processo!
• Idempotência?
Controle de offset
• O offset de leitura é controlado por GroupId!
 Cada Consumer deve ter um GroupId
 Pode haver mais de uma instância de Consumer, mas
cada um escutará um conjunto distintos de partições!
• Fiz um deploy errado!!!!!
 Reprocesse!
 How to reset Kafka Consumer Group Offset:
https://gist.github.com/vepo/8c9504b8ae0e02b0214684e1d
22920ef
 Exemplo:
 Spark, Hadoop e Microservices na SoundCloud: extraindo
informações de milhões de eventos
 https://www.infoq.com/br/presentations/spark-hadoop-e-
microservices-na-soundcloud/
Ordenação das
Mensagens
• Kafka garante a ordenação SOMENTE POR
PARTIÇÃO!!!
 Isso implica que Mensagens com mesma Chave
serão entregue ordenadas
Como desenhar uma
arquitetura usando
Kafka?
Modelando
• A modelagem deve focar em
 Qual a responsabilidade de cada Módulo
 Quais mensagens cada Módulo irá Emitir
 Quais mensagens cada Módulo irá Consumir
 Garantir Idempotência
Requisitos – Alto Nível
• Quebrar o sistema em módulos
 Sistema de BookStore
 Módulos
 Loja
 Carrinho
 Pagamentos
 Logística
 Estoque
 Fiscal
 Business Inteligence
• Definir Mensagens
 Iteração entre os times
• Definir Requisitos Não-Funcionais
 A Loja DEVE ter um tempo de resposta máximo em milissegundos por requisição
Eventos
Eventos
Requisitos
• Cada serviço deve ter
1. Consumers e Producers
2. A lógica da
Serialização/Envio/Consumo não deve
“poluir” o código
3. Eventos correlatos devem poder ser
associados
4. Garantir Idempotência
• Para isso
 Factory Pattern resolverá (1) e (2)
 Cada Evento deve ter seu Id, eventos
derivados desse devem copiar o seu Id.
Isso resolverá (3) e (4).
Usando Kafka no
Java SE
Dependências
• Usar Maven
 Group Id: org.apache.Kafka
 ArtifactId: kafka-clientes
https://mvnrepository.com/artifact/org.apache.kafka/kafka-clients
Criando Producer
Chave Descrição
bootstrap.servers é uma lista separada por vírgula de pares de host e porta que são os
endereços dos brokers Kafka em um cluster Kafka "bootstrap" ao qual um
cliente Kafka se conecta inicialmente para inicializar.
key.serializer Classe para Serializar Chave. Deve implementar
org.apache.kafka.common.serialization.Serializer
value.serializer Classe para Serializar Valor. Deve implementar
org.apache.kafka.common.serialization.Serializer
Criando Consumer
Chave Descrição
bootstrap.servers é uma lista separada por vírgula de pares de host e porta que são os endereços dos
brokers Kafka em um cluster Kafka "bootstrap" ao qual um cliente Kafka se conecta
inicialmente para inicializar.
group.id Identificador que associa esse consumer a um grupo. Esse valor é extremamente
importante para o gerenciamento das mensagens recebidas.
key.deserializer Classe para Serializar Chave. Deve implementar org.apache.kafka.common.serialization.Deserializer
value.deserializer Classe para Serializar Valor. Deve implementar org.apache.kafka.common.serialization.Deserializer
Usando Kafka no Quarkus
Dependências
• Usar Starter: https://code.quarkus.io/
 Smallrye Reactive Messaging
 Kafka Clients
Configuração
• Os valores devem ser preenchidos no application.properties
 srcmainresourcesapplication.properties
• Podem ser configurados por Variáveis de Ambiente
 https://quarkus.io/guides/config
• Mais informações: https://quarkus.io/guides/kafka
Configurando Producer
• Deve ser configurado
 Em um CDI Bean
 Usar Annotations
 @Inject
 @Channel → Vai associar a configuração correspondente
Consumer
• Deve ser configurado
 Em um CDI Bean
 Usar Annotations
 @Incoming
Demonstração!!!
Duvidas?
Não existe pergunta boba!
Obrigado!!!
• Códigos
 https://github.com/vepo/kafka-intro
• Palestras
 https://www.infoq.com/br/presentations/spark-hadoop-e-microservices-na-
soundcloud/
• Guias
 https://gist.github.com/vepo/8c9504b8ae0e02b0214684e1d22920ef

Mais conteúdo relacionado

PDF
Sistemas Distribuídos - Publish-Subscribe - Kafka
Natã Melo
 
PDF
Apache Kafka: Comunicando microsserviços com performance
Waldyr Felix
 
PPT
Testes em uma arquitetura com messageria/streaming (Kafka)
Robson Agapito Correa
 
PPTX
Conhecendo Apache Kafka
Rafa Noronha
 
PDF
데브시스터즈 데이터 레이크 구축 이야기 : Data Lake architecture case study (박주홍 데이터 분석 및 인프라 팀...
Amazon Web Services Korea
 
PPTX
Performance Optimizations in Apache Impala
Cloudera, Inc.
 
PPTX
Kafka presentation
Mohammed Fazuluddin
 
PPTX
分散トレーシングAWS:X-Rayとの上手い付き合い方
Recruit Lifestyle Co., Ltd.
 
Sistemas Distribuídos - Publish-Subscribe - Kafka
Natã Melo
 
Apache Kafka: Comunicando microsserviços com performance
Waldyr Felix
 
Testes em uma arquitetura com messageria/streaming (Kafka)
Robson Agapito Correa
 
Conhecendo Apache Kafka
Rafa Noronha
 
데브시스터즈 데이터 레이크 구축 이야기 : Data Lake architecture case study (박주홍 데이터 분석 및 인프라 팀...
Amazon Web Services Korea
 
Performance Optimizations in Apache Impala
Cloudera, Inc.
 
Kafka presentation
Mohammed Fazuluddin
 
分散トレーシングAWS:X-Rayとの上手い付き合い方
Recruit Lifestyle Co., Ltd.
 

Mais procurados (20)

PDF
Fundamentals of Apache Kafka
Chhavi Parasher
 
PPTX
Apache kafka
Jemin Patel
 
PDF
Internal Architecture of Amazon Aurora (Level 400) - 발표자: 정달영, APAC RDS Speci...
Amazon Web Services Korea
 
PDF
[JAWS DAYS 2019] Amazon DocumentDB(with MongoDB Compatibility)入門
Shuji Kikuchi
 
PPTX
Introduction to Kafka and Zookeeper
Rahul Jain
 
PPTX
ORC File - Optimizing Your Big Data
DataWorks Summit
 
PDF
Apache kafka performance(latency)_benchmark_v0.3
SANG WON PARK
 
PPT
Data Loss and Duplication in Kafka
Jayesh Thakrar
 
PPTX
Getting the most out of MariaDB MaxScale
MariaDB plc
 
PPTX
Apache kafka
Viswanath J
 
PDF
Cloud DW technology trends and considerations for enterprises to apply snowflake
SANG WON PARK
 
PDF
Jenkins를 활용한 Openshift CI/CD 구성
rockplace
 
PDF
SOS: Optimizing Shuffle I/O with Brian Cho and Ergin Seyfe
Databricks
 
PPTX
When it Absolutely, Positively, Has to be There: Reliability Guarantees in Ka...
confluent
 
PDF
Apache kafka 모니터링을 위한 Metrics 이해 및 최적화 방안
SANG WON PARK
 
PPTX
Apache Con 2021 : Apache Bookkeeper Key Value Store and use cases
Shivji Kumar Jha
 
PPTX
Apache BookKeeper Distributed Store- a Salesforce use case
Salesforce Engineering
 
PDF
MySQL Cluster performance best practices
Mat Keep
 
PPTX
Ambari: Agent Registration Flow
Hortonworks
 
PDF
A Deep Dive into Kafka Controller
confluent
 
Fundamentals of Apache Kafka
Chhavi Parasher
 
Apache kafka
Jemin Patel
 
Internal Architecture of Amazon Aurora (Level 400) - 발표자: 정달영, APAC RDS Speci...
Amazon Web Services Korea
 
[JAWS DAYS 2019] Amazon DocumentDB(with MongoDB Compatibility)入門
Shuji Kikuchi
 
Introduction to Kafka and Zookeeper
Rahul Jain
 
ORC File - Optimizing Your Big Data
DataWorks Summit
 
Apache kafka performance(latency)_benchmark_v0.3
SANG WON PARK
 
Data Loss and Duplication in Kafka
Jayesh Thakrar
 
Getting the most out of MariaDB MaxScale
MariaDB plc
 
Apache kafka
Viswanath J
 
Cloud DW technology trends and considerations for enterprises to apply snowflake
SANG WON PARK
 
Jenkins를 활용한 Openshift CI/CD 구성
rockplace
 
SOS: Optimizing Shuffle I/O with Brian Cho and Ergin Seyfe
Databricks
 
When it Absolutely, Positively, Has to be There: Reliability Guarantees in Ka...
confluent
 
Apache kafka 모니터링을 위한 Metrics 이해 및 최적화 방안
SANG WON PARK
 
Apache Con 2021 : Apache Bookkeeper Key Value Store and use cases
Shivji Kumar Jha
 
Apache BookKeeper Distributed Store- a Salesforce use case
Salesforce Engineering
 
MySQL Cluster performance best practices
Mat Keep
 
Ambari: Agent Registration Flow
Hortonworks
 
A Deep Dive into Kafka Controller
confluent
 
Anúncio

Semelhante a Kafka: Uma introdução para Desenvolvedores e Arquitetos (20)

PDF
Template_Faculdade_Apache Kafka.pdf
Valdir Adorni
 
PDF
Ebook Apache Server: Guia Introdutório
Fernando Palma
 
PDF
Integrações e o ecossistema Java - Fabric8 ao Resgate!
Leandro Gomes
 
KEY
Projeto Octopus - Database Sharding para ActiveRecord
tchandy
 
PDF
Kafka streams
Bruno Horta
 
PDF
Ruby on Rails: um estudo de viabilidade em ambientes empresariais
Rodrigo Recio
 
PDF
Construindo APIs com Amazon API Gateway e AWS Lambda
Amazon Web Services LATAM
 
PPTX
NodeJS - Tutorial de forma simples e pratica.
Filipe Morelli
 
PPTX
Construindo APIs com Amazon API Gateway e AWS Lambda
Amazon Web Services LATAM
 
PPTX
Construindo APIs com Amazon API Gateway e AWS Lambda
Amazon Web Services LATAM
 
PPTX
Construindo APIs com Amazon API Gateway e AWS Lambda
Amazon Web Services LATAM
 
PPTX
O Futuro do ASP.NET
Eduardo Pires
 
PPTX
Começando com aplicações serverless na AWS
Amazon Web Services LATAM
 
PPTX
AWS
melidevelopers
 
PDF
5. rodando containers docker na aws
Amazon Web Services LATAM
 
PPTX
ASP.NET Core APIs: Performance Tips
Andre Baltieri
 
PDF
Docker.io:
Alexandre Teles
 
PPTX
Release contínuo de um microsserviço com Docker ASP.net core e Azure Containe...
Giovanni Bassi
 
PDF
Três anos de Scala em Produção: desafios, aprendizados e dores de cabeça
Felipe Hummel
 
ODP
Apache e Java
Glaucio Scheibel
 
Template_Faculdade_Apache Kafka.pdf
Valdir Adorni
 
Ebook Apache Server: Guia Introdutório
Fernando Palma
 
Integrações e o ecossistema Java - Fabric8 ao Resgate!
Leandro Gomes
 
Projeto Octopus - Database Sharding para ActiveRecord
tchandy
 
Kafka streams
Bruno Horta
 
Ruby on Rails: um estudo de viabilidade em ambientes empresariais
Rodrigo Recio
 
Construindo APIs com Amazon API Gateway e AWS Lambda
Amazon Web Services LATAM
 
NodeJS - Tutorial de forma simples e pratica.
Filipe Morelli
 
Construindo APIs com Amazon API Gateway e AWS Lambda
Amazon Web Services LATAM
 
Construindo APIs com Amazon API Gateway e AWS Lambda
Amazon Web Services LATAM
 
Construindo APIs com Amazon API Gateway e AWS Lambda
Amazon Web Services LATAM
 
O Futuro do ASP.NET
Eduardo Pires
 
Começando com aplicações serverless na AWS
Amazon Web Services LATAM
 
5. rodando containers docker na aws
Amazon Web Services LATAM
 
ASP.NET Core APIs: Performance Tips
Andre Baltieri
 
Docker.io:
Alexandre Teles
 
Release contínuo de um microsserviço com Docker ASP.net core e Azure Containe...
Giovanni Bassi
 
Três anos de Scala em Produção: desafios, aprendizados e dores de cabeça
Felipe Hummel
 
Apache e Java
Glaucio Scheibel
 
Anúncio

Kafka: Uma introdução para Desenvolvedores e Arquitetos

  • 1. Apache Kafka Uma introdução para Desenvolvedores e Arquitetos
  • 2. Este quem vos fala... Victor Osório Senior Software Engineer @ Openet Mais de 15 anos de experiência com desenvolvimento Java https://twitter.com/vepo https://www.linkedin.com/in/victorosorio https://github.com/vepo
  • 3. Agenda 1. Quais problemas o Kafka Resolve? 2. Como é definida a Arquitetura de um broker Kafka? 3. Como desenhar uma arquitetura usando Kafka? 4. Usando Kafka no Java SE 5. Usando Kafka no Quarkus
  • 4. Público Alvo • Desenvolvedor Java • Interesse em Microsserviços • Interesse em Sistemas Distribuídos • Interesse em Sistemas Escaláveis
  • 6. 2010’s – Internet Onipresente
  • 7. Implicações • Mais serviços existentes • Mais acessos simultâneos • Falência dos modelos de Arquitetura de Software antigos • Emergência de novos modelos de Arquitetura de Software Novos Desafios!
  • 9. Event Driven Architecture • Cada serviço possui sua Base de Dados Database per servisse • É necessário um mecanismo para garantir a integração dos serviços • Pub/Sub middlewares Pub/Sub Book Store Order Email Catalog
  • 10. Pub/Sub Alternatives • Amazon Kinesis. • RabbitMQ. • Apache Kafka. • MuleSoft Anypoint Platform. • Azure Event Hubs. • PieSync. • TIBCO Spotfire. • IBM MQ. • Google Cloud Pub/Sub
  • 11. Porque o Apache Kafka? • Por causa das escolhas arquiteturais é possível entregar:  High-throughput: Kafka is capable of handling high- velocity and high-volume data using not so large hardware. It is capable of supporting message throughput of thousands of messages per second.  Low latency: Kafka is able to handle these messages with very low latency of the range of milliseconds, demanded by most of new use cases.  Fault tolerant: The inherent capability of Kafka to be resistant to node/machine failure within a cluster.  Durability: The data/messages are persistent on disk, making it durable and messages are also replicated ...
  • 12. Como é definida a Arquitetura de um broker Kafka?
  • 13. Definindo os nós • Kafka Cluster • Producers • Consumers • Stream Processors • Connectors
  • 14. APIs Kafka • Kafka has four core APIs:  The Producer API allows an application to publish a stream of records to one or more Kafka topics.  The Consumer API allows an application to subscribe to one or more topics and process the stream of records produced to them.  The Streams API allows an application to act as a stream processor, consuming an input stream from one or more topics and producing an output stream to one or more output topics, effectively transforming the input streams to output streams.  The Connector API allows building and running reusable producers or consumers that connect Kafka topics to existing applications or data systems. For example, a connector to a relational database might capture every change to a table. Fonte: https://kafka.apache.org/documentation/#gettingStarted
  • 16. Enviando mensagem • Tópico é uma categoria ou o nome do Feed/Stream  Deve ser muito bem definido • Chave é o identificador da Mensagem  Pode ser nulo!  Deve ser muito bem definido, irá determinar o comportamento do Stream! • Mensagem é um ByteArray enviado pelo Stream  Não pode ser nulo!  Deve ser definido o método de Serialização e o Formato
  • 17. Kafka recebendo a mensagem • Mensagens sempre são escritas no final de um arquivo • Um mesmo tópico pode ter várias partições • De acordo com a Chave a mensagem é enviada para uma partição especifica • Uma mensagem é referenciada por:  Tópico  Partição  Índice
  • 18. Recebendo mensagem • Vários Consumers podem apontar para o mesmo Tópico • Cada tipo de Consumer é escalável  Para ser escalável, um Tópico deve ter mais de 1 partição • Propriedades:  Tópico  Partição  Offset • Por padrão está configurado Auto.Commit, não é necessário fazer ACK.  Em caso de erro, mate o processo! • Idempotência?
  • 19. Controle de offset • O offset de leitura é controlado por GroupId!  Cada Consumer deve ter um GroupId  Pode haver mais de uma instância de Consumer, mas cada um escutará um conjunto distintos de partições! • Fiz um deploy errado!!!!!  Reprocesse!  How to reset Kafka Consumer Group Offset: https://gist.github.com/vepo/8c9504b8ae0e02b0214684e1d 22920ef  Exemplo:  Spark, Hadoop e Microservices na SoundCloud: extraindo informações de milhões de eventos  https://www.infoq.com/br/presentations/spark-hadoop-e- microservices-na-soundcloud/
  • 20. Ordenação das Mensagens • Kafka garante a ordenação SOMENTE POR PARTIÇÃO!!!  Isso implica que Mensagens com mesma Chave serão entregue ordenadas
  • 22. Modelando • A modelagem deve focar em  Qual a responsabilidade de cada Módulo  Quais mensagens cada Módulo irá Emitir  Quais mensagens cada Módulo irá Consumir  Garantir Idempotência
  • 23. Requisitos – Alto Nível • Quebrar o sistema em módulos  Sistema de BookStore  Módulos  Loja  Carrinho  Pagamentos  Logística  Estoque  Fiscal  Business Inteligence • Definir Mensagens  Iteração entre os times • Definir Requisitos Não-Funcionais  A Loja DEVE ter um tempo de resposta máximo em milissegundos por requisição
  • 26. Requisitos • Cada serviço deve ter 1. Consumers e Producers 2. A lógica da Serialização/Envio/Consumo não deve “poluir” o código 3. Eventos correlatos devem poder ser associados 4. Garantir Idempotência • Para isso  Factory Pattern resolverá (1) e (2)  Cada Evento deve ter seu Id, eventos derivados desse devem copiar o seu Id. Isso resolverá (3) e (4).
  • 28. Dependências • Usar Maven  Group Id: org.apache.Kafka  ArtifactId: kafka-clientes https://mvnrepository.com/artifact/org.apache.kafka/kafka-clients
  • 29. Criando Producer Chave Descrição bootstrap.servers é uma lista separada por vírgula de pares de host e porta que são os endereços dos brokers Kafka em um cluster Kafka "bootstrap" ao qual um cliente Kafka se conecta inicialmente para inicializar. key.serializer Classe para Serializar Chave. Deve implementar org.apache.kafka.common.serialization.Serializer value.serializer Classe para Serializar Valor. Deve implementar org.apache.kafka.common.serialization.Serializer
  • 30. Criando Consumer Chave Descrição bootstrap.servers é uma lista separada por vírgula de pares de host e porta que são os endereços dos brokers Kafka em um cluster Kafka "bootstrap" ao qual um cliente Kafka se conecta inicialmente para inicializar. group.id Identificador que associa esse consumer a um grupo. Esse valor é extremamente importante para o gerenciamento das mensagens recebidas. key.deserializer Classe para Serializar Chave. Deve implementar org.apache.kafka.common.serialization.Deserializer value.deserializer Classe para Serializar Valor. Deve implementar org.apache.kafka.common.serialization.Deserializer
  • 31. Usando Kafka no Quarkus
  • 32. Dependências • Usar Starter: https://code.quarkus.io/  Smallrye Reactive Messaging  Kafka Clients
  • 33. Configuração • Os valores devem ser preenchidos no application.properties  srcmainresourcesapplication.properties • Podem ser configurados por Variáveis de Ambiente  https://quarkus.io/guides/config • Mais informações: https://quarkus.io/guides/kafka
  • 34. Configurando Producer • Deve ser configurado  Em um CDI Bean  Usar Annotations  @Inject  @Channel → Vai associar a configuração correspondente
  • 35. Consumer • Deve ser configurado  Em um CDI Bean  Usar Annotations  @Incoming
  • 38. Obrigado!!! • Códigos  https://github.com/vepo/kafka-intro • Palestras  https://www.infoq.com/br/presentations/spark-hadoop-e-microservices-na- soundcloud/ • Guias  https://gist.github.com/vepo/8c9504b8ae0e02b0214684e1d22920ef