Разпределена обработка на потоци от данни с Apache Kafka


Траян Илиев - Certified Java SE 6 Programmer
Тренингът се води от Траян Илиев, 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.

Продължителност: 48 часа

За кого е курса: Java разработчици

Описание: Тренингът осигурява практически знания и умения за проектиране, внедряване и експлоатация на надеждни, мащабируеми и ефективни решения за поточна обработка на данни в реално време с Apache Kafka

Какви умения ще придобиете:

  • Разбиране на разпределените системи и ролята на поточната обработка в съвременните архитектури за данни.
  • Задълбочени познания за архитектурата на Apache Kafka, включително брокери, теми, дялове, производители и потребители.
  • Практическо създаване, конфигуриране и управление на клъстери Kafka за висока достъпност, мащабируемост и устойчивост на грешки.
  • Усвояване на Producer и Consumer Kafka APIs и тяхното персонализиране за различни сценарии за поточна обработка на данни в реално време.
  • Kafka Streams API – трансформации, агрегации, обединения и прозорци.
  • Разглеждане на компонентите на екосистемата Kafka, като Kafka Connect за интегриране на данни.
  • Прилагане на най-добрите практики за сигурност в клъстерите на Kafka, включително удостоверяване, оторизация и криптиране.
  • Мониторинг и настройка на клъстерите на Kafka и приложенията за обработка на потоци за оптимална производителност и надеждност.
  • Прилагане на най-добрите практики за внедряване, мащабиране и отстраняване на проблеми с Kafka в производствени среди.
  • Изграждане на реални проекти, включващи поточни линии за данни от край до край, анализи в реално време и архитектури, управлявани от събития, с помощта на Kafka и нейната екосистема.
  • Придобиване на практически опит чрез разработка на проекти, за да се затвърдят теоретичните знания и да се развият умения в областта на разпределената обработка на поточни данни с Apache Kafka.

 

Програма на курса:

  1. 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