
Explore how Apache Kafka enables end-to-end messaging and streaming with brokers, producers, consumers, topics, and Zookeeper. See its open-source nature, ELK stack compatibility for visualization, and clustering for data availability.
Install kafka and its components by setting up zookeeper as the heart of kafka and creating a three-node cluster. Configure data and logs, zoo.cfg, myid, and start zookeeper with zkServer.cmd.
Master the Windows installation of zookeeper for Kafka by configuring Java_HOME and launching a three-node zookeeper cluster. Troubleshoot port 2181 and config issues to bring all nodes online.
Set up a three-node Kafka cluster with unique broker IDs and separate log directories, then create a topic with the Kafka topics batch file using bootstrap servers 9093, 9094, 9095.
Learn how topics are partitioned into partitions, apply replication factor for high availability, and manage topics with list and describe commands.
Learn how Kafka clusters designate a leader per partition to manage producer messages and replicate to in-sync replicas (ISR) for high availability.
Explore how Kafka and ZooKeeper handle failures, from node outages to broker downtime, through leader rebalancing, partitions, and replication for high availability.
Explore how kafka topic creation, partition counts, and replication factors work, including why replication cannot be changed post-creation and how to alter partitions with json-based configurations.
Start a producer and consumer on topic test one, publish messages, and observe how Kafka rebalances partition leaders across brokers to maintain high availability when a broker goes down.
Demonstrates how Kafka servers behave when all Zookeeper nodes go down, with ISR expanding and producers and consumers continuing to operate, even as topic creation tests report errors.
Explore how Kafka nodes rely on zookeeper to register topic metadata, handle timeouts, and maintain cluster health; learn how zookeeper failures affect topic creation, broker availability, and recovery.
Kafka custom producer part 1 teaches how to build custom producers using the Java API for Kafka, detailing required properties like bootstrap servers, key and value serializers, acks, and retries.
Develop and run a custom kafka producer that continuously sends string key/value records to a topic in an infinite loop, using producer and producer record with runtime confirmations.
Compile and run a custom Kafka producer against a demo topic, with Zookeeper and broker setup. Test end-to-end data flow by consuming produced messages with a Kafka console consumer.
build a java kafka custom consumer by configuring bootstrap servers and string deserializers, enabling auto commit and session timeout, then subscribe to a topic with a mandatory topic name.
Explore how a Kafka consumer reads topic data in an infinite loop using poll, holds records, formats and prints offsets, keys, and values, and imports the consumer package.
Explore building and testing a kafka custom consumer in java, including topic subscription, group id configuration, and end-to-end producer–consumer interaction.
Explore Kafka broker and topic behavior by corrupting the leader broker's topic file and observing producer and consumer results.
Delete the leader topic file to observe behavior as producers publish and consumers consume, then explore corruption of a non-leader broker and its impact on failover and replication.
Demonstrate Kafka's durability and leader rebalancing by running a producer and consumer, simulating broker failures and topic file corruption or deletion across non-leader and leader brokers.
Explore how Kafka brokers manage leader changes and in-sync replicas during failover, preserving data integrity. See broker termination during active read-write to assess producer and consumer resilience.
Explore how multiple producers send to the same topic and verify that Kafka preserves message sequencing at the consumer, with producers posting messages in random order but consumed in order.
Kafka preserves sequencing and offsets across producer restarts, letting the same topic yield new messages from the correct offset. A custom consumer remains open, preventing re-reading and ensuring no duplication.
Explore how a Kafka producer behaves when the cluster is down, with broker failures and leader loss, and learn that at least one broker must stay up for successful publishing.
Tune producer buffer memory and other configurations in Apache Kafka. Manage ZooKeeper ensembles and Kafka brokers, create topics with partitions and replication factors.
Examine how to verify topic creation and partitioning, then publish messages with a producer while tweaking producer properties such as bootstrap.servers, compression, buffer.memory, batch.size, and linger.ms.
The lecture demonstrates using producer.config to override defaults, showing how buffer.memory between the producer and topic restricts message size and how raising it from 3000 to 4500 fixes serialization errors.
Experiment with batch.size and buffer.memory to see how a 4500 byte limit triggers java.lang.IllegalArgumentException when allocating 10000 bytes, then raise buffer.memory to 45000 to enable larger batches.
Explore how kafka consumer properties and group.id establish consumer groups, and how offsets distribute messages among group members rather than to every consumer.
shows how Kafka topic is divided into partitions under a consumer group and how partition-to-consumer mapping determines which consumer reads each message.
Explore how linger.ms, batch.size, and buffer.memory shape producer batching and when messages posted to topics. Observe consumers reading from the beginning and the impact of gzip and snappy on delivery.
See how broker failures affect Kafka producers and consumers. Topic test has leader broker two with replicas two and three; stopping broker two halts the producer while the consumer continues.
Explore how broker outages affect producers and consumers in Kafka when leaders go down and acks matter. Consider migration from other tools and testing negative scenarios.
Learn how shutting down Zookeeper peers affects Kafka brokers and cluster communication, triggering connection reset errors and logs, and test Kafka's resilience by creating a topic after outages.
Understand kafka brokers and bootstrap servers on localhost: 9093, 9094, and 9095 for topic creation. See how zookeeper quorum, an odd-numbered cluster, governs topic availability.
Analyze the impact of killing zookeeper instances on the Kafka producer and consumer, and observe message delivery on topic test as zookeeper instances are terminated.
Explore how increasing producer load affects producer and consumer synchronization in Apache Kafka, including Zookeeper failures, topic description, replicas, and leader elections after restart.
Simulate heavy load on Kafka by producing a ~20 kb message one million times and consuming it to observe broker and ZooKeeper behavior under failures.
Restart Kafka servers, compile and run the producer code, and create a topic with one partition and replication factor three to validate message delivery and load balancing.
Start a simple producer and consumer, compile and run demos, create topics, and examine how messages, keys, values, and offsets are consumed under load.
Explore load balancing part 4 in Kafka by running producer and consumer across topics, observing offsets, keys, and values, and testing broker failures to reveal data loss risks and leader failover.
Explore Kafka load balancing and fault tolerance as producers reach high throughput while brokers and leaders failover, showing how replicas maintain data integrity and consumer resilience.
Explore a case study of Apache Kafka as a streaming and messaging platform for real-time top trending songs, powered by Apache Spark for data transformation, with hands-on setup and aggregation.
Learn to install and configure Apache Kafka and Apache Spark, set up data folders for Kafka topics and zookeeper, and configure partition leader elections, brokers, and environment variables.
Set up your development environment for Spark and Kafka by installing a Scala Eclipse IDE, creating a Maven project, and adding Spark and Kafka dependencies in pom.xml.
Explore building a Scala object that uses a Spark session to read streaming data from a Kafka topic, configure bootstrap servers and earliest starting offsets for continuous processing.
Explore performing aggregations on Kafka data with Spark by splitting the value column into username and song name, then using 20s windows and watermark to count top ten songs.
Group and count real-time song plays using windowed counts, print results to the console, and save data to a Kafka topic or CSV file for future analysis.
Learn how to produce data with a Kafka producer, set up ZooKeeper and broker, configure topics, and push records into a 20-second window for on-the-fly aggregation and counting.
Produce data to a Kafka topic and print the consumed records on the console, using 20-second windows for group-by counts and handling bad records with exception filtering.
Produce records with the Kafka producer, batch data into topics—batch one, batch two—handle exceptions to prevent crashes, and configure a checkpoint location for recovery when reading with a Kafka consumer.
Produce records, consume them via shell, and write data to a Kafka topic while exploring windowed streaming, aggregation, and storing results in CSV for future use.
Explore building reliable streaming pipelines with Spark, using Apache Kafka windowed counts written to CSV or Parquet files, and handling bad records and checkpoint management to prevent crashes.
Explore how Apache Kafka handles telecom data with a Spring Boot Java producer and consumer, including Zookeeper group management, autocommit versus manual commit, and polling.
Build a spring boot kafka producer that publishes json messages via a rest controller using a producer factory and kafka template to the learning kafka topic.
Deploy kafka with zookeeper using docker on Windows, using bitnami images and a docker compose setup. Verify Zookeeper runs first, then Kafka, with 2181 and 9092 ports.
Publish data to a running Kafka bus, test with console publish and console consumer, and explore auto commit, manual commit, and polling consumer variants on Learning Kafka.
Implement a Spring Boot Kafka consumer by creating a receiver config, enabling Kafka, and configuring a generic object type with bootstrap server 9092 and JSON key/value deserializers.
Configure a Kafka consumer in Spring by defining a consumer factory and a concurrent listener factory, set the consumer config, and define a listener to receive and print data.
Connect a Kafka producer and consumer, view data flowing through Kafka buses, and learn delivery of data packets to services without loss, with examples from Twitter and machine learning scenarios.
Learn how to enable manual acknowledgement in a Kafka consumer by turning off autocommit, configuring the factory, and using acknowledgement to confirm data after processing.
Configure your application to poll the Kafka bus at set intervals, controlling fetch size and commit behavior. Leverage a Python producer and docker compose to simulate data transfers.
Course Introduction: Welcome to the comprehensive course on Apache Kafka, designed to take you from a beginner to an advanced level in utilizing Kafka for scalable and efficient data streaming solutions. Whether you're new to distributed systems or looking to enhance your knowledge, this course covers everything from the basics of Kafka and Zookeeper setup to advanced topics like producer and consumer configurations, fault tolerance, and real-world project implementations. By the end of this course, you will have the skills and confidence to leverage Apache Kafka effectively in various applications, ensuring robust data handling and real-time analytics.
Section 1: Apache Kafka - Beginners to Beyond
This section provides a comprehensive introduction to Apache Kafka, covering the foundational aspects of setting up Kafka and Zookeeper, essential for managing distributed systems. Students will learn about topic creation, using both console-based producers and consumers, and delve into advanced concepts such as partitions, replication factors, and Kafka node rebalancing. The lectures also explore custom producer and consumer configurations, addressing various scenarios and performance optimizations through buffer memory, batch size, and linger time manipulations. Participants will gain insights into managing consumer groups, handling broker failures, and implementing effective load balancing strategies.
Section 2: Project on Apache Kafka - Top Trending Songs
In this project-oriented section, students will apply their Kafka knowledge to a real-world scenario of analyzing top trending songs. Starting with the installation of Kafka and Spark, participants will set up the project structure and develop Scala objects for data aggregation. The course progresses with practical demonstrations on data production using Kafka producers, consuming data, and writing data to Kafka topics. By the end, learners will be equipped with the skills to implement and optimize data streaming solutions using Apache Kafka in a project context.
Throughout this journey, you gain a deep understanding of Kafka's architecture, its role in data streaming, and practical skills in setting up, configuring, and optimizing Kafka environments. From learning essential concepts like topics, partitions, and replication to mastering advanced techniques such as managing producer and consumer performance, you will be equipped to tackle complex data streaming challenges. Keep exploring and applying Kafka's capabilities to innovate and streamline data workflows in your projects.