دوره آموزشی Spring Batch

توضیحات

Spring Batch چیست؟

Spring Batch یک فریم‌ورک متن‌باز برای پردازش دسته‌ای (Batch Processing) است. این فریم‌ورک یک راهکار سبک اما جامع به شمار می‌رود که با هدف توسعه برنامه‌های Batch پایدار و قابل‌اعتماد طراحی شده است؛ برنامه‌هایی که معمولاً در سامانه‌های سازمانی مدرن به‌وفور یافت می‌شوند. Spring Batch بر پایه رویکرد توسعه مبتنی بر POJO در Spring Framework بنا شده است.

Spring Batch مجموعه‌ای از قابلیت‌های قابل‌استفاده‌مجدد ارائه می‌دهد که برای پردازش حجم بالای رکوردها حیاتی هستند؛ از جمله لاگ‌گیری و رهگیری، مدیریت تراکنش، آمار پردازش Job، قابلیت ادامه اجرای Job (Restart)، نادیده‌گیری خطاها (Skip) و مدیریت منابع.
این فریم‌ورک همچنین سرویس‌های فنی پیشرفته و قابلیت‌هایی ارائه می‌دهد که با استفاده از تکنیک‌های بهینه‌سازی و پارتیشن‌بندی (Partitioning)، امکان اجرای Jobهای بسیار حجیم و با کارایی بالا را فراهم می‌سازد.
چه Jobهای ساده و چه Jobهای پیچیده و حجیم، همگی می‌توانند با بهره‌گیری از Spring Batch به‌صورت بسیار مقیاس‌پذیر، حجم قابل‌توجهی از داده‌ها را پردازش کنند.

Spring Batch بخشی از پورتفوی Spring به شمار می‌رود.

نسخه 1.0.0 این فریم‌ورک در مارس 2008 منتشر شد و نسخه 2.0.0 نیز در آوریل 2009 در دسترس عموم قرار گرفت.

منبع: ویکی پدیا

با شروع دوره Spring Batch چه ارزشی به دانشجویان شرکت کننده اضافه می شود؟

  • یادگیری پردازش داده‌های دسته‌ای (Batch Processing) که پایه بسیاری از سیستم‌های بانکی، بیمه، بیمه سلامت و تجارت الکترونیک است.
  • درک معماری و مفاهیم Enterprise Batch مثل Job, Step, Chunk Processing، Retry/Skip، Transaction Management.
  • توانایی طراحی Pipelineهای پردازشی قابل اطمینان و مقیاس‌پذیر.
  • مهارت در مدیریت خطا، Restartability و fault tolerance برای سیستم‌های تولید واقعی.
  • تجربه عملی با Spring Batch و Spring Boot و آشنایی با JobRepository، Listeners و Monitoring.
  • آماده‌سازی برای بازار کار Enterprise Java و سیستم‌هایی که حجم داده زیاد دارند.

دستاوردهای دانشجویان بعد از پایان دوره Spring Batch چه خواهد بود؟

بعد از اتمام دوره، دانشجویان قادر خواهند بود:

  • یک Job کامل Spring Batch بسازند و Stepهای مختلف آن را مدیریت کنند.
  • انواع Reader, Processor, Writer را پیاده‌سازی و بهینه کنند.
  • خطاها و استثناها را در پردازش داده‌ها مدیریت کنند (Skip/Retry/Dead Letter Queue).
  • Jobها را مانیتور و مدیریت کنند و از داده‌های متادیتا (Execution, StepExecution) استفاده کنند.
  • Jobهای چند مرحله‌ای و شرطی طراحی کنند (Conditional Steps, Job Flow).
  • Jobهای خود را با Parallelism و Partitioning مقیاس‌پذیر کنند.
  • Jobها و Stepها را در محیط واقعی و با دیتابیس عملیاتی اجرا و تست کنند.

 دوره Spring Batch برای چه کسانی مناسب است؟

  • توسعه‌دهندگان Java که با Spring Boot آشنا هستند و می‌خواهند مهارت خود را به سطح Enterprise ارتقا دهند.
  • علاقه‌مندان به ETL، Big Data، یا پردازش داده‌های حجیم.
  • کسانی که می‌خواهند در بانک، بیمه، مخابرات یا سیستم‌های ERP کار کنند.
  • توسعه‌دهندگانی که می‌خواهند با Jobهای قابل اطمینان و مدیریت‌شده آشنا شوند.

این دوره برای چه کسانی مناسب نیست؟

  • کسانی که تازه با جاوا یا Spring Boot آشنا شده‌اند و هنوز مباحث پایه‌ای را یاد نگرفته‌اند.
  • افرادی که فقط به کار با دیتابیس یا Frontend ساده علاقه دارند و قصد طراحی پردازش Batch ندارند.
  • کسانی که نمی‌خواهند با مدیریت Jobها، متادیتا و fault-tolerance آشنا شوند.
  • کسانی که اهل تمرین،پروژه زدن و تکرار نیستند و یجای یادگیری فقط میخواهند تماشا کنند 
  • کسانی که عمل گرا نیستند و در مسیر یادگیری اقدام نمی کنند.
  • افرادی که با چالش ،خطا و Debugging مشکل دارند و حاضر نیستند فرآیند واقعی یادگیری را تجربه کنند.
  • کسانی که نمی خواهد با کسب مهارت جدید جایگاه فعلی خود را ارتقا دهند.

این دوره، شما را از یک برنامه‌نویس معمولی Spring Boot به یک متخصص طراحی و پیاده‌سازی پردازش‌های دسته‌ای و Enterprise-ready تبدیل می‌کند. شما مهارت‌هایی یاد می‌گیرید که در پروژه‌های بزرگ بانکی، بیمه و تجارت الکترونیک کاملاً ارزشمند است و اکثر شرکت‌ها دنبال چنین تجربه‌ای هستند.

در پیش ثبت نام می توانید دوره را با قیمت مناسب تر خریداری کنید.

دوره درحال تهیه است و ممکن است سرفصل های زیر تغییر کند ولی کلیات محتوای آموزشی دوره Spring Batch به صورت زیر است:

فصل اول:مقدمه و مفاهیم پایه Spring Batch

1.1.چی هست Spring Batch و چه مسائلی را حل می‌کند ویدئو

پیش نمایش
خصوصی
این بخش خصوصی می باشد. برای دسترسی کامل به دروس این دوره باید این دوره را خریداری نمایید.

2.1.معماری کلی: Job, Step, JobRepository, JobLauncher ویدئو

خصوصی
این بخش خصوصی می باشد. برای دسترسی کامل به دروس این دوره باید این دوره را خریداری نمایید.

3.1.تفاوت batch vs stream ویدئو

خصوصی
این بخش خصوصی می باشد. برای دسترسی کامل به دروس این دوره باید این دوره را خریداری نمایید.

4.1.تمرین: ایجاد یک پروژه Spring Boot با dependency spring-boot-starter-batch و اجرای یک Job خالی ویدئو

خصوصی
این بخش خصوصی می باشد. برای دسترسی کامل به دروس این دوره باید این دوره را خریداری نمایید.
فصل دوم:Job و Step

1.2.ساختار Job و Step ویدئو

خصوصی
این بخش خصوصی می باشد. برای دسترسی کامل به دروس این دوره باید این دوره را خریداری نمایید.

2.2.Tasklet-based Step vs Chunk-oriented Step ویدئو

خصوصی
این بخش خصوصی می باشد. برای دسترسی کامل به دروس این دوره باید این دوره را خریداری نمایید.

3.2.JobParameters و JobInstance/JobExecution/StepExecution ویدئو

خصوصی
این بخش خصوصی می باشد. برای دسترسی کامل به دروس این دوره باید این دوره را خریداری نمایید.

تمرین: تعریف یک Job با دو Step (اولی tasklet چاپ متن، دومی chunk ساده) فایل های ضمیمه

خصوصی
این بخش خصوصی می باشد. برای دسترسی کامل به دروس این دوره باید این دوره را خریداری نمایید.
فصل سوم: ItemReader / ItemProcessor / ItemWriter (هستهٔ پردازش chunk)

1.3. انواع Readerها: FlatFileItemReader, JdbcCursorItemReader, JpaPagingItemReader, StaxEventItemReader ویدئو

خصوصی
این بخش خصوصی می باشد. برای دسترسی کامل به دروس این دوره باید این دوره را خریداری نمایید.

2.3.Processor برای منطق تجاری ویدئو

خصوصی
این بخش خصوصی می باشد. برای دسترسی کامل به دروس این دوره باید این دوره را خریداری نمایید.

3.3.Writerها: FlatFileItemWriter, JdbcBatchItemWriter, JpaItemWriter ویدئو

خصوصی
این بخش خصوصی می باشد. برای دسترسی کامل به دروس این دوره باید این دوره را خریداری نمایید.

4.3.مفهوم chunk و commit-interval ویدئو

خصوصی
این بخش خصوصی می باشد. برای دسترسی کامل به دروس این دوره باید این دوره را خریداری نمایید.

تمرین: پیاده‌سازی یک Job که از فایل CSV می‌خواند، پردازش می‌کند و در دیتابیس می‌نویسد. فایل های ضمیمه

خصوصی
این بخش خصوصی می باشد. برای دسترسی کامل به دروس این دوره باید این دوره را خریداری نمایید.
فصل چهارم :پیکربندی JobRepository و metadata tables

1.4.JobRepository، JobLauncher، JobExplorer ویدئو

خصوصی
این بخش خصوصی می باشد. برای دسترسی کامل به دروس این دوره باید این دوره را خریداری نمایید.

4.2.• ساخت جداول metadata (schema) و تنظیمات datasource برای JobRepository ویدئو

خصوصی
این بخش خصوصی می باشد. برای دسترسی کامل به دروس این دوره باید این دوره را خریداری نمایید.

3.4.• درک مفاهیم restartability و how metadata کمک می‌کند ویدئو

خصوصی
این بخش خصوصی می باشد. برای دسترسی کامل به دروس این دوره باید این دوره را خریداری نمایید.

تمرین: پیکربندی JobRepository در دیتابیس H2/Postgres و مشاهده جداول BATCH_JOB_EXECUTION و … . فایل های ضمیمه

خصوصی
این بخش خصوصی می باشد. برای دسترسی کامل به دروس این دوره باید این دوره را خریداری نمایید.
فصل پنجم: Retry و Skip و Fault Tolerance

1.5.پیکربندی skip, retry, skipPolicy, retryPolicy ویدئو

خصوصی
این بخش خصوصی می باشد. برای دسترسی کامل به دروس این دوره باید این دوره را خریداری نمایید.

2.5.تفاوت skip vs fail vs retry ویدئو

خصوصی
این بخش خصوصی می باشد. برای دسترسی کامل به دروس این دوره باید این دوره را خریداری نمایید.

3.5.تنظیم محدودیت‌ها و انواع استثناها ویدئو

خصوصی
این بخش خصوصی می باشد. برای دسترسی کامل به دروس این دوره باید این دوره را خریداری نمایید.

تمرین: بساز یک job که در صورت بروز خطای موقتی، رکورد را retry کند و در صورت خطای دائمی آن را skip کند. فایل های ضمیمه

خصوصی
این بخش خصوصی می باشد. برای دسترسی کامل به دروس این دوره باید این دوره را خریداری نمایید.
فصل ششم:Transaction Management و Isolation

1.6.• تعامل با تراکنش‌ها در chunk processing ویدئو

خصوصی
این بخش خصوصی می باشد. برای دسترسی کامل به دروس این دوره باید این دوره را خریداری نمایید.

2.6.commit-interval و اثر آن بر rollback ویدئو

خصوصی
این بخش خصوصی می باشد. برای دسترسی کامل به دروس این دوره باید این دوره را خریداری نمایید.

3.6.isolation levels و locking در دیتابیس ویدئو

خصوصی
این بخش خصوصی می باشد. برای دسترسی کامل به دروس این دوره باید این دوره را خریداری نمایید.

تمرین: نشان بده که در صورت exception در پردازش یک chunk چه داده‌هایی commit شده و چه‌ چیزهایی rollback می‌شوند. فایل های ضمیمه

خصوصی
این بخش خصوصی می باشد. برای دسترسی کامل به دروس این دوره باید این دوره را خریداری نمایید.
فصل هفتم:Scopeها: @StepScope و @JobScope

1.7.• تفاوت bean scopes در Batch ویدئو

خصوصی
این بخش خصوصی می باشد. برای دسترسی کامل به دروس این دوره باید این دوره را خریداری نمایید.

2.7.• استفاده از JobParameters داخل Reader/Writer/Processor با @Value و scopeها ویدئو

خصوصی
این بخش خصوصی می باشد. برای دسترسی کامل به دروس این دوره باید این دوره را خریداری نمایید.

تمرین: خواندن پارامتر مسیر فایل از JobParameters داخل یک @StepScope Reader. فایل های ضمیمه

خصوصی
این بخش خصوصی می باشد. برای دسترسی کامل به دروس این دوره باید این دوره را خریداری نمایید.
فصل هشتم:Listeners، Validators و Lifecycle hooks

1.8.JobExecutionListener، StepExecutionListener، ItemReadListener، ItemWriteListener ویدئو

خصوصی
این بخش خصوصی می باشد. برای دسترسی کامل به دروس این دوره باید این دوره را خریداری نمایید.

2.8.• JobParametersValidator برای اعتبارسنجی ورودی‌ها ویدئو

خصوصی
این بخش خصوصی می باشد. برای دسترسی کامل به دروس این دوره باید این دوره را خریداری نمایید.

تمرین: اضافه کردن listener برای لاگ‌گیری شروع/پایان job و زمان اجرای step. فایل های ضمیمه

خصوصی
این بخش خصوصی می باشد. برای دسترسی کامل به دروس این دوره باید این دوره را خریداری نمایید.
فصل نهم:9 — Flow، Decision و Conditional Steps

1.9.ساخت جریان‌های پیچیده: Flow, JobBuilder، Split, Decision (JobExecutionDecider) ویدئو

خصوصی
این بخش خصوصی می باشد. برای دسترسی کامل به دروس این دوره باید این دوره را خریداری نمایید.

2.9.اجرای شرطی stepها بر اساس نتیجه‌های قبل ویدئو

خصوصی
این بخش خصوصی می باشد. برای دسترسی کامل به دروس این دوره باید این دوره را خریداری نمایید.

تمرین: یک job بساز که بسته به مقدار پارامتری، مسیر متفاوتی را اجرا کند. فایل های ضمیمه

خصوصی
این بخش خصوصی می باشد. برای دسترسی کامل به دروس این دوره باید این دوره را خریداری نمایید.
فصل دهم:Parallelism, Partitioning و Scalability

1.10.چگونگی موازی‌سازی: multi-threaded Step (TaskExecutor)، partitioning (local & remote) ویدئو

خصوصی
این بخش خصوصی می باشد. برای دسترسی کامل به دروس این دوره باید این دوره را خریداری نمایید.

2.10.remote chunking و remote partitioning (معماری توزیع‌شده) ویدئو

خصوصی
این بخش خصوصی می باشد. برای دسترسی کامل به دروس این دوره باید این دوره را خریداری نمایید.

3.10.نکات همزمانی و coordination ویدئو

خصوصی
این بخش خصوصی می باشد. برای دسترسی کامل به دروس این دوره باید این دوره را خریداری نمایید.

تمرین: پیاده‌سازی partitioner محلی که یک فایل بزرگ را به N پارت تقسیم می‌کند و موازی می‌خواند. فایل های ضمیمه

خصوصی
این بخش خصوصی می باشد. برای دسترسی کامل به دروس این دوره باید این دوره را خریداری نمایید.
فصل یازدهم:Remote Chunking و Spring Cloud Integration

1.11.ایدهٔ remote chunking (پردازش writer در worker جدا) ویدئو

خصوصی
این بخش خصوصی می باشد. برای دسترسی کامل به دروس این دوره باید این دوره را خریداری نمایید.

2.11.ارتباط با Spring Cloud یا messaging (Kafka/RabbitMQ) برای remote partitioning ویدئو

خصوصی
این بخش خصوصی می باشد. برای دسترسی کامل به دروس این دوره باید این دوره را خریداری نمایید.

تمرین (پیشرفته): نمونهٔ ساده remote chunking با استفاده از یک صف پیام. فایل های ضمیمه

خصوصی
این بخش خصوصی می باشد. برای دسترسی کامل به دروس این دوره باید این دوره را خریداری نمایید.
فصل دوازدهم:Monitoring، Management و Job Explorer

1.12.استفاده از JobExplorer برای مشاهده اجراها ویدئو

خصوصی
این بخش خصوصی می باشد. برای دسترسی کامل به دروس این دوره باید این دوره را خریداری نمایید.

2.12.لاگینگ و metricها ویدئو

خصوصی
این بخش خصوصی می باشد. برای دسترسی کامل به دروس این دوره باید این دوره را خریداری نمایید.

3.12.Spring Boot Actuator integration برای endpoints مرتبط ویدئو

خصوصی
این بخش خصوصی می باشد. برای دسترسی کامل به دروس این دوره باید این دوره را خریداری نمایید.

تمرین: نمایش فهرست اجراهای Job و وضعیت آن‌ها با JobExplorer. فایل های ضمیمه

خصوصی
این بخش خصوصی می باشد. برای دسترسی کامل به دروس این دوره باید این دوره را خریداری نمایید.
فصل سیزدهم:Testing در Spring Batch

1.13.Unit test برای Processor/Writer/Reader با JUnit و Mockito ویدئو

خصوصی
این بخش خصوصی می باشد. برای دسترسی کامل به دروس این دوره باید این دوره را خریداری نمایید.

2.13.Integration test برای Job با JobLauncherTestUtils و @SpringBatchTest ویدئو

خصوصی
این بخش خصوصی می باشد. برای دسترسی کامل به دروس این دوره باید این دوره را خریداری نمایید.

3.13.Testcontainers برای دیتابیس واقعی در تست‌ها ویدئو

خصوصی
این بخش خصوصی می باشد. برای دسترسی کامل به دروس این دوره باید این دوره را خریداری نمایید.

تمرین: نوشتن integration test که یک Job را اجرا کند و پایگاه‌داده را اعتبارسنجی کند. فایل های ضمیمه

تمرین: نوشتن integration test که یک Job را اجرا کند و پایگاه‌داده را اعتبارسنجی کند.

خصوصی
این بخش خصوصی می باشد. برای دسترسی کامل به دروس این دوره باید این دوره را خریداری نمایید.
فصل چهاردهم:Performance tuning و best practices

1.14.تعیین مناسب commit-interval ویدئو

خصوصی
این بخش خصوصی می باشد. برای دسترسی کامل به دروس این دوره باید این دوره را خریداری نمایید.

2.14.batch inserts، JDBC batch size، prepared statements ویدئو

خصوصی
این بخش خصوصی می باشد. برای دسترسی کامل به دروس این دوره باید این دوره را خریداری نمایید.

3.14.memory footprint برای large datasets ویدئو

خصوصی
این بخش خصوصی می باشد. برای دسترسی کامل به دروس این دوره باید این دوره را خریداری نمایید.

4.14.tuning thread pools و datasource connection pools ویدئو

خصوصی
این بخش خصوصی می باشد. برای دسترسی کامل به دروس این دوره باید این دوره را خریداری نمایید.

تمرین: مقایسه performance برای chunk sizeهای مختلف و گزارش بهترین مقدار. فایل های ضمیمه

خصوصی
این بخش خصوصی می باشد. برای دسترسی کامل به دروس این دوره باید این دوره را خریداری نمایید.
فصل پانزدهم:Error handling در production و retry strategies پیشرفته

1.15.استراتژی‌های backoff، exponential retry ویدئو

خصوصی
این بخش خصوصی می باشد. برای دسترسی کامل به دروس این دوره باید این دوره را خریداری نمایید.

2.15.dead-letter handling و alerting ویدئو

خصوصی
این بخش خصوصی می باشد. برای دسترسی کامل به دروس این دوره باید این دوره را خریداری نمایید.

3.15.طراحی idempotent writers برای ایمنی در دوباره‌اجراها ویدئو

خصوصی
این بخش خصوصی می باشد. برای دسترسی کامل به دروس این دوره باید این دوره را خریداری نمایید.

تمرین: پیاده‌سازی exponential backoff برای retries و ارسال خطاها به DLQ. فایل های ضمیمه

خصوصی
این بخش خصوصی می باشد. برای دسترسی کامل به دروس این دوره باید این دوره را خریداری نمایید.
فصل شانزدهم:Migration و نسخه‌ها (اگر مربوطه)

1.16.تفاوت‌های نسخه‌های Spring Batch (اگر از ورژن قدیمی می‌آیی) ویدئو

خصوصی
این بخش خصوصی می باشد. برای دسترسی کامل به دروس این دوره باید این دوره را خریداری نمایید.

2.16.نکات مهاجرت از legacy jobs به Spring Batch ویدئو

خصوصی
این بخش خصوصی می باشد. برای دسترسی کامل به دروس این دوره باید این دوره را خریداری نمایید.
فصل هفدهم: مباحث تکمیلی و اکوسیستم

1.17.Spring Cloud Data Flow (orchestrating, scheduling, streaming & batch) ویدئو

خصوصی
این بخش خصوصی می باشد. برای دسترسی کامل به دروس این دوره باید این دوره را خریداری نمایید.

2.17.Integration با Hadoop / Spark (معرفی برای پردازش‌های خیلی بزرگ) ویدئو

خصوصی
این بخش خصوصی می باشد. برای دسترسی کامل به دروس این دوره باید این دوره را خریداری نمایید.
فصل هجدهم:پروژه نهایی پیشنهادی

1.18.پیاده‌سازی یک pipeline کامل ویدئو

خصوصی
این بخش خصوصی می باشد. برای دسترسی کامل به دروس این دوره باید این دوره را خریداری نمایید.

2.18.خواندن میلیون‌ها رکورد از CSV یا دیتابیس ویدئو

خصوصی
این بخش خصوصی می باشد. برای دسترسی کامل به دروس این دوره باید این دوره را خریداری نمایید.

3.18.پردازش/تبدیل داده‌ها ویدئو

خصوصی
این بخش خصوصی می باشد. برای دسترسی کامل به دروس این دوره باید این دوره را خریداری نمایید.

4.18.نوشتن در دیتابیس با batching ویدئو

خصوصی
این بخش خصوصی می باشد. برای دسترسی کامل به دروس این دوره باید این دوره را خریداری نمایید.

5.18.مدیریت خطا (skip/retry/DLQ) ویدئو

خصوصی
این بخش خصوصی می باشد. برای دسترسی کامل به دروس این دوره باید این دوره را خریداری نمایید.

6.18.partitioning و موازی‌سازی ویدئو

خصوصی
این بخش خصوصی می باشد. برای دسترسی کامل به دروس این دوره باید این دوره را خریداری نمایید.

7.18.تست و monitoring ویدئو

نظرات (0)

نقد و بررسی‌ها

هنوز بررسی‌ای ثبت نشده است.

.فقط مشتریانی که این محصول را خریداری کرده اند و وارد سیستم شده اند میتوانند برای این محصول دیدگاه(نظر) ارسال کنند.