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์˜ ๊ตฌ์„ฑ ์š”์†Œ(์ด๋ฏธ์ง€, ๋„คํŠธ์›Œํฌ, ๋ณผ๋ฅจ, ์‹คํ–‰ ์ „๋žต)๋“ค์„ ํ•˜๋‚˜์˜ ํŒŒ์ผ๋กœ ์—ฎ์–ด ์‹คํ–‰ํ•˜๋Š” ํ†ตํ•ฉ ์‹คํ–‰ ๋„๊ตฌ์ž…๋‹ˆ๋‹ค. ์ฆ‰ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‹คํ–‰์‹œํ‚ค๋Š” ๋„์ปค ์• ํ”Œ๋ฆฌ์ผ€์ด..

2022. 11. 6. 21:49

[Spring] ๋น„๋™๊ธฐ ์ž‘์—…๊ณผ ๋ชจ๋‹ˆํ„ฐ๋ง์„ ์œ„ํ•œ TaskExecutor, TaskScheduler ๊ธฐ๋ณธ

Spring Framework๋Š” TaskExecutor ์ธํ„ฐํŽ˜์ด์Šค์™€ TaskScheduler ์ธํ„ฐํŽ˜์ด์Šค๋กœ Task(์ž‘์—…)์˜ ๋น„๋™๊ธฐ ์‹คํ–‰๊ณผ ์Šค์ผ€์ค„๋ง์— ๋Œ€ํ•œ ์ถ”์ƒํ™” ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฐ ๊ฒƒ์ด ํ•„์š”ํ•œ ์ด์œ ๋Š” ๋ฌด์—‡์ผ๊นŒ์š”? ๊ธฐ๋ณธ์ ์œผ๋กœ Spring์€ Multi-Thread ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜๋ฉฐ Singleton Pattern์„ ์ด์šฉํ•ด ๋ชจ๋“  Bean๋“ค์„ ๊ณต์œ ํ•˜์—ฌ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ด๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ API๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ๊ณผ์ •์„ Blockingํ•˜์ง€ ์•Š๊ณ  ๋‹ค์ค‘ ์‚ฌ์šฉ์ž๊ฐ€ ์š”์ฒญ์„ ๋ฐ›์„ ์ˆ˜ ์žˆ๋„๋ก ์ฒ˜๋ฆฌํ•œ๋‹ค๋Š” ๋œป์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์šฐ๋ฆฌ๊ฐ€ API ํ˜ธ์ถœ ์ดํ›„ Bean ๋‚ด ์–ด๋–ค ํŠน์ • ์ž‘์—…์— ๋Œ€ํ•œ ๋น„๋™๊ธฐ ์‹คํ–‰์€ ๋ณด์žฅ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. TaskExecutor TaskExecutor๋Š” Spring 2.0์—์„œ ๋“ฑ์žฅํ•œ ๋น„๋™๊ธฐ ์‹คํ–‰ ์ถ”์ƒํ™” ์ธํ„ฐํŽ˜์ด์Šค๋กœ..