- ์คํ๋ง5์ WebFlux ์ฌ์ฉ
- RabbitMQ์ ๊ฐ์ ๋ฉ์์ง ์๋ฒ ์ฌ์ฉ (๋น๋๊ธฐ ์ํธ์์ฉ์ ์ฌ์ฉ)
- Mono๋ฅผ reponse body๋ก ๋ฐํ -> ๋น๋๊ธฐ ๋ ผ๋ธ๋กํน ๋ชจ๋์์ mono๊ฐ ์ผ์ ๋ง์นํ์ Greet๊ฐ์ฒด๊ฐ ์ง๋ ฌํ๋๋ ๊ฒ
- ๋ฆฌ์กํฐ๋ธ ์คํธ๋ฆผ์ ์ดํ
- ๋ฐํ์, ๊ตฌ๋ ์, ๊ตฌ๋ , ํ๋ก์ธ์
- ๋ฆฌ์กํฐ์๋ ๋ฐํ์ ํ๋ก์ธ์๋ก ์ฌ์ฉ๋๋ ๋ ๊ฐ์ ๊ตฌํ์ฒด๊ฐ ์์ -> Flux์ Mono
Mono๋ 0-1๊ฐ์ ๊ฒฐ๊ณผ๋ง์ ์ฒ๋ฆฌํ๊ธฐ ์ํ Reactor์ ๊ฐ์ฒด์ด๊ณ , Flux๋ 0-N๊ฐ์ธ ์ฌ๋ฌ ๊ฐ์ ๊ฒฐ๊ณผ๋ฅผ ์ฒ๋ฆฌํ๋ ๊ฐ์ฒด์ ๋๋ค. Reactor๋ฅผ ์ฌ์ฉํด ์ผ๋ จ์ ์คํธ๋ฆผ์ ์ฝ๋๋ก ์์ฑํ๋ค ๋ณด๋ฉด ๋ณดํต ์ฌ๋ฌ ์คํธ๋ฆผ์ ํ๋์ ๊ฒฐ๊ณผ๋ฅผ ๋ชจ์์ค ๋ Mono๋ฅผ ์ฐ๊ณ , ๊ฐ๊ฐ์ Mono๋ฅผ ํฉ์ณ์ ์ฌ๋ฌ ๊ฐ์ ๊ฐ์ ์ฌ๋ฌ ๊ฐ์ ๊ฐ์ ์ฒ๋ฆฌํ๋ Flux๋ก ํํํ ์๋ ์์ต๋๋ค. ์์ธํ ์ค๋ช ์ Reactor์ Mono reference์ Flux reference๋ฅผ ์ฝ์ด ๋ณด์๋ฉด ๋ฉ๋๋ค. Mono์ Flux๋ชจ๋ Reactive Stream์ Publisher ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํ๊ณ ์์ผ๋ฉฐ, Reactor์์ ์ ๊ณตํ๋ ํ๋ถํ ์ฐ์ฐ์๋ค(operators)์ ์กฐํฉ์ ํตํด ์คํธ๋ฆผ์ ํํํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด Flux์์ ํ๋์ ๊ฒฐ๊ณผ๋ก ๊ฐ์ ๋ชจ์์ฃผ๋ reduce์ฐ์ฐ์๋ Mono๋ฅผ ๋ฆฌํดํ๊ณ , Mono์์ flatMapMany๋ผ๋ ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ๋ฉด ํ๋์ ๊ฐ์ผ๋ก๋ถํฐ ์ฌ๋ฌ ๊ฐ์ ๊ฐ์ ์ทจ๊ธํ๋ Flux๋ฅผ ๋ฆฌํดํ ์ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ Publisher์ธํฐํ์ด์ค์ ์ ์๋ subscribe๋ฉ์๋๋ฅผ ํธ์ถํจ์ผ๋ก์จ Mono๋ Flux๊ฐ ๋์ํ๋๋ก ํ ์ ์์ต๋๋ค. ์์ธํ ๋ด์ฉ์ ์์ ์ฝ๋๋ฅผ ํตํด ๋ค๋ฃจ๋๋ก ํ๊ฒ ์ต๋๋ค.
- ํ๋์ ์คํธ๋ฆผ์์ ์ฌ๋ฌ ์คํธ๋ฆผ์ผ๋ก -> https://tech.kakao.com/2018/05/29/reactor-programming/
ํด๋ผ์ด์ธํธ: ๊ถํ๋ถ์ฌ์๋ฒ์ ์์ฒญ์ ๋ณด๋ (authorization) ๊ถํ๋ถ์ฌ์๋ฒ: ์์ฒญ๊ฒ์ฆ, ํด๋ผ์ด์ธํธ์๊ฒ access ํ ํฐ์ ์ค access ํ ํฐ์ ์ฌ์ฉํ์ฌ ๋ชจ๋ ์์ฒญ์ ๊ฒ์ฆ @EnableResourceServer : OAuth2 ํ ํฐ์ ๊ฒ์ฆํ๋ ๋ณด์ ํํฐ๋ฅผ ํ์ฑํํ์ฌ access ํ ํฐ์ ๊ฒ์ฆํ ์ ์๊ฒ ํจ @EnableAuthorizationServer : ํ ํฐ์ ์ ์ฅํ๋ ์ธ๋ฉ๋ชจ๋ฆฌ ์ ์ฅ์๋ฅผ ๊ฐ์ง ๊ถํ ์๋ฒ ์์ฑ OAuth2RestTemplate ๊ฐ์ฒด ์ฌ์ฉ ResourceServerConfigurer, AuthorizationServerConfigurer ์์ ํ์
@CrossOrigiin method๋ฟ๋ง ์๋๋ผ class์๋ ๋ถ์ผ ์ ์์ WebMvcConfigurer ๋น์ ์ฌ์ฉํ๊ณ addCorsMappings method๋ฅผ ์ฌ์ ์ํ๋ฉด ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฒด์ ๊ฑธ์ณ ํจ๋ ฅ์ ๋ฏธ์น๋ CORS๋ฅผ ์ ์ฉํ ์ ์์
dump mapping health autoconfig metris
Swagger Springfox : REST API ๋ฌธ์ ์๋ ์์ฑ ์์ (p176)
- ์์จ์ ๊ธฐ๋ฅ
- ๋ฐฐํฌ๋จ์ ํฌ๊ธฐ
- ๋ถ๋ฆฌํ๊ธฐ์ ์ ํฉํ ๊ธฐ๋ฅ or ์๋ธ๋๋ฉ์ธ
- ํด๋ฆฌ๊ธ๋ ์ํคํ ์ฒ
- ์ ํ์ ํ์ฅ
- ์ ์์ผ ํ๊ณผ ํ๋ ฅ ๊ฐ๋ฐ
- ๋จ์ผ ์ฑ ์
- ๋ณต์ ๊ฐ๋ฅ์ฑ๊ณผ ๋ณ๊ฒฝ ๊ฐ๋ฅ์ฑ
- ๊ฒฐํฉ๊ณผ ์์ง
- ์ค์ผ์คํธ๋ ์ด์ ๋ฐฉ์ - ์ค์ผ์คํธ๋ ์ดํฐ๊ฐ ์ค์์ ๋๋ ์ญํ ์ ๋ด๋นํ์ฌ ์๋น์ค๋ค์ ๋ชจ์ ์กฐ์จ
- ์ฐ์ถ๋ฐฉ์ - ์ค์๋๋ ์์, ์ด๋ฒคํธ ๋ณ๋ก ๋ ๋ฆฝ์ ์ผ๋ก ์๋ก ๋ค๋ฅธ ๋ก์ง ์ ์ฉ, ์ง๋์น๊ฒ ๋ณต์กํด์ง์ง ์๊ฒ ์กฐ์ฌํด์ผํจ
๊ธฐ๋ณธ ์์น์ ์์จ์ฑ๊ณผ ์๊ธฐ ์๋น์ฑ. ์ด์์น์ ์ค์ํ๊ธฐ ์ํด ์ฝ๋๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋ณต์ ํด์ผ ํ ์๋ ์๋ค. ๊ณตํต๋๋ ๋ถ๋ถ์ ๋ณ๋์ ๋ง์ดํฌ๋ก์๋น์ค๋ก ๋ผ์ด๋ด๋๊ฒ๋ ๊ฐ๋ฅํ์ง๋ง ํจ์ฉ๋ณด๋ค ๋ณต์ก์ฑ ์ฆ๊ฐ ๋น์ฉ์ด ๋ ํด์๋ ์๋ค. ์ฌ๋ฌ ์๋น์ค์ ๊ณตํต ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋ณต์ ํ๋ ๊ฒ์ ํธ๋ ์ด๋์คํ ๊ด๊ณ
๋ง์๊ฒฝ์ฐ ๋ฐฑ์๋์ ํ๋ก์ ์ญํ API ๊ฒ์ดํธ์จ์ด๊ฐ ๋ง์ดํฌ๋ก์๋น์ค ๋ง๋ค ์๊ฑฐ๋ / ๊ณตํต API ๊ฒ์ดํธ์จ์ด ์ฌ์ฉ
๊ธฐ์กด ์๋น์ค ์ฌ์ฉ์์๊ฒ ์ํฅ์ ๋ฏธ์น์ง ์์ผ๋ฉด์ ์๋ก์ด ์๋น์ค ์ถ์ ๊ฐ๋ฅ URI ๋ฒ์ ๋ ๋ฏธ๋์ด ํ์ ๋ฒ์ ๋ ์ปค์คํ ํค๋
์ ์ , ๋ณ๊ฒฝ๋ ๊ฐ๋ฅ์ฑ ์์ -> ํ๋์ฝ๋ฉ ๊ณตํต ๋ง์ดํฌ๋ก์๋น์ค๋ก ๊ตฌํ -> ๋ชจ๋ ์๋น์ค๊ฐ ๋ง์คํฐ๋ฐ์ดํฐ๋ฅผ ์ฌ๋ฌ๋ฒ ํธ์ถํ๋ ๋จ์ ๋ชจ๋ ๋ง์ดํฌ๋ก์๋น์ค์ ๋ณต์ -> ์ ์ง๋ณต์ก. ์ฑ๋ฅ์นํ. ์ฝ๋์ ๋ฐ์ดํฐ๊ฐ ๋จ์ํ๊ณ ์ ์ ์ธ๊ฒฝ์ฐ ์ ํฉ ํ์ํ ๋ฐ์ดํฐ๋ฅผ ๋ก์ปฌ ์บ์ -> ๋ฐ์ดํฐ ๊ท๋ชจ์ ๋ฐ๋ผ Ehcache, Hazelcast, Infinispan ๋ฑ ์ฌ์ฉ ๊ฐ๋ฅ
ex) ๊ณผ๊ธ, ์ก์ฅ, ์ฃผ๋ฌธ... -> ์ก์ฅ์ ๋ณด์ ์ฃผ๋ฌธ์ ๋ณด๊ฐ ๊ณผ๊ธ ์๋น์ค์ ๋ณต์ ๋๋ ๋ฐฉ์
- ์ฌ์ ์ง๊ณ: ๋ฐ์ดํฐ๊ฐ ์์ฑ๋ ๋ ์ฌ์ ์ง๊ณ(์ฃผ๋ฌธ์์ฑ-> ๊ณผ๊ธ ๋ง์ดํฌ๋ก์๋น์ค์ ์ด๋ฒคํธ ๋ฐ์ก -> ์๋ณ ์ ์ฐ์ ์ํด ๋ด๋ถ์ ์ผ๋ก ๊ณ์ ๋ฐ์ดํฐ ์ง๊ณ ์ด๋ ๊ฒํ๋ฉด ๊ณผ๊ธ ๋ง์ดํฌ๋ก์๋น์ค๊ฐ ๊ณผ๊ธ ์ฒ๋ฆฌ๋ฅผ ์ํด ์ธ๋ถ๋ก ์์ฒญ์ ๋ณด๋ผ ํ์๊ฐ ์์ด์ง์ง๋ง, ๋ฐ์ดํฐ ์ค๋ณต์ด ๋ฐ์ํจ
- ๋ฐฐ์น: ์ฌ์ ์ง๊ณ๊ฐ ๋ถ๊ฐ๋ฅํ ๋ ์ฌ์ฉํ ์ ์์
Spring Cloud Config ์๋ฒ - ํ๊ฒฝ์ค์ ์ ๋ณด๋ฅผ ๋ด๋ถ์ ์ ์ฅํ์ง ์๊ณ ์ธ๋ถํ๋ ํ๊ฒฝ์ค์ ์๋ฒ
๋ทํ๋ฆญ์ค OSS์์ ์ ๋ self-registration, ๋์ ํ์ ๋ฐ ๋ถํ๋ถ์ฐ(๋ฆฌ๋ณธ์ฌ์ฉ)
MSA์ ๊ฐ์ ๋ถ์ฐ ํ๊ฒฝ์ ์๋น์ค ๊ฐ์ ์๊ฒฉ ํธ์ถ๋ก ๊ตฌ์ฑ์ด ๋๋ค. ์๊ฒฉ ์๋น์ค ํธ์ถ์ IP ์ฃผ์์ ํฌํธ๋ฅผ ์ด์ฉํ๋ ๋ฐฉ์์ด ๋๋๋ค. ํด๋ผ์ฐ๋ ํ๊ฒฝ์ด ๋๋ฉด์ ์๋น์ค๊ฐ ์คํ ์ค์ผ์ผ๋ง๋ฑ์ ์ํด์ ๋์ ์ผ๋ก ์์ฑ๋๊ฑฐ๋ ์ปจํ ์ด๋ ๊ธฐ๋ฐ์ ๋ฐฐํฌ๋ก ์ธํด์, ์๋น์ค์ IP๊ฐ ๋์ ์ผ๋ก ๋ณ๊ฒฝ๋๋ ์ผ์ด ์ฆ์์ก๋ค. ๊ทธ๋์ ์๋น์ค ํด๋ผ์ด์ธํธ๊ฐ ์๋น์ค๋ฅผ ํธ์ถํ ๋ ์๋น์ค์ ์์น (์ฆ IP์ฃผ์์ ํฌํธ)๋ฅผ ์์๋ผ ์ ์๋ ๊ธฐ๋ฅ์ด ํ์ํ๋ฐ, ์ด๊ฒ์ ๋ฐ๋ก ์๋น์ค ๋์ค์ปค๋ฒ๋ฆฌ (Service discovery)๋ผ๊ณ ํ๋ค. Service A์ ์ธ์คํด์ค๋ค์ด ์์ฑ์ด ๋ ๋, Service A์ ๋ํ ์ฃผ์๋ฅผ Service registry (์๋น์ค ๋ฑ๋ก ์๋ฒ) ์ ๋ฑ๋กํด๋๋๋ค. Service A๋ฅผ ํธ์ถํ๊ณ ์ ํ๋ ํด๋ผ์ด์ธํธ๋ Service registry์ Service A์ ์ฃผ์๋ฅผ ๋ฌผ์ด๋ณด๊ณ ๋ฑ๋ก๋ ์ฃผ์๋ฅผ ๋ฐ์์ ๊ทธ ์ฃผ์๋ก ์๋น์ค๋ฅผ ํธ์ถํ๋ค.
๊ฐ์ฅ ์ฌ์ด ๋ฐฉ๋ฒ์ผ๋ก๋ DNS ๋ ์ฝ๋์ ํ๋์ ํธ์คํธ๋ช ์ ์ฌ๋ฌ๊ฐ์ IP๋ฅผ ๋ฑ๋กํ๋ ๋ฐฉ์์ผ๋ก ๊ตฌํ์ด ๊ฐ๋ฅํ๋ค. ๊ทธ๋ฌ๋ DNS๋ ๋ ์ฝ๋ ์ญ์ ์ ์ ๋ฐ์ดํธ ๋๋ ์๊ฐ๋ฑ์ด ์์๋๊ธฐ ๋๋ฌธ์, ๊ทธ๋ค์ง ์ ์ ํ ๋ฐฉ๋ฒ์ ์๋๊ธฐ ๋๋ฌธ์, ZooKeeper๋ etcd ์ ๊ฐ์ ์๋น์ค๋ฅผ ์ด์ฉํ ์ ์๊ณ ๋๋ Service discovery์ ์ ๋ฌธํ๋ ์๋ฃจ์ ์ผ๋ก๋ Netflix์ Eureka๋ Hashcorp์ Consul๊ณผ ๊ฐ์ ์๋น์ค๊ฐ ์๋ค.
Eureka ์๋น์ค์ ๊ณ ๊ฐ์ฉ์ฑ์ ์ ์ฉํ๋ ์ข์ ๋ฐฉ๋ฒ์ ์ฌ๋ฌ ๋์ eureka ์๋ฒ๋ฅผ ํด๋ฌ์คํฐ๋งํด์ ๋ก๋๋ฐธ๋ฐ์ ๋ค์ ๋๋ ๊ฒ์ด๋ค. Eureka ์๋ฒ๋ P2P ๋ฐฉ์์ ๋ฐ์ดํฐ ๋๊ธฐํ ๋ฉ์ปค๋์ฆ์ ๊ฐ์ก๋ค. ๋ฐํ์์ ์ํ ์ ๋ณด๋ DB์ ์ ์ฅ๋์ง ์๊ณ ์ธ๋ฉ๋ชจ๋ฆฌ ์บ์์์ ๊ด๋ฆฌ๋๋ค.
๊ฒ์ดํธ์จ์ด ์๋น์ค ๋ด๋ถ์ ์ผ๋ก ์๋น์ค ํ์์ ์ํด eureka ์๋ฒ๋ฅผ ์ฌ์ฉํ๊ณ ์๋น์ค ์ธ์คํด์ค ์ฌ์ด์ ๋ถํ๋ถ์ฐ์ ์ํด ribbon์ ์ฌ์ฉํจ ํด๋ผ์ด์ธํธ๊ฐ eureka ํด๋ผ์ด์ธํธ์ด๊ธฐ๋ ํ๋ฉด Zuul์ ๋ค๋ฅธ ๋ง์ดํฌ๋ก์๋น์ค์ ๊ฐ์ด ์์ ์ ์๋น์คID๋ก eureka์ ์๊ธฐ์์ ์ ๋ฑ๋กํ๊ณ , ํด๋ผ์ด์ธํธ๋ eureka์ ๋ฑ๋ก๋ ์๋น์คID๋ฅผ ํตํด Zuul ์ธ์คํด์ค์ ์ ๊ทผํ ์ ์๋ค. ํด๋ผ์ด์ธํธ๊ฐ eureka ํด๋ผ์ด์ธํธ๊ฐ ์๋๋ผ๋ฉด, eureka ์๋ฒ์ ์ํ ๋ถํ๋ถ์ฐ ์ฒ๋ฆฌ๋ฅผ ์ฌ์ฉํ ์ ์๊ธฐ ๋๋ฌธ์ HAProxy์ ๊ฐ์ ๋ก๋๋ฐธ๋ฐ์ ๋ค์ ์์นํด ์คํํ๋ค. ์์ชฝ ๊ฒฝ์ฐ ๋ชจ๋ ๋ง์ดํฌ๋ก์๋น์ค๋ eureka ์๋ฒ๋ฅผ ์ด์ฉํ๋ Zuul์ ์ํด ๋ถํ๋ฌธ์ฐ ์ฒ๋ฆฌ๊ฐ ์ด๋ค์ง๋ค.
ํด๋ผ์ฐ๋ ์คํธ๋ฆผ(๋ฆฌ์กํฐ๋ธ ๋ง์ดํฌ๋ก์๋น์ค๋ฅผ ์ํจ) (p380) ๋ฉ์์ง๋ธ๋ก์ปค ์ฌ์ฉ. ์คํ๋ง ํด๋ผ์ฐ๋ ์คํธ๋ฆผ์ ๋ฉ์์ง ์ถ์ํ ๊ธฐ๋ฅ์ ์ ๊ณต. ์ค์ ๋ฉ์์ง ๊ตฌํ์ฒด๋ RabbitMQ, Kafka์ผ์ ์์ ํด๋ผ์ฐ๋ ์คํธ๋ฆผ์ ์ ๊ตฌ(source)์ ์ถ๊ตฌ(sink)์์ ๋์ํจ
๋ง์ดํฌ๋ก์๋น์ค๋ ๋ ๋ฆฝ์ ์ธ ๋ฌผ๋ฆฌ์ ์ฅ๋น๋ ๊ฐ์๋จธ์ ์์ ์ด์๋๋ฏ๋ก ๋ก๊ทธํ์ผ์ ๊ฒฐ๊ตญ ๊ฐ ๋ง์ดํฌ๋ก์๋น์ค๋ณ๋ก ํํธํ๋๋ค. ๋ฐ๋ผ์ ๋ก๊ทธํ์ผ์ ์ ํ๋ฆฌ์ผ์ด์ ๋ด๋ถ์ ์ ์ฅํ์ง ๋ง๊ณ ์ธ๋ถํํด์ผ ํ๋ค.
๋ก๊ทธ ์คํธ๋ฆผ(log stream) : ๋ก๊ทธ ์์ฐ์๊ฐ ๋ง๋ค์ด๋ด๋ ๋ก๊ทธ ๋ฉ์์ง์ stream ๋ก๊ทธ ์ ์ฌ๊ธฐ(log shipper) : ใน๊ทธ ์ ์ฌ๊ธฐ๋ ๋ก๊ทธ ๋ฉ์์ง์ ์์ง์ ๋ด๋นํ์ฌ ๋ก๊ทธ ์ ์ฅ์(log store) : ๋ก๊ทธ ์ ์ฅ์๋ ๋ก๊ทธ ๋ฉ์์ง๋ฅผ ์ ์ฅ. ex) hdfs ๋ก๊ทธ ์คํธ๋ฆผ ์ฒ๋ฆฌ๊ธฐ ๋ก๊ทธ ๋์๋ณด๋
logback appenders ์ฌ์ฉํ์ฌ ๋ก๊ทธ ๋ฉ์์ง๋ฅผ ๋ก๊ธ๋ฆฌ ์๋น์ค๋ก ์ง์ ์คํธ๋ฆฌ๋ฐ
papertrial, logsene, sumo logic, google cloud logging, logentries
Graylog : ๋ก๊ทธ ์ ์ฅ์ ์ํด ElasticSearch๋ฅผ ์ฌ์ฉํ๊ณ ์ ์ฅ์๋ก MongoDB๋ฅผ ์ฌ์ฉ๋๋ Splunk : ๋ก๊ทธ ํ์ผ ์ ์ฌ ๋ฐฉ์์ ์ฌ์ฉ
๋ก๊ทธ์ ์ฌ๊ธฐ ๋ก๊ทธ ์คํธ๋ฆผ ์ฒ๋ฆฌ๊ธฐ -> ์ ํต์ ์ธ ๋ฐ์ ๋ถ์์์๋ ํ ์ ์์๋ ์ด๋ค ํน์ ํ ์ด๋ฒคํธ ์คํธ๋ฆผ์ ๋ฐ์ํ ์ ์๊ธฐ ๋๋ฌธ์ 404 ์ค๋ฅ์ฒ๋ฆฌ์ฒ๋ผ ์๊ธํ ์ฒ๋ฆฌํด์ผํ๋ ์ํฉ์์ ์ ์ฉ Flume๊ณผ Kafka๋ฅผ Storm์ด๋ Spark Streaming๊ณผ ํจ๊ป ์ฌ์ฉ ๋ก๊ทธ ๋ฉ์์ง๋ฅผ ์์งํ๋๋ฐ ์ ์ฉํ ํ๋ฃธ ์ดํ๋๋ฅผ ํตํด, ๋ถ์ฐ๋ ์นดํ์นด ๋ฉ์์ง ํ์ ํธ์ํ๋ค. ์คํธ๋ฆผ ํ๋ก์ธ์๋ ์์ง๋ ๋ฐ์ดํฐ๋ฅผ ์ผ๋์คํฑ์์น ๋ฐ ๊ธฐํ ๋ก๊ทธ ์ ์ฅ์๋ก ๋ณด๋ด๊ธฐ์ ์ ์ฆ์ ์ฒ๋ฆฌ ๋ก๊ทธ ์ ์ฅ์ ์ค์๊ฐ ๋ก๊ทธ ๋ฉ์์ง๋ ์ผ๋์คํฑ์์น์ ์ ์ฅ -> ํด๋ผ์ด์ธํธ๊ฐ ํ ์คํธ ๊ธฐ๋ฐ ์ธ๋ฑ์ค๋ฅผ ๋ฐํ์ผ๋ก ์ฟผ๋ฆฌํ ์ ์์ HDFS๋ ์ผ๋ฐ์ ์ผ๋ก ์์นด์ด๋ธ๋ ๋ก๊ทธ ๋ฉ์์ง๋ฅผ ์ ์ฅํ๋๋ฐ ์ฌ์ฉ MongoDB๋ ์นด์ฐ๋๋ผ๋ ๋งค์ ์ง๊ณ๋๋ ํธ๋์ญ์ ์์ ๊ฐ์ ์์ฝ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋๋ฐ ์ฌ์ฉ
๋์๋ณด๋
์ฌ์ฉ์ ์ ์ ๋ก๊น ๊ตฌํ (p400) ๋ก๊ทธ์คํ์, ์ผ๋์คํฑ์์น, ํค๋ฐ๋ ์กฐํฉ ( ELK ์คํ)
์คํ๋ง ํด๋ผ์ฐ๋ ์ฌ๋ฃจ์ค -> ๋ถ์ฐ ๋ก๊ทธ ์ถ์
์คํ๋ง ํด๋ผ์ฐ๋ ํ์คํธ๋ฆญ์ค - ์ฅ์ ๋ฅผ ๊ฒฌ๋ ์ ์๋ ๋ง์ดํฌ๋ก์๋น์ค๋ฅผ ์ํ (p415)
ํ์คํธ๋ฆฌ์ค๋ ๋นจ๋ฆฌ ์คํจํ๊ณ ๋นจ๋ฆฌ ๋ณต๊ตฌํ๋ ๊ฒ์ ์์น์ผ๋ก ํจ ์๋น์ค์ ๋ฌธ์ ๊ฐ ์๋ ๊ฒฝ์ฐ ํ์คํธ๋ฆญ์ค๊ฐ ์๋น์ค ๊ฒฉ๋ฆฌ์ ๋์์ ์ค ๋ทํ๋ฆญ์ค์์ ํ ์คํธ ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ด๋ฉฐ ์ํท ๋ธ๋ ์ด์ปค ํจํด์ ๋ฐํ์ผ๋ก ํจ API ๊ฒ์ดํธ์จ์ด ์๋น์ค๋ฅผ ๋ณ๊ฒฝํด ํ์คํธ๋ฆญ์ค์ ํตํฉ (p416)
ํํธํ๋ ๋ฐ์ดํฐ๋ ๋ฐ์ดํฐ๋ถ์์ ์ด๋ ต๊ฒ ๋ง๋๋๋ฐ ์ด๋ฒคํธ์์ฑ ํจํด์ ์ด์ฉํ๋ฉด ์ ์ฒ๋ฆฌํ ์ ์๋ค ex) ์ํ๊ฐ ๋ณ๊ฒฝ๋๋ฉด ๋ง์ดํฌ๋ก์๋น์ค๋ ์ํ๋ณํ๋ฅผ ์ด๋ฒคํธ๋ก ๋ฐํ, ๊ด๋ จ ๋ง์ดํฌ๋ก์๋น์ค๋ค์ ์ด๋ฌํ ์ด๋ฒคํธ๋ฅผ ๊ตฌ๋ ํ๊ณ ์๊ตฌ์ฌํญ์ ๋ง๊ฒ ์ฒ๋ฆฌํ ์ ์๋ค. ์ค์ ์ด๋ฒคํธ ์ ์ฅ์๋ ์ด๋ฌํ ์ด๋ฒคํธ๋ฅผ ๊ตฌ๋ ํ๊ณ ๋์ค์ ๋ถ์ํ ์ ์๊ฒ ๋น ๋ฐ์ดํฐ ์ ์ฅ์์ ์ ์ฅํ ์ ์๋ค. -> ๋ง์ดํฌ๋ก์๋น์ค -> ์ด๋ฒคํธ -> kafka -> flume -> ํ๋กํด๋ฌ์คํฐ
๋น๋๊ธฐ์ ์๋ ( ์ด๋ฒคํธ publish ๋ฐ subscribeํ์ฌ workflow ์ ์ฐํ๊ฒ ์ฒ๋ฆฌ, ๊ฐ ์ ๋ฌด ๋ชจ๋๊ฐ ๋ ๋ฆฝ์ . (์ด๋ฒคํธ ๋ฐํ ๋ฐ ๊ตฌ๋ )
ex) ํ์ฌ ์์คํ ์์ ์์ฌ์์ด 1์์ธ๋ฐ, ์ฌ๋ฌ๋ช ์ ๊ณ ๊ฐ์ด ๋์์ ์์ฝํ๋ ์๋๋ฆฌ์ค๋ฅผ ์ฒ๋ฆฌํ ๋ ์์ฝ๊ณผ ๋ชฉ๋ก์ ์ ๋ฐ์ดํธ๋ฅผ ๊ฐ์ ํธ๋์ญ์ ์์ ์ฒ๋ฆฌํ์ง ์๊ณ ์ด๋ฒคํธ ์ฃผ๋ ํจํด (event driven pattern)์ ์ ์ฉํ๋ค๋ฉด ์์คํ ์ํ๊ฐ ๋ถ์ผ์นํ๋ ๊ฒฐ๊ณผ๊ฐ ์๊ธธ ์ ์์