๐ ๊ฐ์
[2024/๊ฐ๋ฐ] - Spring Cloud Data Flow ๋ก์ปฌ ๊ตฌ์ถ๊ธฐ๋ฅผ ํตํด ๋ก์ปฌ PC์ ๊ตฌ์ถ์ ์ฑ๊ณตํ์ผ๋,
์ด๋ค ๊ตฌ์กฐ๋ก ๋์ํ๋์ง๋ ์ด๋ค ๊ธฐ๋ฅ์ด ์ ๊ณต๋๋์ง ๋ฑ์ ๋ํด์ ๋ชจ๋ฅด๋ ๋ญ ํ ์๊ฐ ์๋ค.
Spring Cloud Data Flow ๊ณต์ ์ฌ์ดํธ์์ ์ค๋ช ํด์ฃผ๋ ๋ด์ฉ๋ค์ ๊ณต๋ถํด๋ณด์.
๐จ๐ป Spring Cloud Data Flow ํบ์๋ณด๊ธฐ - Architecture (1)
Data Flow๋ ์ฃผ์ ์ปดํฌ๋ํธ๋ก Data Flow Server์ Skipper Server๋ฅผ ๊ฐ์ง๋ค.
์ฃผ๋ก Data Flow Server์์ ์ ๊ณตํ๋ RESTful API๋ฅผ ์ด์ฉํ์ฌ Data Flow๋ฅผ ์ด์ฉํ๋ค.
Web Dashboard, Data Flow Shell๋ Data Flow Server์์ ์ ๊ณตํ๋ RESTful API๋ฅผ ํธ์ถํ๋ ๊ตฌ์กฐ์ด๋ค.
Data Flow Server
Data Flow Server๋ ๋ค์์ ๋ด๋นํ๋ค.
- Domain-Specific Language(DSL)๋ก ์ ์๋ Stream, Batch Job์ ํ์ฑํ๋ค.
- Stream, Batch Job ์ ์๋ฅผ ๊ฒ์ฆํ๊ณ ์ ์งํ๋ค.
- DSL๋ก ์ฌ์ฉ๋๋ jar๋ Docker ์ด๋ฏธ์ง๋ฅผ artifact๋ก ๋ฑ๋กํ๋ค.
- Batch Job์ ํ๋ ์ด์์ ํ๋ซํผ์ ๋ฐฐํฌํ๋ค.
- ์์ ์ค์ผ์ฅด๋ง์ ํ๋ซํผ์ผ๋ก ์ ๋ฌํ๋ค.
- Task, Batch Job์ ๋ํ ์ํ ์ด๋ ฅ์ ์ ๊ณตํ๋ค.
- Stream์ผ๋ก ๋ฉ์ธ์ง ํต์ ์ ํตํด ์ค์ ์ ๋ณด๋ฅผ ์ถ๊ฐํ ์ ์๋ค.
- Skipper๋ก Stream ๋ฐฐํฌ ์ํ์ ์ ๋ฌํ๋ค.
- Stream, Batch Job ์์ฑ, ๋ฐฐํฌ, ์ญ์ ๋์์ ์ํํ๋ค.
- Stream, Batch Job DSL ์๋์์ฑ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ค.
Skipper Server
Skipper Server๋ ๋ค์์ ๋ด๋นํ๋ค.
- Stream์ ํ๋ ์ด์์ ํ๋ซํผ์ ๋ฐฐํฌํ๋ค.
- ํ๋ ์ด์์ ํ๋ซํผ์์ Stream์ ์ ๊ทธ๋ ์ด๋ํ๊ฑฐ๋ ๋กค๋ฐฑํ๋ค. (๋ธ๋ฃจ-๊ทธ๋ฆฐ ์ ๊ทธ๋ ์ด๋ ์ ์ฑ )
- ๊ฐ Stream์ ๋ํ manifest ๋ณ๊ฒฝ์ด๋ ฅ์ ์ ์ฅํ๋ค.
Database
Data Flow Server, Skipper Server๋ RDBMS๊ฐ ํ์ํ๋ค.
๊ธฐ๋ณธ๊ฐ์ผ๋ก๋ ๋ด์ฅ H2 Database๋ฅผ ์ฌ์ฉํ๊ณ , ์ธ๋ถ Database๋ฅผ ์ฐ๊ฒฐํ์ฌ ์ด์ฉํ ์ ์๋ค.
์ง์๋๋ RDBMS๋ก๋ H2, HSQLDB, MariaDB, Oracle, Postgresql, DB2, SqlServer๊ฐ ์๋ค.
Security
Data Flow Server, Skipper Server๋ ์ธ์ฆ ๋ฐฉ์์ผ๋ก Basic Auth, OAuth 2.0์ ์ง์ํ๋ค.
ํ์ํ๋ค๋ฉด ๋ค๋ฅธ ๋ฐฉ๋ฒ์ผ๋ก๋ ์ค์ ํ ์ ์๋๋ก ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ ๊ฒ์ผ๋ก ๋ณด์ธ๋ค.
Application Types
๋๊ฐ์ง ํ์ ์ ์ดํ๋ฆฌ์ผ์ด์ ์ ์ ๊ณตํ๋ค.
- Long-lived applications : ๋ฌด์ ํ ๋ฐ์ดํฐ๋ฅผ ๋ฉ์ธ์ง ๊ธฐ๋ฐ์ผ๋ก ์ฒ๋ฆฌํ๋ ์ดํ๋ฆฌ์ผ์ด์
- ๋จ์ผ ์ /์ถ๋ ฅ ๋๋ ๋ค์ ์ /์ถ๋ ฅ์ ๊ฐ์ง ์ ์๋ค.
- Short-lived applications : ์ ํํ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๊ณ ์ข
๋ฃ๋๋ ์ดํ๋ฆฌ์ผ์ด์
- Data Flow DB์ ์ํ ์ํ๋ฅผ ๊ธฐ๋กํ๋ฉด์ ์ฝ๋๋ฅผ ์ํํ๋ Task
Java ์ดํ๋ฆฌ์ผ์ด์ ์ด ์๋ Spring Cloud Task Framework๋ฅผ ์ฌ์ฉํ ์๋ ์๋ค. - Spring Batch ํ๋ ์์ํฌ๋ฅผ ํฌํจํ Task ํ์ฅ
- Data Flow DB์ ์ํ ์ํ๋ฅผ ๊ธฐ๋กํ๋ฉด์ ์ฝ๋๋ฅผ ์ํํ๋ Task
์ผ๋ฐ์ ์ผ๋ก,
Spring Cloud Stream๊ธฐ๋ฐ Long-lived application๊ณผ
Spring Cloud Task/Spring Batch ๊ธฐ๋ฐ Short-lived application์ ์ฌ์ฉํ๋ค.
๊ผญ Spring์ ์ฌ์ฉํ์ง ์๋๋ผ๋ Data Flow Application์ผ๋ก ์ฌ์ฉํ ์ ์์ผ๋ฉฐ,
๋ค๋ฅธ ์ธ์ด๋ก ์์ฑ๋ ๊ฒ ๋ํ ์ฌ์ฉํ ์ ์๋ค.
Application์ Maven Repository, File Location, HTTP๋ก ์ ๊ทผํ ์ ์๋ uber-jar ๋ Docker image๋ก ํจํค์ง์ ํ๋ฉด ๋๋ค.
๐ฌ ๋งบ์๋ง
์ต์ด Spring Batch ์์ ์ ๊ด๋ฆฌํ๋ ๋๊ตฌ๋ฅผ ์ฐพ๊ธฐ ์์ํ ์ฌ์ ์ค
Spring Batch์ ๊ด๋ จ๋ ๋ด์ฉ๋ค์ด ํ๋์ฉ ๋์ค๋ ์ฌ๋ฏธ์๋ค์.
๋ค์ ํธ์ Long-lived Applications, Short-lived Applications ๋ ์์๋ณด๊ธฐ๋ก ์ฐพ์๋ต๊ฒ ์ต๋๋ค.
'2024 > ๊ฐ๋ฐ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Spring Cloud Data Flow ๋ก์ปฌ ๊ตฌ์ถ๊ธฐ (0) | 2024.08.01 |
---|---|
Spring Batch ๊ด๋ฆฌ ๋๊ตฌ Jenkins ๋์ ํ์๊ธฐ (0) | 2024.07.28 |
GenAI ? LLM ? (2) | 2024.04.22 |