Curso Kafka for Application Developers
24 horasVisão Geral
Neste Curso Kafka for Application Developers, você aprenderá como usar o Kafka para modernizar seus aplicativos.
- Em aplicativos modernos, as informações em tempo real são geradas continuamente por aplicativos (editores/produtores) e roteadas para outros aplicativos (assinantes/consumidores).
- Apache Kafka é um sistema de mensagens de publicação-assinatura distribuído de código aberto.
- O Kafka tem alto rendimento e foi desenvolvido para escalar horizontalmente em um modelo distribuído em vários servidores.
- O Kafka mantém as mensagens no disco e pode ser usado para consumo em lote, bem como aplicativos em tempo real.
Apache Kafka é uma plataforma de streaming de dados distribuída de código aberto. Ele foi projetado para lidar com altas taxas de fluxo de dados, permitindo que as aplicações publiquem e assinem streams de dados em larga escala.
Com o Kafka, as aplicações podem enviar e receber mensagens em tempo real, o que é útil para aplicativos de análise de dados em larga escala, processamento de transações e aplicativos de IoT (Internet das coisas). Além disso, o Kafka fornece alta disponibilidade, escalabilidade e tolerância a falhas, tornando-o uma plataforma confiável e robusta para aplicativos que exigem garantias de integridade de dados.
O Apache Kafka é amplamente utilizado por empresas de todos os tamanhos, desde pequenas startups até grandes corporações, e é amplamente considerado como uma das plataformas de streaming de dados mais avançadas disponíveis atualmente. Em resumo, o Kafka é uma plataforma poderosa e altamente escalável para lidar com fluxos de dados em larga escala, e é uma escolha popular para muitas empresas que buscam processar dados em tempo real.
Existem várias razões pelas quais você pode querer aprender Apache Kafka, incluindo:
-
Popularidade: Apache Kafka é uma das plataformas de streaming de dados mais populares e amplamente utilizadas no mercado atualmente, o que significa que há uma demanda significativa por profissionais com conhecimento em Kafka.
-
Escalabilidade: O Kafka é altamente escalável e pode lidar com fluxos de dados em larga escala, tornando-o uma escolha popular para empresas que precisam processar grandes quantidades de dados em tempo real.
-
Integração: O Kafka pode ser facilmente integrado com uma ampla gama de sistemas, incluindo bancos de dados, aplicativos e serviços na nuvem, tornando-o uma solução versátil e integrável para aplicativos de fluxo de dados.
-
Comunidade: A comunidade de desenvolvedores do Apache Kafka é ativa e forte, o que significa que você pode obter suporte e ajuda rapidamente se precisar.
-
Oportunidades de carreira: Com a demanda crescente por profissionais com conhecimento em Apache Kafka, aprender esta plataforma pode abrir novas oportunidades de carreira em áreas como análise de dados, processamento de transações, IoT e muito mais.
Em resumo, aprender Apache Kafka pode ser uma ótima maneira de ampliar seus conhecimentos técnicos, melhorar suas habilidades de resolução de problemas e abrir novas oportunidades de carreira.
O objetivo principal do Apache Kafka é fornecer uma plataforma de streaming de dados distribuída de alta performance e escalabilidade para aplicativos de análise de dados, processamento de transações e outros.
Com o Kafka, as aplicações podem publicar e assinar streams de dados em larga escala, permitindo que os dados sejam processados em tempo real. Além disso, o Kafka fornece alta disponibilidade, tolerância a falhas e escalabilidade, tornando-o uma plataforma confiável e robusta para aplicativos que exigem garantias de integridade de dados.
O objetivo geral do Apache Kafka é simplificar o processamento de grandes volumes de dados em tempo real, permitindo que as empresas e organizações façam análises avançadas, monitorem seus dados em tempo real e respondam rapidamente a eventos em sua infraestrutura. Em resumo, o objetivo do Kafka é tornar o processamento de fluxo de dados em larga escala mais simples, eficiente e confiável para aplicativos e organizações de todos os tamanhos.
Objetivo
Após realizar este Curso Kafka for Application Developers, você será capaz de:
- Entenda o uso do Kafka para mensagens de alto desempenho
- Identifique os usos do Kafka em microsserviços
- Explique os benefícios dos padrões Kafka
- Diferenciar entre mensagens e agentes de mensagens
- Descrever ambientes de mensagens Kafka
- Desenvolver produtores e consumidores para Kafka
- Reconhecer como o Kafka habilita aplicativos nativos da nuvem
- Resuma características e arquitetura para Kafka
- Demonstrar como processar mensagens com Kafka
- Projete sistemas distribuídos de alto rendimento baseados em Kafka
- Descrever o particionamento integrado, a replicação e a tolerância a falhas inerente do Kafka
Tópicos
- Introdução ao Kafka
- Usando o Apache Kafka
- Construindo pipelines de dados
- Integrando o Kafka com outros sistemas
- Kafka e Gerenciamento de Esquemas
- Kafka Streams e KSQL
- KSQL UDF e implantação
Publico Alvo
Este é um Curso Kafka for Application Developers, de introdução geral para desenvolvedores, arquitetos, integradores de sistemas, administradores de segurança, administradores de rede, engenheiros de software, indivíduos de suporte técnico, líderes e gerentes de tecnologia e consultores responsáveis por elementos de mensagens para coleta, transformação e integração de dados para sua organização que oferece suporte à modernização de aplicativos, desenvolvimento nativo da nuvem e cadeia de fornecimento de dados digitais (Big Data/IoT/AI/Machine Learning/Advanced Analytics/Business Intelligence).
Pre-Requisitos
- A compreensão básica de mensagens, nuvem, desenvolvimento, arquitetura e virtualização seria benéfica
Materiais
Inglês + Exercícios + Lab Kafka ao vivo em sala de aulaConteúdo Programatico
Introduction to Kafka
- Messaging Architectures – What is Messaging?
- Messaging Architectures – Steps to Messaging
- Messaging Architectures – Messaging Models
- What is Kafka?
- What is Kafka? (Contd.)
- Kafka Overview
- Kafka Overview (Contd.)
- Need for Kafka
- When to Use Kafka?
- Kafka Architecture
- Core concepts in Kafka
- Kafka Topic
- Kafka Partitions
- Kafka Producer
- Kafka Consumer
- Kafka Broker
- Kafka Cluster
- Why Kafka Cluster?
- Sample Multi-Broker Cluster
- Overview of ZooKeeper
- Kafka Cluster & ZooKeeper
- Who Uses Kafka?
Using Apache Kafka
- Installing Apache Kafka
- Configuration Files
- Starting Kafka
- Using Kafka Command Line Client Tools
- Setting up a Multi-Broker Cluster
- Using Multi-Broker Cluster
- Kafka Cluster Planning
- Kafka Cluster Planning – Producer/Consumer Throughput
- Kafka Cluster Planning – Number of Brokers (and ZooKeepers)
- Kafka Cluster Planning – Sizing for Topics and Partitions
- Kafka Cluster Planning – Sizing for Storage
- Kafka Connect
- Kafka Connect – Configuration Files
- Using Kafka Connect to Import/Export Data
- Creating a Spring Boot Producer
- Adding Kafka dependency to pom.xml
- Defining a Spring Boot Service to Send Message(s)
- Defining a Spring Boot Controller
- Testing the Spring Boot Producer
- Creating a Nodejs Consumer
Building Data Pipelines
- Building Data Pipelines
- What to Consider When Building Data Pipelines
- Timeliness
- Reliability
- High and Varying Throughput
- High and Varying Throughput (Contd.)
- Data Formats
- Data Formats (Contd.)
- Transformations
- Transformations - ELT
- Security
- Failure Handling
- Agility and Coupling
- Ad-hoc Pipelines
- Metadata Loss
- Extreme Processing
- Kafka Connect vs. Producer and Consumer
- Kafka Connect vs. Producer and Consumer (Contd.)
Integrating Kafka with Other Systems
- Introduction to Kafka Integration
- Kafka Connect
- Kafka Connect (Contd.)
- Running Kafka Connect Operating Modes
- Key Configurations for Connect workers:
- Kafka Connect API
- Kafka Connect Example – File Source
- Kafka Connect Example – File Sink
- Kafka Connector Example – MySQL to Elasticsearch
- Kafka Connector Example – MySQL to Elasticsearch (Contd.)
- Write the data to Elasticsearch
- Building Custom Connectors
- Kafka Connect – Connectors
- Kafka Connect - Tasks
- Kafka Connect - Workers
- Kafka Connect - Offset management
- Alternatives to Kafka Connect
- Introduction to Storm
- Integrating Storm with Kafka
- Integrating Storm with Kafka – Sample Code
- Integrating Storm with Kafka
- Integrating Hadoop with Kafka
- Hadoop Consumers
- Hadoop Consumers (Contd.)
- Hadoop Consumers – Produce Topic
- Hadoop Consumers – Fetch Generated Topic
- Kafka at Uber
- Kafka at Uber (Contd.)
- Kafka at LinkedIn
- Kafka at LinkedIn – Core Kafka Services
- Kafka at LinkedIn – Core Kafka Services (Contd.)
- Kafka at LinkedIn – Libraries
- Kafka at LinkedIn – Monitoring and Stream Processing
Kafka and Schema Management
- Evolving Schema
- Protobuf (Protocol Buffers) Overview
- Avro Overview
- Managing Data Evolution Using Schemas
- Confluent Platform
- Confluent Schema Registry
- Schema Change and Backward Compatibility
- Collaborating over Schema Change
- Handling Unreadable Messages
- Deleting Data
- Segregating Public and Private Topics
Kafka Streams and KSQL
- What Kafka can be used for?
- What Kafka can be used for? (Contd.)
- What Exactly is Kafka?
- The APIs for Stream Processing
- Kafka: A Streaming Platform
- What is KSQL?
- What is KSQL? (Contd.)
- Starting KSQL
- Using the KSQL CLI
- KSQL Data Types
- Review the Structure of an Existing STREAM
- Query the STREAM
- KSQL Functions
- Writing to a Topic
- KSQL Table vs. Stream
- KSQL JOIN
- Windows in KSQL Queries
- Miscellaneous KSQL Commands
KSQL UDF and Deployment
- KSQL Custom Functions
- KSQL UDF/UDAF
- Implement a Custom Function
- Creating UDF and UDAF
- Creating UDF and UDAF (Contd.)
- UDFs and Null Handling
- UDFs and Null Handling (Contd.)
- Sample UDF Class
- Build Engine
- UDAF
- UDAF Sample Class
- Supported Types
- Deploying Custom Functions
- Using Custom Functions
Lab Exercises
- Lab 1. Kafka Basics
- Lab 2. Kafka Multiple Brokers and Import/Export Messages
- Lab 3. Apache Kafka with Java
- Lab 4. Apache Kafka with Node.js
- Lab 5. Kafka Integration With Spark
- Lab 6. KSQL Basics
- Lab 7. KSQL Create and Deploy UDF