آموزش Kafka Streams API برای توسعه دهندگانی که از Java/SpringBoot 3.X استفاده می کنند

Kafka Streams API For Developers using Java/SpringBoot 3.X

نکته: آخرین آپدیت رو دریافت میکنید حتی اگر این محتوا بروز نباشد.
توضیحات دوره: بر Kafka Streams API مسلط شوید تا با استفاده از جاوا و SpringBoot 3.x برنامه‌های پیشرفته Kafka Streaming بسازید. ساخت برنامه های پیشرفته Kafka Streams با استفاده از Streams API ساخت برنامه Kafka Streams با استفاده از DSL سطح بالا دقیقاً یک بار پردازش - تراکنش ها و تولید کننده بی قدرت یک برنامه پخش جریانی خرده فروشی بیدرنگ با استفاده از Streams API جمع آوری چندین رویداد در رویدادهای انباشته شده Joingream در Streamgreams در یک رویداد جمع آوری کنید. گروهی از رویدادها با استفاده از تست SpringBoot برنامه Kafka Streams با استفاده از TopologyTestDriver با استفاده از JUnit5 Testing Spring Kafka Streams با استفاده از EmbeddedKafka و JUnit5 Build Queries تعاملی برای بازیابی داده های انباشته شده با استفاده از RESTFULTESTFUL APIst. الگوی croServices ] پیش نیازها:دانش جاوا الزامی است تجربه قبلی ساخت اپلیکیشن های کافکا تجربه قبلی کار با IntelliJ یا هر IDEA Java 17 دیگری الزامی است. Gradle یا Maven Knowledge مورد نیاز است.

Kafka Streams API یک API پیشرفته است که بخشی از اکوسیستم کافکا است.

با استفاده از Kafka Streams API، می توانیم:

  • تغییر داده ها را اعمال کنید،

  • غنی سازی داده،

  • شاخه کردن داده ها به چند جریان داده.

  • جمع آوری داده ها یا پیوستن به داده ها از چندین موضوع کافکا.

  • داده‌ها را در سطل‌های پنجره و موارد دیگر جمع کنید.

برنامه برنامه‌نویسی Kafka Streams For Developers using Java/SpringBoot به گونه‌ای طراحی شده است که تجربه تئوری و کدنویسی توسعه برنامه‌های Kafka Streams با استفاده از Streams API را به شما ارائه دهد و همچنین تکنیک‌های استفاده از برنامه استاندارد Enterprise Kafka Streams با استفاده از SpringBoot و Streams API را پوشش می‌دهد. .

این یک دوره آموزشی کاملاً عملی است که در آن شما مفاهیم را از طریق کد یاد خواهید گرفت. شما تا پایان این دوره یک برنامه بیدرنگ Kafka Streams خواهید ساخت.

در پایان این دوره، درک کاملی از این مفاهیم خواهید داشت:

  • ساخت برنامه های Kafka Streams با استفاده از Streams API

  • ساخت برنامه های Kafka Streams با استفاده از SpringBoot Streams API

  • برای بازیابی داده‌های جمع‌آوری‌شده از یک فروشگاه حالت و نمایش آن‌ها از طریق RESTFUL API، عبارت‌های تعاملی بنویسید.

  • تست واحد و یکپارچه سازی برنامه های Kafka Streams با استفاده از JUnit5

شروع به کار با جریان های کافکا

  • در این بخش، من به همه شما معرفی می‌کنم که جریان‌های کافکا و اصطلاحات مختلفی را که در ساختن یک برنامه Kafka Streams دخیل هستند، ارائه می‌کنم.

    • مقدمه ای بر جریان های کافکا

    • اصطلاحات Kafka Streams - پردازنده توپولوژی

    • معرفی KStreams API

برنامه سلام Kafka Streams با استفاده از KStreams API

در این بخش، ما یک برنامه ساده Kafka Streams می‌سازیم و آن را در محلی خود آزمایش می‌کنیم.

  • ساخت توپولوژی برنامه Greetings را بیاموزید

  • برنامه راه‌انداز Kafka Streams را بسازید که با استفاده از آن می‌توانیم برنامه را شروع و متوقف کنیم.

اپراتورها در Kafka Streams با استفاده از KStream API

در این بخش، برخی از اپراتورهای موجود در بخش Kafka Streams API را بررسی خواهیم کرد.

  • FilterNot FilterNot

  • Map/MapValues

  • FlatMapValues/FlatMap

  • نگاه کردن

  • ادغام

سریال‌سازی و سریال‌زدایی در جریان‌های کافکا

در این بخش، سریال‌سازی و سریال‌زدایی در Kafka Streams را کدنویسی و بررسی می‌کنیم.

  • سریال‌سازی کلید/ارزش و سریال‌زدایی در کافکا استریم چگونه کار می‌کند؟

  • ارائه سریالایزر/دسریالایزر پیش فرض با استفاده از پیکربندی برنامه

  • یک Serdes سفارشی برای پیام های خوشامدگویی پیشرفته بسازید

سريال ساز عمومي قابل استفاده مجدد (رويکرد توصيه شده)

در این بخش، بهترین روش برای ساخت سریال‌ساز و Deserializer عمومی را به شما نشان می‌دهم که می‌تواند برای هر نوع پیامی استفاده شود.

  • یک سریال‌ساز/سریال‌زدای عمومی بسازید

برنامه مدیریت سفارش Kafka Streams - یک مورد استفاده در زمان واقعی

در این بخش، با پیاده‌سازی یک سیستم مدیریت سفارش برای یک شرکت خرده‌فروشی، یک برنامه جریان‌های کافکا می‌سازیم.

توپولوژی، جریان و وظایف - زیر سرپوش

در این بخش، موارد داخلی برنامه Kafka Streams را بررسی خواهیم کرد.

  • موارد داخلی توپولوژی، جریان و وظایف

مدیریت خطا/استثنا در جریان های کافکا

در این بخش، کنترل‌کننده‌های مختلف خطا را در Kafka Streams بررسی می‌کنیم.

  • شکست‌ها در جریان‌های کافکا

  • رفتار خطای پیش فرض Deserialization

  • کنترل کننده خطای Deserialization سفارشی

  • پیش‌فرض کنترل‌کننده خطای پردازشگر سفارشی

  • کنترل کننده خطای تولید سفارشی

KTable جهانی KTable

در این بخش، KTable و GlobalKTable را در KafkaStreams بررسی خواهیم کرد.

  • معرفی KTable API

  • یک توپولوژی برای KTable بسازید

  • KTable - Under the Hood

  • GlobalKTable

عملیات StateFul در کافکا استریم - رویدادها جمع آوری، پیوستن و پنجره

در این بخش، اپراتورهای حالت دار در Kafka Streams را معرفی می کنم و اپراتورهای مرتبط با تجمع در جریان های کافکا را بررسی می کنم.

  • عملیات دولتی در جریان های کافکا

  • تجمیع چگونه کار می کند؟ تجمع با استفاده از عملگر "count"

  • سوابق گروهی را با استفاده از عملگر groupBy

    انجام دهید
  • تجمیع با استفاده از اپراتور "کاهش"

  • تجمیع با استفاده از عملگر "جمع"

  • استفاده از نماهای متریال شده برای عملگر کاهش تعداد

نتایج عملیات StateFul - چگونه به آنها دسترسی داشته باشیم؟

در این بخش، در مورد گزینه های بازیابی نتایج تجمیع توضیح خواهم داد.

کلید زدن مجدد سوابق کافکا برای عملیات دولتی

در این بخش، تأثیر عملگر تهی و نیاز به کلیدگذاری مجدد رکوردها در طول عملیات حالت دار را کدنویسی و بررسی می کنیم.

StateFul Operations در Kafka Streams - به

بپیوندید

در این بخش، انواع مختلف Join ها را در برنامه Kafka Streams کدنویسی و بررسی می کنیم.

به برنامه مدیریت سفارش بپیوندید - مورد استفاده در زمان واقعی

در این بخش، join را در برنامه مدیریت سفارش که تاکنون روی آن کار کرده ایم، پیاده سازی می کنیم.

  • آشنایی با انواع اتصالات در کافکا استریم

  • InnerJoin را با استفاده از عملگر "join" کاوش کنید - پیوستن به KStream و KTable

  • InnerJoin را با استفاده از عملگر "join" کاوش کنید - پیوستن به KStream و GlobalKTable

  • InnerJoin را با استفاده از عملگر "join" کاوش کنید - پیوستن به KTable و KTable

  • InnerJoin را با استفاده از عملگر "join" کاوش کنید - پیوستن به KStream و KStream

  • پیوستن به Kafka Streams با استفاده از عملگر "leftJoin"

  • پیوستن به Kafka Streams با استفاده از عملگر "outerJoin"

  • پیوستن - زیر سرپوش

  • شرایط پارتیشن بندی مشترک در Join Joins Under the Hood

عملیات StateFul در کافکا استریم - پنجره

در این بخش، مفاهیم پنجره‌سازی در Kafka Streams را بررسی می‌کنیم.

  • مقدمه ای بر پنجره سازی و مفاهیم زمان

  • پنجره کردن در کافکا استریم - ویندوز در حال چرخش

  • انتشار نتایج پنجره‌دار را با استفاده از اپراتور "supress" کنترل کنید

  • Windowing در Kafka Streams - Hopping Windows

  • پنجره در Kafka Streams - Windows Sliding

بیوه شدن در برنامه مدیریت سفارش - مورد استفاده در زمان واقعی

در این بخش، نیازمندی‌های جدید برای پیاده‌سازی پنجره‌سازی در برنامه جریان سفارش‌ها را کدنویسی و بررسی می‌کنیم.

رفتار رکوردها با مهر زمانی قدیمی‌تر آینده در پنجره

در این بخش، ما رفتار رکوردها را با مهر زمانی قدیمی‌تر و آینده در یک برنامه Kafka Streams بررسی می‌کنیم.

  • برنامه Kafka Streams را با استفاده از SpringBoot بسازید

  • در این بخش، ما با استفاده از SpringBoot، یک برنامه ساده جریان‌های کافکا می‌سازیم.

  • معرفی SpringBoot و Kafka Streams

  • برنامه Project - Greeting Streams را با استفاده از Spring Kafka Streams راه اندازی کنید

  • پیکربندی جریان کافکا با استفاده از application.yml

  • توپولوژی تبریک بسازید

  • برنامه تبریک را به صورت محلی آزمایش کنید

پیکربندی خودکار SpringBoot کافکا استریم

در این بخش، من به شما نشان می‌دهم که چگونه خودکار راه‌اندازی فنری برنامه Kafka Streams را پیکربندی می‌کند.

JSON Serialization/Deserialization در Spring Kafka Streams

در این بخش، Serialization/Deserialization JSON را در Kafka Streams با استفاده از SpringBoot پیاده سازی می کنیم.

رسیدگی به خطا در جریان های کافکا بهار

در این بخش، مدیریت خطا در Kafka Streams را با استفاده از SpringBoot به شما نشان خواهم داد.

  • بررسی خطای سریال زدایی - رویکرد 1

  • بررسی خطای سریال زدایی با استفاده از کنترل کننده خطای سفارشی - رویکرد 2

  • بررسی خطای Deserialization - رویکرد 3 ( رویکرد خاص بهار)

  • Exceptions Uncaught را در توپولوژی مدیریت کنید

  • بررسی خطاهای تولید

با استفاده از SpringBoot

، برنامه Kafka Streams Orders را بسازید

در این بخش، پروژه راه‌اندازی بهار را برای جریان‌های سفارشات راه‌اندازی می‌کنیم.

پرسش‌های تعاملی - جستجو در فروشگاه‌های حالت با استفاده از RESTFUL API

  • برای بازیابی OrderCount بر اساس OrderType یک GET Endpoint بسازید - قسمت 1

  • برای بازیابی OrderCount بر اساس OrderType یک GET Endpoint بسازید - قسمت 2

  • تعداد تعداد سفارش را بر اساس OrderType LocationId

    بازیابی کنید
  • برای بازیابی تعداد سفارش برای همه انواع سفارش، یک نقطه پایانی GET بسازید

  • یک نقطه پایانی GET برای بازیابی درآمد براساس نوع سفارش ایجاد کنید

  • مدیریت خطای جهانی برای پیام‌های خطای مفید مشتری

پرس و جوهای تعاملی - وضعیت پنجره پرس و جو با استفاده از API های RESTFUL

  • یک نقطه پایانی GET برای بازیابی تعداد سفارش براساس نوع سفارش ایجاد کنید

  • یک نقطه پایانی GET برای بازیابی تعداد سفارش پنجره‌دار برای همه انواع سفارش بسازید

  • یک نقطه پایانی GET برای بازیابی تعداد سفارش پنجره‌دار در محدوده زمانی ایجاد کنید

  • یک نقطه پایانی GET برای بازیابی درآمد براساس نوع سفارش ایجاد کنید

تست استریم های کافکا با استفاده از TopologyTestDriver JUnit5

در این بخش، کدنویسی می کنیم و با نحوه نوشتن تست های خودکار برای برنامه Kafka Streams آشنا می شویم.

  • آزمایش جریانهای کافکا با استفاده از TopologyTestDriver

  • برنامه تبریک واحد تست - نوشتن داده در یک موضوع خروجی

  • برنامه تبریک واحد تست - آزمایش چند پیام

  • برنامه تبریک تست واحد - سناریوی خطا

  • تعداد سفارشات تست واحد - نوشتن داده در فروشگاه دولتی

  • درآمد سفارش‌های تست واحد - نوشتن داده‌ها در فروشگاه دولتی

  • دستورالعمل‌های تست واحد درآمد توسط Windows - نوشتن داده‌ها در فروشگاه دولتی

  • محدودیت های TopologyTestDriver

تست استریم های کافکا در SpringBoot با استفاده از TopologyTestDriver JUnit5

در این بخش، ما کدنویسی می کنیم و نحوه نوشتن تست های واحد را در برنامه Kafka Streams خود که با استفاده از SpringBoot ساخته می شود، یاد می گیریم.

تست یکپارچه سازی برنامه Spring KafkaStreams با استفاده از @EmbeddedKafka

در این بخش، با استفاده از EmbeddedKafka کدنویسی می کنیم و در مورد نوشتن تست های یکپارچه سازی برای برنامه Kafka Streams با استفاده از EmbeddedKafka آشنا می شویم.

  • آزمون یکپارچه سازی راه اندازی مقدمه

  • تست یکپارچه سازی تعداد سفارشات

  • تست یکپارچه سازی برای درآمد سفارشات

  • تست یکپارچه سازی برای درآمد سفارشات توسط ویندوز

دوره مهلت در جریان های کافکا

در این بخش مفهوم دوره مهلت و نحوه استفاده از آن در برنامه جریان های کافکا را توضیح خواهم داد.

برنامه SpringBoot را به عنوان یک فایل اجرایی بسازید و بسته بندی کنید

در این بخش، برنامه جریان‌های کافکا را به عنوان یک فایل اجرایی بسته‌بندی می‌کنیم و برنامه را راه‌اندازی می‌کنیم.

در پایان این دوره، درک کاملی از Kafka Streams API و انواع مختلف برنامه‌هایی که می‌توان با استفاده از Kafka Streams API ایجاد کرد، خواهید داشت.


سرفصل ها و درس ها

شروع با دوره Getting Started With the Course

  • معرفی دوره Course Introduction

  • پیش درخواست ها Pre-requestites

اسلایدهای دوره و کد منبع Course Slides & Source Code

  • اسلایدهای دوره Course Slides

  • کد منبع Source Code

شروع به کار با جریان های کافکا Getting Started to Kafka Streams

  • مقدمه ای بر جریان های کافکا Introduction to Kafka Streams

  • اصطلاحات کافکا استریمز - توپولوژی و پردازشگر Kafka Streams Terminologies - Topology & Processor

  • مقدمه ای بر KStreams API Introduction to KStreams API

سلام برنامه Kafka Streams با استفاده از KStreams API Greetings Kafka Streams App using KStreams API

  • نمای کلی اپلیکیشن Greetings Overview of the Greetings App

  • برنامه Greetings را راه اندازی کنید Setup the Greetings App

  • توپولوژی اپلیکیشن Greetings Topology of the Greetings App

  • برنامه راه اندازی Kafka Streams را بسازید Build the Kafka Streams Launcher Application

  • راه اندازی محیط کافکا و آزمایش برنامه تبریک ما Setting Up Kafka Environment and Test our Greeting App

اپراتورها در Kafka Streams با استفاده از KStream API Operators in Kafka Streams using KStream API

  • Filter & FilterNot Filter & FilterNot

  • Map/MapValues Map/MapValues

  • FlatMapValues/FlatMap FlatMapValues/FlatMap

  • زیرچشمی نگاه کردن peek

  • ادغام merge

سریال‌سازی و سریال‌زدایی در جریان‌های کافکا Serialization and Deserialization in Kafka Streams

  • سریال‌سازی کلید/ارزش و سریال‌زدایی در کافکا استریم چگونه کار می‌کند؟ How Key/Value serialization and deserialization works in Kafka Streams ?

  • ارائه پیش‌فرض سریال‌ساز/دسریالایزر با استفاده از پیکربندی برنامه Providing Default Serializer/Deserializer using Application Configuration

  • یک Serdes سفارشی برای پیام های تبریک پیشرفته بسازید Build a Custom Serdes for Enhanced Greeting Messages

  • استفاده از CustomSerde در برنامه تبریک Usage of CustomSerde in the Greeting App

سریال‌ساز/دسریالایزر عمومی قابل استفاده مجدد (رویکرد توصیه شده) Reusable Generic Serializer/Deserializer (Recommended Approach)

  • یک سریال‌ساز/سریال‌زدای عمومی بسازید Build a Generic Serializer/Deserializer

  • Generic Serializer/Deserializer را در برنامه Greeting ادغام کنید Integrate Generic Serializer/Deserializer into the Greeting App

برنامه مدیریت سفارش Kafka Streams - یک مورد استفاده در زمان واقعی Order Management Kafka Streams application - A real time use case

  • نمای کلی اپلیکیشن خرده فروشی Overview of the Retail App

  • توپولوژی برنامه مدیریت سفارشات را بسازید Build the Topology for the Orders Management App

  • تقسیم سفارشات خرید رستوران/خرده فروشی - با استفاده از اپراتور تقسیم و شعبه Split the Restaurant/Retail Shopping Orders - Using split and branch operator

  • دامنه سفارش را به نوع دامنه درآمدی تبدیل کنید Transform the Order Domain to a Revenue Domain Type

توپولوژی، جریان و وظایف - زیر سرپوش Topology, Stream and Tasks - Under the Hood

  • داخلی توپولوژی، جریان و وظایف Internals of Topology, Stream and Tasks

  • با اصلاح رشته های جریان، رفتار جریان ها را کاوش کنید Explore the behavior of streams by modifying the stream threads

مدیریت خطا/استثنا در جریان های کافکا Error/Exception Handling in Kafka Streams

  • شکست در جریان های کافکا Failures in Kafka Streams

  • رفتار خطای Deserialization پیش فرض Default Deserialization Error Behavior

  • کنترل کننده خطای Deserialization سفارشی Custom Deserialization Error Handler

  • کنترل کننده خطای پردازشگر پیش فرض و سفارشی Default & Custom Processor Error Handler

  • کنترل کننده خطای تولید سفارشی Custom Production Error Handler

  • هنگام از کار افتادن خوشه کافکا، رسیدگی به خطا Error handling when Kafka Cluster is down

KTable & Global KTable KTable & Global KTable

  • مقدمه ای بر KTable API Introduction to KTable API

  • یک توپولوژی برای KTable بسازید Build a topology for KTable

  • KTable - زیر کلاه KTable - Under the Hood

  • تخصیص - عملگر mapValues ​​را در KTable پیاده سازی کنید Assignment - Implement the mapValues operator in KTable

  • GlobalKTable GlobalKTable

عملیات StateFul در جریان های کافکا - رویدادها جمع آوری، پیوستن و پنجره StateFul Operations in Kafka Streams - Aggregate, Join and Windowing Events

  • عملیات StateFul در جریان های کافکا StateFul Operations in Kafka Streams

  • تجمیع چیست و چگونه کار می کند؟ What is Aggregation & How it works ?

  • تجمیع با استفاده از عملگر "count". Aggregation using "count" operator

  • تجمیع با استفاده از عملگر "کاهش". Aggregation using "reduce" operator

  • تجمیع با استفاده از عملگر "Aggregate". Aggregation using "aggregate" operator

  • استفاده از Materialized Store برای عملگر شمارش و کاهش Using Materialized Store for count & reduce operator

نتایج عملیات StateFul - چگونه به آنها دسترسی داشته باشیم؟ StateFul Operation Results - How to access them ?

  • چگونه به نتایج Aggregation دسترسی پیدا کنیم؟ 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

  • کل درآمد توسط هر فروشگاه با استفاده از عملگر "جمع". Total Revenue by each store using "aggregate" operator

ثبت مجدد سوابق کافکا برای عملیات دولتی Re-Keying Kafka Records for Stateful operations

  • تأثیر کلید تهی در عملیات حالت دار و تقسیم مجدد سوابق کافکا Effect of null Key in Stateful Operations & Repartition of Kafka Records

  • کلید زدن مجدد با استفاده از عملگر "selectKey". Re-Keying using the "selectKey" operator

StateFul Operations in Kafka Streams - بپیوندید StateFul Operations in Kafka Streams - Join

  • آشنایی با اتصالات و انواع اتصالات در کافکا استریم Introduction to Joins & 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

  • پیوستن به Kafka Streams با استفاده از عملگر "leftJoin". Joining Kafka Streams using "leftJoin" operator

  • پیوستن به Kafka Streams با استفاده از عملگر "outerJoin". Joining Kafka Streams using "outerJoin" operator

  • پیوستن - زیر کاپوت Join - Under the hood

  • الزامات CoPartitioning در Joins CoPartitioning Requirements in Joins

به برنامه مدیریت سفارش بپیوندید - یک مورد استفاده در زمان واقعی Join in Order Management Application - A Real Time Use Case

  • با StoreDetails KTable به درآمد کل بپیوندید Join Aggregate Revenue with StoreDetails KTable

  • با فروشگاه KTable به تعداد کل بپیوندید Join Aggregate Count with Stores KTable

عملیات StateFul در جریان های کافکا - پنجره StateFul Operations in Kafka Streams - Windowing

  • مقدمه ای بر پنجره سازی و مفاهیم زمان Introduction to Windowing and time concepts

  • پنجره‌سازی در جریان‌های کافکا - پنجره‌های در حال چرخش Windowing in Kafka Streams - Tumbling Windows

  • کنترل انتشار نتایج پنجره‌دار با استفاده از اپراتور "suppress". Control emission of windowed results using "supress" operartor

  • پنجره‌سازی در جریان‌های کافکا - پرش ویندوز Windowing in Kafka Streams - Hopping Windows

  • پنجره کشی در جریان های کافکا - پنجره های کشویی Windowing in Kafka Streams - Sliding Windows

بیوه شدن در برنامه مدیریت سفارش - یک مورد استفاده در زمان واقعی Widowing in Order Management Application - A Real Time Use Case

  • الزامات جدید برای برنامه مدیریت سفارش New Requirements for the Order Management Application

  • پیاده سازی CustomTimeStamp Extractor Implementing a CustomTimeStamp Extractor

  • مجموع "تعداد سفارشات" توسط ویندوز Aggregate "Number of Orders" by Windows

  • درآمد کل توسط ویندوز Aggregate Revenue by Windows

  • در داده های پنجره ای می پیوندد Joins on the Windowed Data

رفتار رکوردها با مهر زمانی آینده و قدیمی در پنجره Behavior of Records with Future & Older Timestamp in Windowing

  • ضبط با مهر زمانی قبل و بعد از CurrentTimestamp. Records with timestamps before & after the CurrentTimestamp.

برنامه Kafka Streams را با استفاده از SpringBoot بسازید Build Kafka Streams Application using SpringBoot

  • مقدمه ای بر SpringBoot و Kafka Streams Introduction to SpringBoot and Kafka Streams

  • برنامه Project - Greeting Streams را با استفاده از Spring Kafka Streams راه اندازی کنید Setup the Project - Greeting Streams app using Spring Kafka Streams

  • پیکربندی کافکا استریم با استفاده از application.yml Configuring the Kafka Stream using application.yml

  • توپولوژی تبریک بسازید Build the Greeting Topology

  • برنامه تبریک به زبان محلی را آزمایش کنید Test Greeting App in Local

پیکربندی خودکار SpringBoot کافکا استریم SpringBoot AutoConfiguration of Kafka Streams

  • تنظیمات داخلی پیکربندی خودکار جریان های کافکا در SpringBoot Internals of AutoConfiguring Kafka Streams in SpringBoot

JSON Serialization/Deserialization در Spring Kafka Streams JSON Serialization/Deserialization in Spring Kafka Streams

  • JSON Serialization/Deserialization با استفاده از JsonSerde JSON Serialization/Deserialization using JsonSerde

  • JsonSerde با استفاده از ObjectMapper سفارشی JsonSerde using custom ObjectMapper

مدیریت خطا در جریان های کافکا بهار Error Handling in Spring Kafka Streams

  • رسیدگی به خطای سریال زدایی - رویکرد 1 Handle DeSerialization Error - Approach 1

  • با استفاده از Custom Error Handler - Approach 2، خطای سریال‌زدایی را مدیریت کنید Handle DeSerialization Error using Custom Error Handler - Approach 2

  • با استفاده از روش اسپرینگ Specific Approach- Approach 3، خطاهای سریال زدایی را مدیریت کنید Handle DeSerialization Errors using Spring Specific Approach- Approach 3

  • کنترل Uncaught Exceptions در توپولوژی Handle UncaughtExceptions in the Topology

  • رسیدگی به خطاهای تولید Handle Production Errors

Build Orders Kafka Streams Application با استفاده از SpringBoot Build Orders Kafka Streams Application using SpringBoot

  • پروژه پایه را برای برنامه Orders Kafka Streams تنظیم کنید Set up the base project for Orders Kafka Streams App

  • OrdersTopology را ایجاد کنید Create the OrdersTopology

پرس و جوهای تعاملی - پرس و جو از فروشگاه های ایالتی با استفاده از API های RESTFUL Interactive Queries - Querying State Stores using RESTFUL APIs

  • برای بازیابی OrderCount بر اساس OrderType - قسمت 1، یک GET Endpoint بسازید Build a GET Endpoint to retrieve the OrderCount by OrderType - Part 1

  • برای بازیابی OrderCount بر اساس OrderType - قسمت 2، یک GET Endpoint بسازید Build a GET Endpoint to retrieve the OrderCount by OrderType - Part 2

  • تعداد سفارش را بر اساس نوع سفارش و شناسه مکان بازیابی کنید Retrieve OrderCount by OrderType & LocationId

  • برای بازیابی تعداد سفارش برای همه انواع سفارش، یک نقطه پایانی GET بسازید Build a GET Endpoint to retrieve the OrderCount for All OrderTypes

  • برای بازیابی درآمد بر اساس نوع سفارش، یک نقطه پایانی GET بسازید Build a GET Endpoint to retrieve the Revenue by OrderType

  • مدیریت خطای جهانی برای پیام های خطای مفید مشتری Global Error Handling for useful Client Error Messages

  • تکلیف: بازیابی درآمد بر اساس نوع سفارش و شناسه مکان Assignment : Retrieve Revenue by OrderType & LocationId

پرس و جوهای تعاملی - وضعیت پنجره پرس و جو با استفاده از API های RESTFUL ذخیره می شود Interactive Queries - Querying Window State Stores using RESTFUL APIs

  • یک نقطه پایانی GET برای بازیابی تعداد سفارش بر اساس نوع سفارش بسازید Build a GET Endpoint to Retrieve OrderCount by OrderType

  • برای بازیابی تعداد سفارش پنجره‌دار برای همه انواع سفارش، یک نقطه پایانی GET بسازید Build a GET Endpoint to Retrieve the windowed OrderCount for All OrderTypes

  • یک نقطه پایانی GET برای بازیابی OrderCount پنجره‌دار در محدوده زمانی بسازید Build a GET endpoint to retrieve the windowed OrderCount within a Time Range

  • برای بازیابی درآمد بر اساس نوع سفارش، یک نقطه پایانی GET بسازید Build a GET Endpoint to retrieve the Revenue by OrderType

تست استریم های کافکا با استفاده از TopologyTestDriver و JUnit5 Testing Kafka Streams Using TopologyTestDriver & JUnit5

  • تست استریم های کافکا با استفاده از TopologyTestDriver Testing Kafka Streams using TopologyTestDriver

  • برنامه تبریک تست واحد - نوشتن داده ها در یک موضوع خروجی Unit Testing Greetings App - Writing Data to a Output Topic

  • برنامه تبریک واحد تست - آزمایش چندین پیام Unit Testing Greetings App - Testing Multiple Messages

  • برنامه تبریک تست واحد - سناریوی خطا Unit Testing Greetings App - Error Scenario

  • تعداد سفارشات تست واحد - نوشتن داده ها در فروشگاه ایالتی Unit Testing OrdersCount - Writing Data to a State Store

  • Unit Testing OrdersRevenue - نوشتن داده ها در فروشگاه ایالتی Unit Testing OrdersRevenue - Writing Data to a State Store

  • Unit Testing OrdersRevenue by Windows - Writing Data to State Store Unit Testing OrdersRevenue By Windows - Writing Data to a State Store

  • محدودیت های TopologyTestDriver Limitations of TopologyTestDriver

تست جریان های کافکا در SpringBoot با استفاده از TopologyTestDriver و JUnit5 Testing Kafka Streams in SpringBoot Using TopologyTestDriver & JUnit5

  • UnitTest با استفاده از TopologyTestDriver در SpringBoot UnitTest Using TopologyTestDriver in SpringBoot

تست یکپارچه سازی برنامه Spring KafkaStreams با استفاده از @EmbeddedKafka Integration Testing Spring KafkaStreams App using @EmbeddedKafka

  • تست یکپارچه سازی مقدمه و راه اندازی Introduction & SetUp Integration Test

  • تست یکپارچه سازی برای تعداد سفارشات Integration Test for OrdersCount

  • تست یکپارچه سازی برای درآمد سفارشات Integration Test for OrdersRevenue

  • تست یکپارچه سازی برای درآمد سفارشات توسط ویندوز Integration Test for OrdersRevenue By Windows

دوره مهلت در کافکا استریمز Grace Period in Kafka Streams

  • دوره مهلت در پنجره Grace Period in Windowing

برنامه SpringBoot را به عنوان یک فایل اجرایی بسازید و بسته بندی کنید Build and Package the SpringBoot App as an Executable

  • برنامه SpringBoot را بسته بندی کنید و آن را به صورت Jar File اجرا کنید Package the SpringBoot app and execute it as a Jar File

دقیقا یک بار پردازش/معناشناسی در جریان های کافکا Exactly Once Processing/Sematics in Kafka Streams

  • دقیقا یک بار پردازش چیست و چرا به آن نیاز است؟ What is Exactly Once Processing and Why is it needed ?

  • Exactly Once Processing را در Kafka Streams تنظیم کنید Set up Exactly Once Processing in Kafka Streams

  • Transactions & Idempotent Producer - Under the Hood Transactions & Idempotent Producer - Under the Hood

  • محدودیت ها و تأثیرات عملکرد معاملات کافکا Limitations and Performance Impacts of Kafka Transactions

اجرای برنامه های Kafka Streams به صورت چند نمونه [SpringBoot] Running Kafka Streams Applications as Multiple Instances [SpringBoot]

  • اجرای برنامه های کافکا به صورت چند نمونه Running Kafka Streams Applications as Multiple Instances

  • کد منبع برای این بخش Source Code for this Section

  • تنظیم کنید تا کافکا استریم ها را به صورت چند نمونه اجرا کنید Set Up to Run the Kafka Streams as Multiple Instances

  • کافکا متا دیتا را جریان می دهد Kafka Streams MetaData

  • جمع آوری داده ها از چند نمونه - نمای کلی Aggregate data from Multiple Instances - Overview

  • جمع آوری داده ها از چند نمونه - واکشی متا داده - قسمت 1 Aggregate data from Multiple Instances - Fetching MetaData - Part 1

  • جمع آوری داده ها از چندین نمونه - ساخت RestClients - قسمت 2 Aggregate data from Multiple Instances - Building RestClients - Part 2

  • داده‌های جمع‌آوری شده از چندین نمونه - آزمایش از پایان تا انتها - قسمت 3 Aggregate data from Multiple Instances - Testing End to End - Part 3

  • پرس و جوهای مبتنی بر کلید با نمونه های متعدد - نمای کلی KeyBased Queries with Multiple Instances - Overview

  • پرس و جوهای مبتنی بر کلید چند نمونه - واکشی متا داده - قسمت 1 KeyBased Queries Multiple Instances - Fetching MetaData- Part 1

  • پرس و جوهای مبتنی بر کلید چند نمونه - ساخت RestClient & Testing- قسمت 2 KeyBased Queries Multiple Instances - Building RestClient & Testing- Part 2

  • کد OrderCount برای همه OrderTypes نقطه پایانی را دوباره فاکتور کنید -/v1/orders/count Refactor the Code for OrderCount for All OrderTypes Endpoint - /v1/orders/count

  • موارد تست را برطرف کنید Fix the Test Cases

  • در مورد سایر نقاط پایانی چطور؟ What about the Other Endpoints ?

مراحل بعدی Next Steps

  • آیا می خواهید درباره کافکا بیشتر بدانید؟ Want to learn more about Kafka ?

نمایش نظرات

نظری ارسال نشده است.

آموزش Kafka Streams API برای توسعه دهندگانی که از Java/SpringBoot 3.X استفاده می کنند
خرید اشتراک و دانلود خرید تکی و دانلود | 160,000 تومان (5 روز مهلت دانلود) زمان تقریبی آماده سازی لینک دانلود این دوره آموزشی حدود 5 تا 24 ساعت می باشد.
جزییات دوره
13 hours
130
Udemy (یودمی) udemy-small
05 اردیبهشت 1402 (آخرین آپدیت رو دریافت می‌کنید، حتی اگر این تاریخ بروز نباشد.)
481
4.7 از 5
دارد
دارد
دارد

Google Chrome Browser

Internet Download Manager

Pot Player

Winrar

Pragmatic Code School Pragmatic Code School

علاقه مندان به فناوری، مدرس آنلاین

Udemy (یودمی)

یودمی یکی از بزرگ‌ترین پلتفرم‌های آموزشی آنلاین است که به میلیون‌ها کاربر در سراسر جهان امکان دسترسی به دوره‌های متنوع و کاربردی را فراهم می‌کند. این پلتفرم امکان آموزش در زمینه‌های مختلف از فناوری اطلاعات و برنامه‌نویسی گرفته تا زبان‌های خارجی، مدیریت، و هنر را به کاربران ارائه می‌دهد. با استفاده از یودمی، کاربران می‌توانند به صورت انعطاف‌پذیر و بهینه، مهارت‌های جدیدی را یاد بگیرند و خود را برای بازار کار آماده کنند.

یکی از ویژگی‌های برجسته یودمی، کیفیت بالای دوره‌ها و حضور استادان مجرب و با تجربه در هر حوزه است. این امر به کاربران اعتماد می‌دهد که در حال دریافت آموزش از منابع قابل اعتماد و معتبر هستند و می‌توانند به بهترین شکل ممکن از آموزش‌ها بهره ببرند. به طور خلاصه، یودمی به عنوان یکی از معتبرترین و موثرترین پلتفرم‌های آموزشی آنلاین، به افراد امکان می‌دهد تا به راحتی و با کیفیت، مهارت‌های مورد نیاز خود را ارتقا دهند و به دنبال رشد و پیشرفت شغلی خود باشند.