์ด๋ฒ์ ํ๋ก์ ํธ์์ MSA๋ฅผ ์ ์ฉํ๊ฒ ๋๋ฉด์ ๋น๋๊ธฐ ํต์ ์์
์ ์ํด Kafka๋ฅผ ํ์ตํ์๊ณ ํ๊ฒฝ์ค์ ์ ํ๊ฒ ๋์๋ค. 1. kafka, zookeeper Docker Compose๋ก ์ค์น version: '3.8' services: zookeeper: image: wurstmeister/zookeeper container_name: zookeeper ports: - "2181:2181" kafka: image: wurstmeister/kafka container_name: kafka ports: - "9092:9092" environment: KAFKA_ADVERTISED_HOST_NAME: 127.0.0.1 KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181 KAFKA_CREATE_..
๐ณ DevOps
๋จ๊ณ๋ณ๋ก ์ฑ์ฅํ์!In-Sync-Replicas(ISR) ๋ฆฌ๋์ Sync(๋๊ธฐ)๊ฐ ๋ง๊ณ ์๋(๋ณต์ฌ๊ฐ ์ ์ํํ๊ณ ์๋) ๋ชจ๋ Replicas์ ๋ชฉ๋ก ํ๋์ ๋ธ๋ก์ปค์๋ง Partition Leader๋ค์ด ๋ชฐ๋ ค์๋ค๋ฉด Hot Spot ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ค. ๋ฐ๋ผ์, Leader ์ฅ์ ์ Leader๋ฅผ ์ ์ถํ๋๋ฐ ์ฌ์ฉ replica.lag.max.messages: Follower์ Leader๊ฐ์ ๋ฉ์์ง ์ฐจ์ด (follower๊ฐ ๋ณต์ฌ๋ฅผ ์ ์ํํ๊ณ ์๋์ง ํ๋จํ๋ ์งํ) ์์๋ฒ์ ์์๋ ํ์ฌ deprecated ๋ผ๊ณ ํ๋ค. Fully-Replicated Commited์ Commit์ Consumer์ Commit๊ณผ ๋ค๋ฆ Follower๊ฐ ๋ณต์ ํ์์ ์๋ฏธ consumer๋ hign water mark๊ฐ ํ์๋ ๋ฐ์ดํฐ๊น์ง๋ง ์ฝ์ ์ ์์ r..
๋๋ ์ด๋ฒ์ ์ฐธ์ฌํ๋ ํ๋ก์ ํธ์์ Micro Service Architecture๋ฅผ ์ฌ์ฉํ๊ธฐ๋ก ํ๊ธฐ์ ๋ฐ์ดํฐ ๋๊ธฐํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด Kafka๋ฅผ ๊ณต๋ถํ๊ฒ ๋์๋ค. Kafka์ ํ์ ๋ฐฐ๊ฒฝ ๋งํฌ๋์ธ์ด๋ผ๋ ์ฌ์ดํธ๊ฐ ๊ธ์๋๋ก ์ฑ์ฅํ๊ฒ ๋๋ฉด์ ์์คํ
์ ์ง ๋ฌธ์ ๊ฐ ๋ฐ์ํ์๊ณ ์์ค ์ ํ๋ฆฌ์ผ์ด์
๊ณผ ๋ฐ์ดํฐ๊ฐ ์ต์ข
์ ์ฌ๋๋ Target ์ ํ๋ฆฌ์ผ์ด์
๊ณผ ์ฐ๊ฒฐํ๋ ๋ณต์ก์ฑ์ด ์์๋ค. ์์ ๊ฐ์ด ์์คํ
์ด ๋ณต์กํด์ง์๋ก ์๋์ ๊ฐ์ End-to-End ์์คํ
์ ๋ฌธ์ ์ ์ด ๋ฐ์ํ๋ค. ๋ฐ์ดํฐ ์ ์ก ํ์ดํ๋ผ์ธ์ด ๊ธฐํ๊ธ์์ ์ผ๋ก ๋ณต์กํด์ง Src-to-Target ํ์ดํ๋ผ์ธ ๊ฐ์๊ฐ ๋ง์์ง๋ฉด์ ์์ค์ฝ๋ ๋ฐ ๋ฒ์ ๊ด๋ฆฌ ์ด์ ๋ฐ์ target app์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ๊ฒฝ์ฐ, Source app์๋ ์ํฅ์ ์ค (๋์ ๊ฒฐํฉ๋) ๋ค์ํ ETL(Extra..
Docker Compose๊ฐ ๋ญ๊น? ๊ฐ๊ฐ ํ๋์ฉ ๊ด๋ฆฌํ๋ ์ปจํ
์ด๋๋ฅผ ํ๋๋ก ๋ชจ์์ ๊ด๋ฆฌํ๊ธฐ ์ํ ํด (ํ์ฌ ๋ด๊ฐ ์งํ ์ค์ธ ํ๋ก์ ํธ์์ Spring ๋ฐฑ์๋ ์๋ฒ, React ํ๋ก ํธ ์๋ฒ, MariaDB, Redis์ ์ฌ๋ฌ ์ปจํ
์ด๋๋ฅผ ๋ชจ์์ ๊ด๋ฆฌํ ์ ์์๋ค.) ์ด๋ค ํ์์ธ์ง ๊ฐ๋ตํ๊ฒ ์ค๋ช
ํด์ค docker-compose.yml ํ์ผ์ ์์ฑํ์ฌ ์คํํ๋ฉด ํ๋ฒ์ ์ด๋ฏธ์ง๋ฅผ ์์ฑํ๊ณ ์คํํ ์ ์๋ค. yml ํ์์ ๋ํด์ ์กฐ๊ธ๋ง ๋งํ์๋ฉด key-value ํ์์ด๋ฉฐ int, boolean, String ํ์
์ ์ง์ํ๋ค. ๋ฆฌ์คํธ์ ์์๋ ๋ค์ฌ์ฐ๊ธฐ๋ค์ฌ ์ฐ๊ธฐ ํ - ๋ฅผ ๋ถ์ด๊ณ , ๋ฆฌ์คํธ๊ฐ ์๋ ๊ฒฝ์ฐ๋ ๋ค์ฌ ์ฐ๊ธฐ๋ก ๊ตฌ๋ถํ๋ค. ์ด์ธ์ |, |-, ---, > ๋ฑ ๋ค์ํ ๊ธฐํธ๊ฐ ์๋๋ฐ ๋์ค์ ๋ฐ๋ก ์์ธํ ์์๋ณด์! versio..
Dockerfile์ด๋? ๋์ปค์์ ์ฌ์ฉ๋๋ ์ด๋ฏธ์ง๋ฅผ ์์ฑํ๊ธฐ ์ํด ์คํฌ๋ฆฝํธ๋ฅผ ์์ฑํ ์ ์๋ ํ
์คํธ ํ์์ ํ์ผ์ด๋ค. ์ฃผ์ ๋ช
๋ น์ด Command Description FROM Base ์ด๋ฏธ์ง๋ฅผ ์ง์ (ex: Node ๋ JDK ์ง์ ) LABEL Version, Writer์ ๊ฐ์ ์ด๋ฏธ์ง ๋ฉํ๋ฐ์ดํฐ๋ฅผ ์์ฑ CMD ๋์ปค ์ปจํ
์ด๋๊ฐ ์์๋ ๋ ์คํ๋๋ shell ๋ช
๋ น์ ์ค์ RUN ์ด๋ฏธ์ง ์์ฑ์ ์คํ๋๋ shell ๋ช
๋ น ์ค์ ๋ฐ ์๋ก์ด ์ด๋ฏธ์ง layer๋ฅผ ๋ง๋๋ ์ญํ ENTRYPOINT ๋์ปค ์ปจํ
์ด๋๊ฐ ์์๋ ๋ ์คํ๋๋ shell ๋ช
๋ น์ ์ค์ CMD์๋ ๋ค๋ฅด๊ฒ docker run์์ ๋ถ์ฌ๋๋ ๋ช
๋ น์ overrride๊ฐ ๋์ง ์๊ณ ์คํ๋จ EXPOSE ๋์ปค ์ปจํ
์ด๋ ์ธ๋ถ์ ์คํํ Port ์ค์ ENV ๋์ปค ์ปจํ
..
1. docker run ๋ช
๋ น pull, create, start๋ช
๋ น์ ํ๋ฒ์ ์ฒ๋ฆฌํ๋ฉฐ ํ๊ฒ ์ด๋ฏธ์ง๋ฅผ ๊ฐ์ ธ์์ ์ปค์คํ
์ค์ ์ ๋ฐ๋ผ ์ปจํ
์ด๋๋ฅผ ์์ฑํ์ฌ ์คํํ๋ ๋ช
๋ น์ด 2. ์ต์
Option Description -i ์ปจํ
์ด๋์์ ์ธ๋ถ๋ก ํ์ค ์
๋ ฅ( ex: STDIN )์ open. ๋ด๋ถ ํ๋ก๊ทธ๋จ์ผ๋ก ์
๋ ฅ์ ์ ๋ฌํ๊ธฐ ์ํด -t ๊ฐ์ ํฐ๋ฏธ๋(tty)์ ํ ๋น -d ์ปจํ
์ด๋๋ฅผ ๋ฐฑ๊ทธ๋ผ์ด๋์์ ์คํ --name ์ปจํ
์ด๋ ์ด๋ฆ ์ค์ =rm ์ปจํ
์ด๋๊ฐ ์ข
๋ฃ๋๋ฉด ์๋์ผ๋ก ์ปจํ
์ด๋๋ฅผ ์ญ์ -p Host์ ์ปจํ
์ด๋ ํฌํธ๋ฅผ ์ฐ๊ฒฐ -v Host์ ์ปจํ
์ด๋ ๋๋ ํ ๋ฆฌ๋ฅผ ์ฐ๊ฒฐ 3. -it ์์ฃผ ๊ฐ์ด ์ฐ๋ ์ต์
-i ์ต์
์ผ๋ก ๋์ปค ์ปจํ
์ด๋์ ์ธ๋ถ๋ก์ ํ์ค ์
๋ ฅ์ openํ๊ณ -t ์ต์
์ผ๋ก ๊ฐ์(psedo) tty๋ฅผ ๋ง๋ค์ด ํ์ค ์
๋ ฅ์..