Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Cloud Batch
Search
Rodrigo Graciano
October 07, 2022
Programming
0
130
Cloud Batch
Deck for the Batch Processing Cloud Apps with Java
Rodrigo Graciano
October 07, 2022
Tweet
Share
More Decks by Rodrigo Graciano
See All by Rodrigo Graciano
Your Java isn't the same
graciano
0
150
Batch Processing
graciano
0
290
Java 9 ao 17 - Oracle no TDC
graciano
0
96
KnoxJava - Java 9-17
graciano
0
140
Of concurrency and other demons
graciano
0
94
Java 9 to Java 16: A review of recent changes to the language
graciano
0
110
Java 9 ao 15 - Evolução da Linguagem Java
graciano
0
240
Other Decks in Programming
See All in Programming
みんなでプロポーザルを書いてみた
yuriko1211
0
260
Kaigi on Rails 2024 〜運営の裏側〜
krpk1900
1
210
型付き API リクエストを実現するいくつかの手法とその選択 / Typed API Request
euxn23
8
2.2k
3rd party scriptでもReactを使いたい! Preact + Reactのハイブリッド開発
righttouch
PRO
1
600
シールドクラスをはじめよう / Getting Started with Sealed Classes
mackey0225
4
640
LLM生成文章の精度評価自動化とプロンプトチューニングの効率化について
layerx
PRO
2
190
watsonx.ai Dojo #4 生成AIを使ったアプリ開発、応用編
oniak3ibm
PRO
1
100
Tauriでネイティブアプリを作りたい
tsucchinoko
0
370
Hotwire or React? ~アフタートーク・本編に含めなかった話~ / Hotwire or React? after talk
harunatsujita
1
120
What’s New in Compose Multiplatform - A Live Tour (droidcon London 2024)
zsmb
1
470
聞き手から登壇者へ: RubyKaigi2024 LTでの初挑戦が 教えてくれた、可能性の星
mikik0
1
130
Generative AI Use Cases JP (略称:GenU)奮闘記
hideg
1
290
Featured
See All Featured
How to train your dragon (web standard)
notwaldorf
88
5.7k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
25
1.8k
Unsuck your backbone
ammeep
668
57k
The Art of Programming - Codeland 2020
erikaheidi
52
13k
The Straight Up "How To Draw Better" Workshop
denniskardys
232
140k
VelocityConf: Rendering Performance Case Studies
addyosmani
325
24k
Stop Working from a Prison Cell
hatefulcrawdad
267
20k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
6
410
Raft: Consensus for Rubyists
vanstee
136
6.6k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
4
370
The Power of CSS Pseudo Elements
geoffreycrofte
73
5.3k
Fantastic passwords and where to find them - at NoRuKo
philnash
50
2.9k
Transcript
BATCH PROCESSING CLOUD APPS WITH JAVA ELDER MORAES RODRIGO GRACIANO
OUTUBRO 2022
WHAT SPRING BATCH IS? Spring Batch is a lightweight, comprehensive
batch framework designed to enable the development of robust batch applications vital for the daily operations of enterprise systems. https://docs.spring.io/spring-batch/docs/current/reference/html/index-single.html#spring-batch-intro
WHAT SPRING BATCH IS NOT? Spring Batch is not a
scheduler https://docs.spring.io/spring-batch/docs/current/reference/html/index-single.html#spring-batch-intro
RODRIGO GRACIANO • Principal Software Engineer - NY • Líder
do JUG de NY - NYJavaSIG • graciano.dev • Twitter: @rodrigograciano
ELDER MORAES • Java Champion • Autor de diversos livros
• Developer Advocate na Red Hat • Líder do SouJava • eldermoraes.com • Twitter: @elderjava
THE BASICS
BATCH VOCABULARY
BATCH COMPONENTS JOB
BATCH COMPONENTS STEP
BATCH ARCHITECTURE https://docs.spring.io/spring-batch/docs/current/reference/html/images/spring-batch-reference-model.png JobRepository JobLauncher Job Step 1 *
BATCH COMPONENTS TASKLET
TASKLETS • 1 time operation instead of read/write • Run
a DB query • Copy Files • Zip/unzip files
CHUNK TASKLET - STEP SEQUENCE Process Step Read Write
CHUNK-ORIENTED STEP + PROCESSORS https://docs.spring.io/spring-batch/docs/current/reference/html/images/chunk-oriented-processing-with-item-processor.png
SHOW ME SOME CODE: BASIC DEMO This Photo by Unknown
Author is licensed under CC BY-NC-ND
• JobRepository • JobLauncher • JobRegistry • JobExplorer • PlatformTransactionManager
• JobBuilderFactory • StepBuilderFactory @EnableBatchProcessing
JOB REPOSITORY •It’s how Job, Step, JobParameters, JobExecution, and StepExecution
are persisted
READERS • Database (JDBC, Mongo, Neo4j, Hibernate, etc.) • Flat
Files (delimited, fixed-length) • XML, JSON • JMS, Kafka, Amqp • Multi-file
WRITERS • Database (JDBC, Mongo, Neo4j, Hibernate, etc.) • Flat
Files (delimited, fixed-length) • XML, JSON • JMS, Kafka, Amqp • Multi-file • Email
PROCESSORS •Transforming •Filtering •Validations
LISTENERS JobExecutionListener StepExecutionListener ItemReadListener ItemWriteListener ChunkListener ItemProcessListener SkipListener
JOB EXECUTION LISTENERS
BEYOND THE BASICS SCALING AND PARALLEL PROCESSING
SCALING AND PARALLEL PROCESSING •Parallel steps •Multi-threaded •Async Processor and
AsyncWriter •Remote Partitioning •Remote Chunking
SCALING AND PARALLEL PROCESSING •Parallel steps •Multi-threaded •Async Processor and
AsyncWriter •Remote Partitioning •Remote Chunking
PARALLEL PROCESSING Step 1 Step 2 Step 3 Start Step
4
SCALING AND PARALLEL PROCESSING •Parallel steps •Multi-threaded •Async Processor and
AsyncWriter •Remote Partitioning •Remote Chunking
SCALING AND PARALLEL PROCESSING •Parallel steps •Multi-threaded •Async Processor and
AsyncWriter •Remote Partitioning •Remote Chunking
SCALING AND PARALLEL PROCESSING •Parallel steps •Multi-threaded •Async Processor and
AsyncWriter •Remote Partitioning •Remote Chunking
None
WHAT ABOUT THE CLOUD?
QUESTIONS? https://github.com/rodrigolgraciano/cloud-batch.git https://speakerdeck.com/graciano/cloud-batch @rodrigograciano @ elderjava