لطفا جهت اطلاع از آخرین دوره ها و اخبار سایت در
کانال تلگرام
عضو شوید.
آموزش جامع Kafka Streams API برای توسعهدهندگان Java و Spring Boot 3.X
- آخرین آپدیت
دانلود Kafka Streams API for Developers Using Java/Spring Boot 3.X
نکته:
ممکن هست محتوای این صفحه بروز نباشد ولی دانلود دوره آخرین آپدیت می باشد.
نمونه ویدیوها:
توضیحات دوره:
بهروزرسانی شده در می ۲۰۲۵.
این دوره اکنون دارای قابلیت Coursera Coach است!
روشی هوشمندتر برای یادگیری با گفتگوهای تعاملی و بلادرنگ که به شما کمک میکند دانش خود را آزمایش کنید، فرضیات را به چالش بکشید و در حین پیشروی در دوره، درک خود را عمیقتر کنید.
این دوره با دقت طراحی شده است تا شما را با پیچیدگیهای Kafka Streams API با استفاده از Java و Spring Boot 3.x آشنا کند. شما با آشنایی با مفاهیم اصلی Kafka Streams شروع میکنید، یاد میگیرید که چگونه برنامههای پایه پردازش جریان (Stream Processing) را بسازید و سریعاً به سراغ مثالهای کاربردی میروید. ساختار دوره تضمین میکند که شما نه تنها جنبههای تئوری را درک کنید، بلکه از طریق توسعه برنامههای واقعی مانند «سیستم مدیریت سفارشات»، تجربه عملی کسب کنید.
با پیشروی در دوره، به موضوعات پیشرفتهتری از جمله سریالیزاسیون/دیسریالیزاسیون (Serialization/Deserialization)، عملیات Stateful مانند تجمیع (Aggregation)، Joinها و Windowing خواهید پرداخت. شما یاد میگیرید که چگونه ذخیرهسازهای وضعیت (State Stores) را به صورت تعاملی مدیریت و کوئری کنید، خطاها را به طور بهینه مدیریت کنید و برنامههای Kafka Streams خود را با استفاده از TopologyTestDriver و JUnit5 تست کنید. این دوره بر روی بهترین روشها (Best Practices) و رویکردهای توصیه شده تأکید دارد تا اطمینان حاصل شود که برنامههای شما مقیاسپذیر و قابل نگهداری هستند.
در پایان این دوره، درک عمیقی از Kafka Streams API خواهید داشت، در استفاده از Spring Boot برای ساخت و اجرای برنامههای Kafka Streams مهارت مییابید و برای مقابله با چالشهای پیچیده پردازش دادههای بلادرنگ در پروژههای خود کاملاً آماده خواهید بود. چه در حال ساخت میکروسرویسها باشید و چه مدیریت خط لولههای دادههای بزرگ (Big Data Pipelines)، این دوره تخصص شما را در سیستمهای توزیع شده ارتقاء میدهد.
این دوره برای توسعهدهندگان جاوا با دانش متوسط در Spring Boot طراحی شده است. داشتن درک اولیه از Kafka و سیستمهای توزیع شده مفید است اما اجباری نیست.
سرفصل ها و درس ها
شروع به کار با دوره
Getting Started with the Course
معرفی دوره
Course Introduction
پیشنیازها
Prerequisites
آشنایی با Kafka Streams
Getting Started with Kafka Streams
مقدمهای بر Kafka Streams
Introduction to Kafka Streams
اصطلاحات Kafka Streams - توپولوژی و پردازشگر
Kafka Streams Terminologies - Topology and Processor
معرفی KStreams API
Introduction to KStreams API
ساخت برنامه سلام با استفاده از KStreams API
Greetings Kafka Streams App Using KStreams API
بررسی کلی برنامه Greetings
Overview of the Greetings App
راهاندازی برنامه Greetings
Set Up the Greetings App
توپولوژی برنامه Greetings
Topology of the Greetings App
ساخت برنامه Launcher برای Kafka Streams
Build the Kafka Streams Launcher Application
راهاندازی محیط کافکا و تست برنامه Greetings
Setting Up Kafka Environment and Testing Our Greeting App
عملگرها در Kafka Streams با استفاده از KStreams API
Operators in Kafka Streams Using KStreams API
عملگرهای Filter و FilterNot
Filter and FilterNot
عملگرهای Map و MapValues
Map/MapValues
عملگرهای FlatMapValues و FlatMap
FlatMapValues/FlatMap
عملگر peek
peek
عملگر merge
merge
سریالیزاسیون و دیسریالیزاسیون در Kafka Streams
Serialization and Deserialization in Kafka Streams
نحوه عملکرد سریالیزاسیون/دیسریالیزاسیون کلید/مقدار
How Key/Value Serialization and Deserialization Works in Kafka Streams
ارائه سریالایزر/دیسریالایزر پیشفرض از طریق پیکربندی برنامه
Providing Default Serializer/Deserializer Using Application Configuration
ساخت Serdes سفارشی برای پیامهای پیشرفته Greeting
Build Custom Serdes for Enhanced Greeting Messages
استفاده از Serde سفارشی در برنامه Greetings
Usage of Custom Serde in the Greeting App
سریالایزر/دیسریالایزر جنریک و قابل استفاده مجدد (روش توصیه شده)
Reusable Generic Serializer/Deserializer (Recommended Approach)
ساخت یک سریالایزر/دیسریالایزر جنریک
Build a Generic Serializer/Deserializer
یکپارچهسازی سریالایزر/دیسریالایزر جنریک در برنامه Greetings
Integrate Generic Serializer/Deserializer into the Greeting App
برنامه مدیریت سفارشات با Kafka Streams - یک مورد کاربردی بلادرنگ
Order Management Kafka Streams Application - A Real-Time Use Case
بررسی کلی برنامه خردهفروشی (Retail App)
Overview of the Retail App
ساخت توپولوژی برای برنامه مدیریت سفارشات
Build the Topology for the Orders Management App
تفکیک سفارشات رستوران و خرید خردهفروشی با Split و Branch
Split the Restaurant/Retail Shopping Orders - Using Split and Branch Operator
تبدیل دامنه سفارش به نوع دامنه درآمد (Revenue)
Transform the Order Domain to a Revenue Domain Type
توپولوژی، استریم و تسکها - بررسی زیرساختی
Topology, Stream, and Tasks - Under the Hood
بررسی داخلی توپولوژی، استریم و تسکها
Internals of Topology, Stream, and Tasks
بررسی رفتار استریمها با تغییر تعداد تردها (Threads)
Explore the Behavior of Streams by Modifying the Stream Threads
مدیریت خطاها و استثناها در Kafka Streams
Error/Exception Handling in Kafka Streams
بررسی شکستها (Failures) در Kafka Streams
Failures in Kafka Streams
رفتار پیشفرض در خطاهای دیسریالیزاسیون
Default Deserialization Error Behavior
ساخت مدیریت خطای سفارشی برای دیسریالیزاسیون
Custom Deserialization Error Handler
مدیریت خطای پیشفرض و سفارشی برای پردازشگر
Default and Custom Processor Error Handler
مدیریت خطای سفارشی برای تولید داده (Production)
Custom Production Error Handler
مدیریت خطا در زمان قطع بودن کلاستر کافکا
Error Handling When Kafka Cluster Is Down
مفهوم KTable و Global KTable
KTable and Global KTable
مقدمهای بر KTable API
Introduction to KTable API
ساخت توپولوژی برای KTable
Build a Topology for KTable
بررسی زیرساخت KTable
KTable - Under the Hood
مفهوم GlobalKTable
GlobalKTable
عملیات Stateful در Kafka Streams - تجمیع، Join و Windowing
StateFul Operations in Kafka Streams - Aggregate, Join, and Windowing Events
عملیات Stateful در Kafka Streams
StateFul Operations in Kafka Streams
تجمیع (Aggregation) چیست و چگونه کار میکند؟
What Is Aggregation and How It Works?
تجمیع با استفاده از عملگر count
Aggregation Using "count" Operator
تجمیع با استفاده از عملگر reduce
Aggregation Using "reduce" Operator
تجمیع با استفاده از عملگر aggregate
Aggregation Using "aggregate" Operator
استفاده از Materialized Store برای عملگرهای count و reduce
Using Materialized Store for count and reduce Operators
نتایج عملیات Stateful - چگونه به آنها دسترسی پیدا کنیم؟
StateFul Operation Results - How to Access Them?
نحوه دسترسی به نتایج تجمیع
How to Access the Results of Aggregation
تجمیع در برنامه مدیریت سفارشات - یک مورد کاربردی بلادرنگ
Aggregation in Order Management Application - A Real-Time Use Case
تعداد کل سفارشات هر فروشگاه با عملگر count
Total Number of Orders by Each Store Using "count" Operator
کل درآمد هر فروشگاه با عملگر aggregate
Total Revenue by Each Store Using "aggregate" Operator
تغییر کلید (Rekeying) رکوردهای کافکا برای عملیات Stateful
Rekeying Kafka Records for Stateful Operations
تأثیر کلید null در عملیات Stateful و بازتوزیع (Repartition) رکوردها
Effect of null Key in Stateful Operations and Repartition of Kafka Records
تغییر کلید با استفاده از عملگر selectKey
Rekeying Using the "selectKey" Operator
عملیات Stateful در Kafka Streams - Join
StateFul Operations in Kafka Streams - Join
مقدمهای بر Joinها و انواع آنها در Kafka Streams
Introduction to Joins and Types of Joins in Kafka Streams
بررسی innerJoin با عملگر join - اتصال KStream و KTable
Explore innerJoin Using "join" Operator - Joining KStream and KTable
بررسی innerJoin با عملگر join - اتصال KStream و GlobalKTable
Explore innerJoin Using "join" Operator - Joining KStream and GlobalKTable
بررسی innerJoin با عملگر join - اتصال KTable و KTable
Explore innerJoin Using "join" Operator - Joining KTable and KTable
بررسی innerJoin با عملگر join - اتصال KStream و KStream
Explore innerJoin Using "join" Operator - Joining KStream and KStream
اتصال استریمها با استفاده از عملگر leftJoin
Joining Kafka Streams Using "leftJoin" Operator
اتصال استریمها با استفاده از عملگر outerJoin
Joining Kafka Streams Using "outerJoin" Operator
بررسی زیرساخت Join
Join - Under the Hood
الزامات Co-Partitioning در Joinها
Co-Partitioning Requirements in Joins
پیادهسازی Join در برنامه مدیریت سفارشات - یک مورد کاربردی بلادرنگ
Join in Order Management Application - A Real-Time Use Case
اتصال درآمد تجمیعی با KTable جزئیات فروشگاه (StoreDetails)
Join Aggregate Revenue with StoreDetails KTable
عملیات Stateful در Kafka Streams - Windowing
StateFul Operations in Kafka Streams - Windowing
مقدمهای بر Windowing و مفاهیم زمان
Introduction to Windowing and Time Concepts
ویندوینگ در کافکا استریمز - Tumbling Windows
Windowing in Kafka Streams - Tumbling Windows
کنترل انتشار نتایج ویندویی با عملگر suppress
Control Emission of Windowed Results Using "suppress" Operator
ویندوینگ در کافکا استریمز - Hopping Windows
Windowing in Kafka Streams - Hopping Windows
ویندوینگ در کافکا استریمز - Sliding Windows
Windowing in Kafka Streams - Sliding Windows
پیادهسازی Windowing در برنامه مدیریت سفارشات - یک مورد کاربردی بلادرنگ
Widowing in Order Management Application - A Real-Time Use Case
نیازمندیهای جدید برای برنامه مدیریت سفارشات
New Requirements for the Order Management Application
پیادهسازی استخراجکننده Timestamp سفارشی
Implementing a CustomTimeStamp Extractor
تجمیع تعداد سفارشات بر اساس پنجرههای زمانی (Windows)
Aggregate "Number of Orders" by Windows
تجمیع درآمد بر اساس پنجرههای زمانی
Aggregate Revenue by Windows
اجرای Join روی دادههای ویندویی
Joins on the Windowed Data
رفتار رکوردها با برچسب زمانی آینده و گذشته در Windowing
Behavior of Records with Future and Older Timestamp in Windowing
رکوردهایی با Timestamp قبل و بعد از زمان فعلی در Windowing
Records with Timestamps before and after the CurrentTimestamp
ساخت برنامه Kafka Streams با استفاده از Spring Boot
Build Kafka Streams Application Using Spring Boot
مقدمهای بر Spring Boot و Kafka Streams
Introduction to Spring Boot and Kafka Streams
راهاندازی پروژه - برنامه Greeting Streams با Spring Kafka Streams
Set Up the Project - Greeting Streams App Using Spring Kafka Streams
پیکربندی Kafka Stream از طریق application.yml
Configuring the Kafka Stream Using application.yml
ساخت توپولوژی Greeting
Build the Greeting Topology
تست برنامه Greeting در محیط محلی
Test Greeting App in Local
پیکربندی خودکار (Autoconfiguration) کافکا استریمز در Spring Boot
Spring Boot Autoconfiguration of Kafka Streams
بررسی داخلی Autoconfiguring کافکا استریمز در Spring Boot
Internals of Autoconfiguring Kafka Streams in Spring Boot
سریالیزاسیون/دیسریالیزاسیون JSON در Spring Kafka Streams
JSON Serialization/Deserialization in Spring Kafka Streams
سریالیزاسیون/دیسریالیزاسیون JSON با استفاده از JsonSerde
JSON Serialization/Deserialization Using JsonSerde
استفاده از JsonSerde با ObjectMapper سفارشی
JsonSerde Using Custom ObjectMapper
مدیریت خطا در Spring Kafka Streams
Error Handling in Spring Kafka Streams
مدیریت خطای دیسریالیزاسیون - روش اول
Handle Deserialization Error - Approach 1
مدیریت خطای دیسریالیزاسیون با Error Handler سفارشی - روش دوم
Handle Deserialization Error Using Custom Error Handler - Approach 2
مدیریت خطای دیسریالیزاسیون با رویکرد اختصاصی Spring - روش سوم
Handle Deserialization Errors Using Spring Specific Approach- Approach 3
مدیریت استثناهای Catch نشدن در توپولوژی
Handle Uncaught Exceptions in the Topology
مدیریت خطاهای تولید داده (Production)
Handle Production Errors
ساخت برنامه مدیریت سفارشات با Spring Boot
Build Orders Kafka Streams Application Using Spring Boot
راهاندازی پروژه پایه برای برنامه Orders Kafka Streams
Set Up the Base Project for Orders Kafka Streams App
ساخت OrdersTopology
Create the OrdersTopology
کوئریهای تعاملی - کوئری گرفتن از State Storeها با RESTful API
Interactive Queries - Querying State Stores Using RESTFUL APIs
ساخت End-point برای دریافت تعداد سفارشات بر اساس نوع سفارش - بخش اول
Build a GET Endpoint to Retrieve the OrderCount by OrderType - Part 1
ساخت End-point برای دریافت تعداد سفارشات بر اساس نوع سفارش - بخش دوم
Build a GET Endpoint to Retrieve the OrderCount by OrderType - Part 2
دریافت تعداد سفارشات بر اساس نوع سفارش و شناسه مکان (LocationId)
Retrieve OrderCount by OrderType and LocationId
ساخت End-point برای دریافت تعداد سفارشات برای تمامی انواع سفارشات
Build a GET Endpoint to Retrieve the OrderCount for All OrderTypes
ساخت End-point برای دریافت درآمد بر اساس نوع سفارش
Build a GET Endpoint to Retrieve the Revenue by OrderType
مدیریت خطای سراسری برای ارسال پیامهای خطای کاربرپسند
Global Error Handling for Useful Client Error Messages
کوئریهای تعاملی - کوئری گرفتن از Window State Storeها با RESTful API
Interactive Queries - Querying Window State Stores Using RESTFUL APIs
ساخت End-point برای دریافت تعداد سفارشات بر اساس نوع سفارش
Build a GET Endpoint to Retrieve OrderCount by OrderType
ساخت End-point برای دریافت تعداد سفارشات ویندویی برای تمام انواع سفارشات
Build a GET Endpoint to Retrieve the Windowed OrderCount for All OrderTypes
ساخت End-point برای دریافت تعداد سفارشات ویندویی در یک بازه زمانی
Build a GET Endpoint to Retrieve the Windowed OrderCount within a Time Range
ساخت End-point برای دریافت درآمد بر اساس نوع سفارش
Build a GET Endpoint to Retrieve the Revenue by OrderType
تست Kafka Streams با استفاده از TopologyTestDriver و JUnit5
Testing Kafka Streams Using TopologyTestDriver and JUnit5
تست Kafka Streams با استفاده از TopologyTestDriver
Testing Kafka Streams Using TopologyTestDriver
تست واحد برنامه Greetings - نوشتن داده در Topic خروجی
Unit Testing Greetings App - Writing Data to a Output Topic
تست واحد برنامه Greetings - تست چندین پیام
Unit Testing Greetings App - Testing Multiple Messages
تست واحد برنامه Greetings - سناریوی خطا
Unit Testing Greetings App - Error Scenario
تست واحد OrdersCount - نوشتن داده در State Store
Unit Testing OrdersCount - Writing Data to a State Store
تست واحد OrdersRevenue - نوشتن داده در State Store
Unit Testing OrdersRevenue - Writing Data to a State Store
تست واحد OrdersRevenue ویندویی - نوشتن داده در State Store
Unit Testing OrdersRevenue by Windows - Writing Data to a State Store
محدودیتهای TopologyTestDriver
Limitations of TopologyTestDriver
تست Kafka Streams در Spring Boot با TopologyTestDriver و JUnit5
Testing Kafka Streams in Spring Boot Using TopologyTestDriver and JUnit5
تست واحد با TopologyTestDriver در Spring Boot
Unit Test Using TopologyTestDriver in Spring Boot
تست یکپارچگی (Integration Testing) برنامه Spring KafkaStreams با @EmbeddedKafka
Integration Testing Spring KafkaStreams App Using @EmbeddedKafka
معرفی و راهاندازی تست یکپارچگی (Integration Test)
Introduction and Set Up Integration Test
تست یکپارچگی برای OrdersCount
Integration Test for OrdersCount
تست یکپارچگی برای OrdersRevenue
Integration Test for OrdersRevenue
تست یکپارچگی برای OrdersRevenue ویندویی
Integration Test for OrdersRevenue By Windows
مفهوم Grace Period در Kafka Streams
Grace Period in Kafka Streams
مفهوم Grace Period در ویندوینگ
Grace Period in Windowing
بیلد و بستهبندی برنامه Spring Boot به صورت Executable
Build and Package the Spring Boot App as an Executable
بستهبندی برنامه Spring Boot و اجرای آن به صورت فایل Jar
Package the Spring Boot App and Execute It as a Jar File
پردازش دقیقاً یکبار (Exactly Once Processing) در Kafka Streams
Exactly Once Processing/Semantics in Kafka Streams
پردازش Exactly Once چیست و چرا به آن نیاز داریم؟
What Is Exactly Once Processing and Why Is It Needed?
راهاندازی Exactly Once Processing در Kafka Streams
Set Up Exactly Once Processing in Kafka Streams
تراکنشها و Idempotent Producer - بررسی زیرساختی
Transactions and Idempotent Producer - Under the Hood
محدودیتها و اثرات عملکردی تراکنشهای کافکا
Limitations and Performance Impacts of Kafka Transactions
اجرای برنامههای Kafka Streams به صورت چندین نمونه (Spring Boot)
Running Kafka Streams Applications as Multiple Instances (Spring Boot)
اجرای برنامههای Kafka Streams به صورت چندین نمونه
Running Kafka Streams Applications as Multiple Instances
راهاندازی برای اجرای Kafka Streams به صورت چندین نمونه
Set Up to Run the Kafka Streams as Multiple Instances
متادیتای Kafka Streams
Kafka Streams Metadata
تجمیع دادهها از چندین نمونه - بررسی کلی
Aggregate Data from Multiple Instances - Overview
تجمیع دادهها از چندین نمونه - دریافت متاداتا - بخش اول
Aggregate Data from Multiple Instances - Fetching Metadata - Part 1
تجمیع دادهها از چندین نمونه - ساخت RestClients - بخش دوم
Aggregate Data from Multiple Instances - Building RestClients - Part 2
تجمیع دادهها از چندین نمونه - تست End-to-End - بخش سوم
Aggregate Data from Multiple Instances - Testing End to End - Part 3
کوئریهای مبتنی بر کلید با چندین نمونه - بررسی کلی
Key-Based Queries with Multiple Instances - Overview
کوئریهای مبتنی بر کلید با چندین نمونه - دریافت متاداتا - بخش اول
Key-Based Queries Multiple Instances - Fetching Metadata- Part 1
کوئریهای مبتنی بر کلید با چندین نمونه - ساخت RestClient و تست - بخش دوم
Key-Based Queries Multiple Instances - Building RestClient and Testing- Part 2
رفاکتور کد برای End-point تعداد سفارشات /v1/orders/count
Refactor the Code for OrderCount for All OrderTypes Endpoint - /v1/orders/count
اصلاح Test Caseها
Fix the Test Cases
وضعیت سایر End-pointها چگونه است؟
What about the Other Endpoints?
نمایش نظرات