Mô tả

This course is structured to give you a theoretical and coding experience with Apache Kafka using SpringBoot. This course is targeted for developers who would like to build enterprise standard  Kafka Client applications using SpringBoot.

If you are looking forward to learning the below-listed things:

  • Use cases where Kafka fits really well

  • Internals of Kafka and how it works

  • Built Enterprise Standard Kafka Client Applications using Producer/Consumer API using Spring Boot

  • Unit/Integration Tests for the Kafka Client Applications

Then this is the right course for you. This is a pure hands-on oriented course where you will be learning the concepts through code.

By the end of this course, you will have a complete understanding of coding and implementing Kafka Clients using SpringBoot with Producer/Consumer API.

Getting Started with Kafka

  • In this section, I will give you all a quick introduction to Apache Kafka, terminologies and different client APIs that are part of Kafka

Download and Install Kafka

  • In this section, we will download the Kafka distribution from the Kafka Website.

Understanding Kafka Components and its Internals - (Theory + Hands-On)

In this section, we will explore the Kafka internals from a theoretical perspective followed by hands-on exploring the Kafka internals.

  • Learn about the Topics and Partitions in Kafka

  • Setup a Local Kafka Cluster with Multiple Brokers

  • Producer/Consumer messages in the Kafka Cluster

  • Learn about Consumer Offsets and Consumer Groups

  • Commit Log and Retention Policy

  • Learn about Kafka Load Distribution and Fault Tolerance and Robustness

Application OverView

  • This section covers the application that we are going to build as part of this course.

Build SpringBoot Kafka Producer - Hands-On

In this section, we will learn about building a Kafka Producer using Spring Boot.

  • Build RestAPI through which the events can be posted into the application from the outside world

  • Explore KafkaTemplate to publish the data into the Kafka Topic

  • Learn different approaches to produce the message into the Kafka

  • Learn to publish the Kafka Record using Headers

Integration Testing using JUnit5 - Hands-On

In this section, we will learn about different approaches to writing Integration tests using Embedded Kafka.

  • Write Integration test cases to interact with the API using JUnit5

  • Write Integration test cases to interact with Embedded Kafka using JUnit5

Unit Testing using JUnit5- Hands-On

In this section, we will learn about different approaches to writing unit tests Kafka Producer.

  • Write Unit Tests to the controller layer using @WebMVC annotation and MockMVC

  • Add the validations to the request payload in the endpoint

  • Write Custom Error Handler for different response codes

Kafka Producer - Sending Message With Key - Hands-On

In this section, we will learn about sending the record to Kafka Topic with Key.

Kafka Producer - Important Configurations

In this section, we will learn about different key configurations to consider when it comes to reliable message delivery to Kafka

Build SpringBoot Kafka Consumer - Hands-On

In this section, we will learn about building a Kafka Consumer using Spring Boot.

  • Set up the base consumer project library-events consumer

  • Learn about different Spring Kafka Terminologies which are necessary to configure a Kafka Consumer

  • Learn about how to configure a Kafka Consumer using the @KafkListener Annotation

  • Learn about how "Spring Boot Auto Configuration works behind the scenes for Kafka Consumer"

Consumer Groups and Consumer Offset Management- Hands-On

In this section, we will code and learn about consumer groups and offset management.

  • Demonstration how Consumer Groups plays a vital role when it comes to scalable message consumption and consumer rebalance

  • Learn about the Default consumer offset management by Kafka

  • Learn about how consumer offset can be manually managed from the application

  • Demonstration of how to achieve scalable message consumption by increasing the concurrency level to greater than 1

Persisting Library Events in DB - Using H2 InMemory DataBase

In this section, we will code and learn about integrating the DB layer into the library-events-consumer using Spring JPA.

  • Configuring the H2 In-Memory DB

  • Create LibraryEvent and Book Entity

  • Build Service Layer to process LibraryEvent - ADD Event Type

  • Build Service Layer to process LibraryEvent - MODIFY Event Type

Integration Testing using Embedded Kafka - Kafka Consumer

In this section, we will code and learn to write the Integration tests for the Kafka Consumer.

  • Configure Embedded Kafka for Integration Tests

  • Write the Integration test for posting a "NEW" LibraryEvent

  • Write the Integration test for posting an "UPDATE" LibraryEvent

  • Integration Tests for Real Databases using TestContainers

Error Handling, Retry and Recovery - Kafka Consumers

In this section, we will learn about the different error handling techniques that are available for Kafka Consumer.

  • Custom Error Handler

  • Retry in Kafka Consumer

  • Retry SpecificExceptions using Custom RetryPolicy

  • Recovery in Kafka Consumer

  • Handling Recovery in Kafka Consumer

Error Handling, Retry/Recovery - Kafka Producer

  • Error Handling in Kafka Producer

  • Retry in Kafka Producer - Broker Not Available

  • Retry in Kafka Producer - Min.in.sync.replicas

  • Retain/Recover Failed Records in Kafka Producer

By the end of this you will have a complete understand and knowledge of building enterprise standard Kafka Consumers and Producers using Spring Boot with the Unit and Integration tests using EmbeddedKafka.

Bạn sẽ học được gì

Apache Kafka and its Internals

Build Enterprise Standard Kafka Client Applications using Spring Boot

Writing Unit Tests using JUnit

Writing Integration tests using JUnit and Embedded Kafka

Build End to End application using Kafka Producer/Consumer and Spring Boot

Yêu cầu

  • Java 11 or greater is required
  • Intellij or Eclipse or Similar IDE
  • Knowledge about Spring Boot
  • Experience writing tests using JUnit
  • Gradle or Maven Knowledge is needed

Nội dung khoá học

34 sections

Getting Started With the Course

2 lectures
Course Introduction & Objectives
02:02
Pre-Requesities
01:21

Course Slides

1 lectures
Course Slides
00:01

Getting Started with Kafka

2 lectures
Introduction to Kafka
06:40
Kafka Terminologies and Client APIs
02:45

Understanding Kafka Components and its Internals - (Theory + Hands On)

12 lectures
Kafka Topics and Partitions - Theory
05:00
SetUp a Zookeeper/Kafka Broker in Local
05:37
Create Topic, Produce and Consume Messages using the CLI
04:49
Produce and Consume Messages with Key
06:44
Consumer Offsets
04:14
Consumer Groups
10:12
Commit Log and Retention Policy
07:27
Kafka as a Distributed Streaming System
04:15
Setting up a Kafka Cluster in Local with 3 Kafka Brokers
06:37
How Kafka Cluster distributes the Client Requests ? - Leader/Follower
05:48
How Kafka handles Data Loss ? - Replication and In-Sync-Replica(ISR)
09:32
Configuring min.insync.replicas
05:22

Application Overview

1 lectures
Overview of the application - Library Inventory
02:53

Source Code for this Course

1 lectures
Source Code
00:03

Build SpringBoot Kafka Producer - Hands On

13 lectures
Setting up the Base project for Library Event Kafka producer
05:14
Build the Library Event Domain
05:59
Create the POST endpoint "/libraryevent"
05:49
Introduction to Spring KafkaTemplate to Produce Messages
06:57
Configure KafkaTemplate using SpringBoot Profiles - application.yml
06:57
How Kafka SpringBoot AutoConfiguration Works? - Kafka Producer
04:54
AutoCreate TOPIC using KafkaAdmin
07:10
Build LibraryEvents Producer using KafkaTemplate - Approach1- Part1
09:34
Build LibraryEvents Producer using KafkaTemplate - Approach1- Part2
05:11
LibraryEvents Producer API - Behind the Scenes
06:00
Build LibraryEvents Producer using KafkaTemplate - Approach 2
05:05
Build LibraryEvents Producer using KafkaTemplate - Approach3
03:48
Sending KafkaRecord With Headers using KafkaTemplate
03:27

Integration Testing using JUnit5 - Hands On

5 lectures
Introduction to Automates Tests
02:07
Integration Test for POST endpoint - "/v1/libraryevent" - Part 1
03:44
Integration Test for POST endpoint - "/v1/libraryevent" - Part 2
08:53
Embedded Kafka - Introduction , Configure and Integrate in JUnit
06:12
Integrate Kafka Consumer in JUnit and Consume the record
09:06

Unit Testing using JUnit5- Hands On

4 lectures
Introduction to Unit Testing
01:32
Unit Test POST "/libraryevent" endpoint using MockMVC
09:44
Adding Validations to the LibraryEvent Payload
04:58
Custom ErrorMessages using ControllerAdvice - Handling 4xx ClientErrors
06:24

Kafka Producer - Sending Message With Key - Hands On

1 lectures
Create the PUT endpoint - "/libraryEvent"
06:24

Kafka Producer - Important Configurations

2 lectures
Kafka Producer - Important Configurations
02:44
Override the retry and retry.backoff.ms - Hands On
02:37

Build SpringBoot Kafka Consumer - Hands On

5 lectures
Set Up the Library Events Consumer Base project
04:30
Introducing Spring Kafka Consumer
04:23
Configure Kafka Consumer using SpringBoot Profiles - application.yml
04:55
Build Kafka Consumer using @KafkaListener Annotation
07:35
How Spring Boot AutoConfiguration Works ? - Kafka Consumer
06:41

Consumer Groups and Consumer Offset Management- Hands On

4 lectures
Consumer Groups and Rebalance- Hands On
05:57
Default Consumer Offset Management in Spring Kafka - Hands On
04:39
Manual Consumer Offset Management - Hands On
07:24
Concurrent Consumers - Hands On
02:57

Persisting Library Events in DB - Using H2 InMemory DataBase

4 lectures
Configuring the H2 In-Memory DB
04:57
Create LibraryEvent and Book Entity
08:56
Build Service Layer to process LibraryEvent - ADD Event Type
11:53
Build Service Layer to process LibraryEvent - MODIFY Event Type
07:28

Integration Testing using Embedded Kafka - Kafka Consumer

5 lectures
Configure Embedded Kafka for Integration Tests
08:06
Write the Integration test for posting a "NEW" LibraryEvent
09:53
Write the Integration test for posting a "UPDATE" LibraryEvent
07:36
Write the Integration test for posting an invalid UPDATE LibraryEvent
03:54
Integration Tests for Real Databases using TestContainers
02:21

Error Handling, Retry and Recovery - Kafka Consumers

11 lectures
Custom Error Handler and Custom Retry in Kafka Consumer
04:54
Add a RetryListener to monitor each Retry attempt
03:59
Retry SpecificExceptions using Custom RetryPolicy
07:24
Retry failed Records with ExponentialBackOff
03:59
Recovery in Kafka Consumer
04:45
Recovery : Publish the message to the Retry Topic
10:41
Build the RetryTopic Listener to reprocess the Message
10:13
Refactor the LibraryEventsConsumer Integration test
07:29
Recovery : Publish the message to the DeadLetter Topic
08:56
Recovery : Save the failed message to the DB
15:18
Recovery : Spring Scheduler to recover the failed message
12:27

Error Handling, Retry and Recovery - Kafka Producer

4 lectures
Error Handling in Kafka Producer
02:00
Retry in Kafka Producer - Broker Not Available
05:44
Retry in Kafka Producer - Min.in.sync.replicas
07:26
Retain/Recover Failed Records in Kafka Producer
02:24

Kafka Security using SSL : Hands-On

3 lectures
Why Kafka Security & How SSL works?
08:11
How Enterprises add/manage SSL Certificate ?
03:10
Set Up SSL Kafka Security in Local
13:45

Accessing SSL Secured Kafka Cluster using Spring Boot

2 lectures
Configuring Library Events Producer to access SSL secured Cluster
07:23
Configuring Library Events Consumer to access SSL secured Cluster
03:27

[OLD] Download and Install Kafka

1 lectures
Download and Install Kafka
03:37

[OLD] Understanding Kafka Components and its Internals - (Theory + Hands On)

12 lectures
Kafka Topics and Partitions - Theory
05:00
Set Up a ZooKeeper/Kafka Broker in Local
05:55
Create Topic, Produce and Consume Messages using the CLI
05:14
Produce and Consume Messages with Key
06:39
Consumer Offsets
04:02
Consumer Groups
07:55
Commit Log and Retention Policy
08:11
Kafka as a Distributed Streaming System
04:15
Setting up a Kafka Cluster in Local with 3 Kafka Brokers
09:54
How Kafka Cluster distributes the Client Requests ? - Leader/Follower
05:48
How Kafka handles Data Loss ? - Replication and In-Sync-Replica (ISR)
09:08
Fault Tolerance and Robustness in Kafka
02:39

[OLD] Build SpringBoot Kafka Producer - Hands On

14 lectures
Setting up the Base project for Library Event Kafka producer
05:17
Build the Library Event Domain
03:35
Create the POST endpoint "/libraryevent"
05:50
Introduction to Spring KafkaTemplate to Produce Messages - Theory
06:57
Configure KafkaTemplate using SpringBoot Profiles - application.yml
06:44
How Spring Boot AutoConfiguration Works? - Kafka Producer
04:54
AutoCreate TOPIC using KafkaAdmin
06:31
Build LibraryEvents Producer using KafkaTemplate - Approach1- Part1
12:32
Build LibraryEvents Producer using KafkaTemplate - Approach1- Part2
04:41
LibraryEvents Producer API - Behind the Scenes
04:55
Build LibraryEvents Producer using KafkaTemplate - Approach2
08:11
Build LibraryEvents Producer using KafkaTemplate - Approach3
07:09
Sending KafkaRecord With Headers using KafkaTemplate
03:35
Add LibraryEvent Type - NEW, UPDATE
03:33

[OLD] Integration Testing using JUnit5 - Hands On

5 lectures
Introduction to Automates Tests
02:07
Integration Test for POST endpoint - "/v1/libraryevent" - Part 1
03:31
Integration Test for POST endpoint - "/v1/libraryevent" - Part 2
10:33
Embedded Kafka - Introduction , Configure and Integrate in JUnit
07:56
Integrate Kafka Consumer in JUnit and Consume the record
13:03

[OLD] Unit Testing using JUnit5- Hands On

6 lectures
Introduction to Unit Testing
01:32
Unit Test POST "/libraryevent" endpoint using MockMVC
08:57
Adding Validations to the LibraryEvent Payload
04:26
Custom ErrorMessages using ControllerAdvice
08:54
Write JUnit Test for Kafka Producer - OnFailure()
10:13
Write JUnit Test for Kafka Producer - OnSuccess()
06:55

[OLD] Build SpringBoot Kafka Producer - Sending Message With Key - Hands On

3 lectures
Create the PUT endpoint - "v1/libraryEvent"
08:06
Assignment - Integration Test PUT "/libraryevent" endpoint using Embedded Kafka
1 question
Assignment - Unit Test PUT - "/libraryevent" endpoint using MockMVC
2 questions

[OLD] Kafka Producer : Important Configurations

2 lectures
Kafka Producer - Important Configurations
02:46
Configure the "acks" value as "All" - Hands On
02:58

[OLD] Build SpringBoot Kafka Consumer - Hands On

5 lectures
Set Up the Library Events Consumer Base project
05:15
Introduction to Spring Kafka Consumer - Theory
04:23
Configure Kafka Consumer using SpringBoot Profiles - application.yml
05:31
Build Kafka Consumer using @KafkaListener Annotation
07:35
How Spring Boot AutoConfiguration Works ? - Kafka Consumer
06:41

[OLD] Consumer Groups and Consumer Offset Management- Hands On

4 lectures
Consumer Groups and Rebalance- Hands On
05:57
Default Consumer Offset Management in Spring Kafka - Hands On
04:39
Manual Consumer Offset Management - Hands On
07:24
Concurrent Consumers - Hands On
02:57

[OLD] Persisting Library Events in DB - Using H2 InMemory DataBase - Hands On

4 lectures
Configuring the H2 In-Memory DB
04:50
Create LibraryEvent and Book Entity
06:15
Build Service Layer to process LibraryEvent - ADD Event Type
11:53
Build Service Layer to process LibraryEvent - MODIFY Event Type
07:28

[OLD] Integration Testing using Embedded Kafka - Kafka Consumer - Hands On

5 lectures
Configure Embedded Kafka for Integration Tests
08:06
Write the Integration test for posting a new LibraryEvent
09:53
Write the Integration test for posting a "UPDATE" LibraryEvent
07:36
Write the Integration test for posting an invalid UPDATE LibraryEvent
03:54
Integration Tests for Real Databases using TestContainers
02:21

[OLD] Error Handling, Retry and Recovery - Kafka Consumer - Hands On

11 lectures
Custom Error Handler and Custom Retry in Kafka Consumer
04:54
Add a RetryListener to monitor each Retry attempt
03:59
Retry SpecificExceptions using Custom RetryPolicy
07:24
Retry failed Records with ExponentialBackOff
03:59
Recovery in Kafka Consumer
04:45
Recovery : Publish the message to the Retry Topic
10:41
Build the RetryTopic Listener to reprocess the Message
10:13
Refactor the LibraryEventsConsumer Integration test
07:29
Recovery : Publish the message to the DeadLetter Topic
09:44
Recovery : Save the failed message to the DB
15:18
Recovery : Spring Scheduler to recover the failed message
12:27

[OLD] Error Handling, Retry and Recovery - Kafka Producer - Hands On

4 lectures
Error Handling in Kafka Producer
02:00
Retry in Kafka Producer - Broker Not Available
06:00
Retry in Kafka Producer - min.in.sync.replicas
05:47
Retain/Recover Failed Records in Kafka Producer
02:24

[OLD] Kafka Security using SSL : Hands-On

5 lectures
Why Kafka Security & How SSL works?
08:11
How Enterprises add/manage SSL Certificate ?
02:18
Set Up SSL Kafka Security in Local
16:24
Accessing Secured Kafka Cluster using CLI - Producer/Consumer Messages
08:18
2 Way Authentication - Client & Server Authentication
06:31

[OLD] Accessing SSL Secured Kafka Cluster using Spring Boot

2 lectures
Configuring Library Events Producer to access SSL secured Cluster
08:01
Configuring Library Events Consumer to access SSL secured Cluster
03:15

Đánh giá của học viên

Chưa có đánh giá
Course Rating
5
0%
4
0%
3
0%
2
0%
1
0%

Bình luận khách hàng

Viết Bình Luận

Bạn đánh giá khoá học này thế nào?

image

Đăng ký get khoá học Udemy - Unica - Gitiho giá chỉ 50k!

Get khoá học giá rẻ ngay trước khi bị fix.