Loading...
2022. 11. 12. 15:27

[Kafka] docker-compose๋ฅผ ํ™œ์šฉํ•œ ๋” ์‰ฌ์šด Kafka ์„œ๋ฒ„ ์„ค์น˜

์ง€๋‚œ ํฌ์ŠคํŠธ์—์„œ Docker๋ฅผ ์ด์šฉํ•ด Kafka์™€ Zookeeper๋ฅผ ์„ค์น˜ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์•Œ์•„๋ดค์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ Zookeeper์™€ Kafka ์ด๋ฏธ์ง€๋ฅผ pullํ•˜๊ณ  runํ•˜๊ณ , ๋„คํŠธ์›Œํฌ๋ฅผ ๋งŒ๋“œ๋Š” ์ž‘์—…์„ ์ผ์ผ์ด ๋ช…๋ น์–ด๋กœ ์น˜๊ธฐ์—๋Š” ๋„ˆ๋ฌด ๋ถˆํŽธํ•˜๊ณ  ๋ฒˆ๊ฑฐ๋กœ์šด ์ž‘์—…๋“ค์ด ๋งŽ์•˜์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์ด๋ฒˆ์—” docker-compose๋ฅผ ์ด์šฉํ•ด์„œ ๋ช…๋ น์–ด ํ•˜๋‚˜๋งŒ ๊ฐ€์ง€๊ณ  ์‰ฝ๊ฒŒ ๋กœ์ปฌ์—์„œ Kafka ๋ธŒ๋กœ์ปค๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. docker-compose ๋จผ์ € ์งง๊ฒŒ docker-compose์— ๋Œ€ํ•ด์„œ ์„ค๋ช…์„ ๋“œ๋ฆฌ์ž๋ฉด docker-compose๋Š” Docker์˜ ๊ตฌ์„ฑ ์š”์†Œ(์ด๋ฏธ์ง€, ๋„คํŠธ์›Œํฌ, ๋ณผ๋ฅจ, ์‹คํ–‰ ์ „๋žต)๋“ค์„ ํ•˜๋‚˜์˜ ํŒŒ์ผ๋กœ ์—ฎ์–ด ์‹คํ–‰ํ•˜๋Š” ํ†ตํ•ฉ ์‹คํ–‰ ๋„๊ตฌ์ž…๋‹ˆ๋‹ค. ์ฆ‰ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‹คํ–‰์‹œํ‚ค๋Š” ๋„์ปค ์• ํ”Œ๋ฆฌ์ผ€์ด..

2020. 11. 2. 22:10

[MSA] 6. MSA์˜ ํŠธ๋žœ์žญ์…˜ ์ด์•ผ๊ธฐ 2 - Two-Phase commit๊ณผ Saga

์ด์ „ ๊ธ€์— ์ด์–ด์„œ MSA ๋‚ด์—์„œ ํŠธ๋žœ์žญ์…˜์„ ์›ํ™œํžˆ ํ•˜๋Š” ๋ฐฉ๋ฒ• 2๊ฐ€์ง€๋ฅผ ์†Œ๊ฐœํ•ด๋“œ๋ฆฌ๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค. ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ๋”๋ถˆ์–ด ๋ชจ๋†€๋ฆฌํ‹ฑ ์•„ํ‚คํ…์ฒ˜๋ฅผ ๋„์ž…ํ•œ ์„œ๋ฒ„ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ DB ์„œ๋ฒ„์—์„œ ์ œ๊ณตํ•˜๋Š” Commit๊ณผ Rollback์„ ์ด์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ์ผ๊ด€์„ฑ ์žˆ๊ฒŒ ์ œ์–ดํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ MSA์—์„œ๋Š” ๊ฐ ์„œ๋น„์Šค๋ณ„๋กœ DB ์ธ์Šคํ„ด์Šค์™€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ๋ถ„๋ฆฌ๋จ์— ๋”ฐ๋ผ ๊ด€๊ณ„ํ˜•์œผ๋กœ ๋งบ์–ด์ง„ Entity๋“ค์€ ์„œ๋กœ๊ฐ€ ๋‹ค๋ฅธ ์ธ์Šคํ„ด์Šค๋กœ ์šด์˜๋˜๊ณ , ๊ทธ๋“ค ๋ฆฌ์†Œ์Šค๋ฅผ ๋ฐ›๊ธฐ ๋•Œ๋ฌธ์— ๋ฐ์ดํ„ฐ์˜ ์ผ๊ด€์„ฑ์ด ๋ฌด๋„ˆ์ง€๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด ์šฐ๋ฆฌ๋Š” ๋ถ„์‚ฐ ํŠธ๋žœ์žญ์…˜ ๊ธฐ์ˆ ์„ ์ด์šฉํ•˜์—ฌ ์ด๋“ค ์ผ๊ด€์„ฑ์„ ์ง€ํ‚ฌ ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๋‹ค. 1. Two-Phase Commit Two-Phase Commit์ด๋ž€, 2๋‹จ๊ณ„์— ๊ฑฐ์ณ์„œ ์˜์†ํ•˜๋Š” ์ž‘์—…์„ ๋งํ•ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ๋งํ•˜๋ฉด ์•„..