
Тренингът се води от Траян Илиев, Oracle® сертифициран Java програмист с 20 годишен опит, Python & Java ML/AI инженер, fullstack разработчик със Spring, TypeScript, Angular, React и Vue. Траян има 15+ години опит като IT трейнър за международни софтуерни компании. Има множество презентации на Voxxed Days, Java2Days, jPrime, jProfessionals, BGOUG, BGJUG, DEV.BG на теми като SOA & REST, Spring /WebFlux, Machine Learning, Robotics & Disitributed high-performance computing.
Описание: Тренингът осигурява практически знания и умения за проектиране, внедряване и експлоатация на надеждни, мащабируеми и ефективни решения за поточна обработка на данни в реално време с Apache Kafka
Какви умения ще придобиете:
- Разбиране на разпределените системи и ролята на поточната обработка в съвременните архитектури за данни.
- Задълбочени познания за архитектурата на Apache Kafka, включително брокери, теми, дялове, производители и потребители.
- Практическо създаване, конфигуриране и управление на клъстери Kafka за висока достъпност, мащабируемост и устойчивост на грешки.
- Усвояване на Producer и Consumer Kafka APIs и тяхното персонализиране за различни сценарии за поточна обработка на данни в реално време.
- Kafka Streams API – трансформации, агрегации, обединения и прозорци.
- Разглеждане на компонентите на екосистемата Kafka, като Kafka Connect за интегриране на данни.
- Прилагане на най-добрите практики за сигурност в клъстерите на Kafka, включително удостоверяване, оторизация и криптиране.
- Мониторинг и настройка на клъстерите на Kafka и приложенията за обработка на потоци за оптимална производителност и надеждност.
- Прилагане на най-добрите практики за внедряване, мащабиране и отстраняване на проблеми с Kafka в производствени среди.
- Изграждане на реални проекти, включващи поточни линии за данни от край до край, анализи в реално време и архитектури, управлявани от събития, с помощта на Kafka и нейната екосистема.
- Придобиване на практически опит чрез разработка на проекти, за да се затвърдят теоретичните знания и да се развият умения в областта на разпределената обработка на поточни данни с Apache Kafka.
Програма на курса:
-
Module 1: Kafka Core Concepts and Java Setup (6 hours)
-
Overview of brokers, topics, partitions, and their role in Kafka’s distributed architecture
-
Setting up Kafka cluster and Java development environment
-
Java Kafka client basics: Producer and Consumer APIs
-
Writing simple Java producers and consumers with asynchronous send and poll methods
-
Hands-on: Build and run a basic Java producer and consumer application with Kafka
Module 2: Advanced Producer and Consumer Features in Java (10 hours)
-
Detailed Java API usage for KafkaProducer and KafkaConsumer
-
Implementing asynchronous data production and consumption with callbacks
-
Using interceptors in Java producers and consumers for monitoring and modifying records
- Implementing exactly-once semantics using Kafka transactions and idempotent producers
-
Handling failures and retries in asynchronous processing
-
Handling compacted topics and understanding their use cases
-
Hands-on: Code exercises on transactional producers, interceptors, and compacted topic usage
- Hands-on: Develop robust Java applications ensuring exactly-once event processing guarantees
Module 3: Kafka Admin Client and Programmatic Administration (6 hours)
-
Introduction to Kafka AdminClient API for managing topics, partitions, and configurations programmatically
-
Creating, deleting, and modifying topics using Java AdminClient
-
Managing ACLs, quotas, and broker configurations via Java APIs
-
Hands-on: Write Java programs to automate Kafka cluster administration tasks
Module 4: Performance Monitoring and Visualization (6 hours)
-
Kafka metrics overview: producer, consumer, broker, and stream metrics
-
Configuring Prometheus to scrape Kafka metrics via JMX exporter
-
Setting up Grafana dashboards for real-time Kafka monitoring
-
Writing Java code to expose custom metrics and integrate with monitoring tools
-
Hands-on: Build a monitoring stack with Prometheus and Grafana for Kafka clusters and applications
Module 5: Kafka Streams – KStream and KTable (8 hours)
-
Introduction to Kafka Streams API and its programming model
-
Differences between KStream and KTable abstractions
-
Writing Java stream processing applications: filtering, mapping, aggregations, joins, and windowing
-
Managing state stores and fault tolerance in Kafka Streams
-
Exactly-once processing guarantees with Kafka Streams
-
Hands-on: Build and deploy Java Kafka Streams applications using KStream and KTable APIs
Module 6: Practical Problem Solving and Project Work (8 hours)
-
Real-world problem scenarios involving brokers, partitions, and topic design
-
Debugging and troubleshooting Java Kafka clients and stream applications
-
Project 1: End-to-end Kafka pipeline with transactional producers and consumers
-
Project 2: Stream processing with KStream and KTable including joins and aggregations
-
Code reviews, performance tuning, and best practices discussion
Module 7: Review, Assessment, and Next Steps (4 hours)
-
Recap of key Java APIs and Kafka concepts
-
Hands-on coding assessment and problem-solving exercises
-
Q&A and troubleshooting common Kafka Java client issues
-
Guidance on further learning and Kafka ecosystem tools
-
За повече информация и въпроси ни пишете на e-mail: office@iproduct.org