Visão Geral
O curso Kafka with Spring Boot explora a integração do Apache Kafka com o framework Spring Boot, uma combinação amplamente utilizada para construir aplicações de streaming e processamento de dados em tempo real. O curso aborda desde a configuração inicial e o desenvolvimento de produtores e consumidores até práticas avançadas de monitoramento e tratamento de falhas em uma arquitetura de microsserviços.
Conteúdo Programatico
Introduction to Apache Kafka and Spring Boot
- Overview of Apache Kafka and its role in event-driven architectures.
- Introduction to Spring Boot and Spring Kafka.
- Benefits of integrating Kafka with Spring Boot applications.
Setting Up Kafka and Spring Boot Environment
- Installing and configuring Apache Kafka locally and with Docker.
- Setting up a basic Spring Boot project with Spring Kafka dependencies.
- Configuring Kafka properties in Spring Boot.
Working with Kafka Producers
- Creating and configuring Kafka producers in Spring Boot.
- Sending messages to Kafka topics using Spring Kafka templates.
- Customizing producer properties for performance and reliability.
Working with Kafka Consumers
- Creating Kafka consumers in Spring Boot.
- Consuming messages from Kafka topics and handling data processing.
- Managing consumer groups, offsets, and message acknowledgement.
Kafka Topics, Partitions, and Replication
- Creating and managing Kafka topics with multiple partitions and replication.
- Configuring topic properties for scalability and fault tolerance.
- Understanding Kafka’s partitioning strategy and impact on consumers.
Error Handling and Retries in Kafka Applications
- Implementing error handling strategies for Kafka consumers and producers.
- Configuring retries and error recovery in Spring Kafka.
- Setting up dead-letter topics for failed message processing.
Spring Boot and Kafka Streams API
- Introduction to the Kafka Streams API.
- Implementing stream processing with Kafka Streams and Spring Boot.
- Creating real-time data processing pipelines.
Transactional Messaging with Kafka
- Understanding transactions in Kafka and their importance.
- Implementing Kafka transactions in Spring Boot applications.
- Managing transactional producers and consumers for data consistency.
Testing Kafka Applications in Spring Boot
- Setting up unit and integration tests for Kafka applications.
- Using embedded Kafka brokers for testing.
- Testing producer and consumer functionality with mock data.
Monitoring and Logging in Kafka with Spring Boot
- Configuring logging for Kafka interactions in Spring Boot.
- Monitoring Kafka performance with tools like Prometheus and Grafana.
- Setting up alerts for Kafka metrics and application health.
Securing Kafka Applications
- Configuring authentication and authorization with SASL and SSL.
- Securing message transmission between producers, consumers, and brokers.
- Implementing role-based access control for Kafka topics.