Message Queue

Kafka ์™€ RabbitMQ ์˜ ์ฐจ์ด์ 

ํ”„๋กœ๊ทธ๋ž˜๋จธ ์˜ค์›” 2024. 11. 20.

Kafka ์™€ RabbitMQ ๋Š” ์ŠคํŠธ๋ฆผ ์ฒ˜๋ฆฌ์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ฉ”์‹œ์ง€ ํ ์‹œ์Šคํ…œ์ด๋‹ค. ๋ฐ์ดํ„ฐ ์ŠคํŠธ๋ฆผ์€ ๊ณ ์† ์ฒ˜๋ฆฌ๊ฐ€ ํ•„์š”ํ•œ ๋Œ€์šฉ๋Ÿ‰์˜ ์—ฐ์†๋œ ๋ฐ์ดํ„ฐ๋“ค์ด๋‹ค. RabbitMQ ๋Š” ์—ฌ๋Ÿฌ ์†Œ์Šค์—์„œ ์ŠคํŠธ๋ฆฌ๋ฐ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ง‘ํ•˜๊ณ  ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•ด ๋‹ค๋ฅธ ๋Œ€์ƒ์œผ๋กœ ๋ผ์šฐํŒ…ํ•˜๋Š” ๋ถ„์‚ฐ ๋ฉ”์‹œ์ง€ ๋ธŒ๋กœ์ปค์ด๋‹ค. Apache Kafka๋Š” ์‹ค์‹œ๊ฐ„ ๋ฐ์ดํ„ฐ ํŒŒ์ดํ”„๋ผ์ธ ๋ฐ ์ŠคํŠธ๋ฆฌ๋ฐ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ตฌ์ถ•ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ์ŠคํŠธ๋ฆฌ๋ฐ ํ”Œ๋žซํผ์ด๋‹ค. Kafka๋Š” ๋›ฐ์–ด๋‚œ ํ™•์žฅ์„ฑ๊ณผ ๋‚ด๊ฒฐํ•จ์„ฑ, ๋‚ด๊ตฌ์„ฑ์ด ๋›ฐ์–ด๋‚œ ๋ฉ”์‹œ์ง• ์‹œ์Šคํ…œ์„ ์ œ๊ณตํ•œ๋‹ค.

์นดํ”„์นด์™€ ๋ž˜๋น—์— ํ ๊ฐ™์€ ๋ฉ”์‹œ์ง€ ํ ์‹œ์Šคํ…œ ๋•๋ถ„์— MSA ํ™˜๊ฒฝ์ด๋‚˜ ๋ถ„์‚ฐ ์‹œ์Šคํ…œ์—์„œ ๋‚ฎ์€ ๊ฒฐํ•ฉ๋„๋ฅผ ์œ ์ง€ํ•˜๋Š” ๋ฐ ์ค‘์š”ํ•œ ์—ญํ• ์„ ํ•œ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ API ํ†ต์‹ ์„ ํ•˜๊ฒŒ ๋˜๋ฉด ํ˜ธ์ถœ๋œ ์„œ๋น„์Šค๊ฐ€ ํ˜ธ์ถœํ•œ ์„œ๋น„์Šค์— ์˜ํ–ฅ์„ ์ฃผ๊ฒŒ ๋˜๋Š”๋ฐ, ๋น„๋™๊ธฐ ๋ฉ”์‹œ์ง• ํŒจํ„ด์„ ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜๋ฉด ๋ฉ”์‹œ์ง€ ์ƒ์„ฑ์ž๋Š” ๋ฉ”์‹œ์ง€๊ฐ€ ์†Œ๋น„๋˜๋Š” ๋ฐฉ์‹์— ๋Œ€ํ•ด ์•Œ ํ•„์š”๊ฐ€ ์—†์œผ๋ฉฐ, ์†Œ๋น„์ž ์—ญ์‹œ ์ƒ์„ฑ์ž์˜ ์ƒํƒœ์— ์˜์กดํ•˜์ง€ ์•Š๋Š”๋‹ค.

๋‘˜์€ ๋น„์Šทํ•˜์ง€๋งŒ ์•ฝ๊ฐ„์˜ ์ฐจ์ด์ ์ด ์žˆ๋‹ค. RabbitMQ๋Š” ๋ฉ”์‹œ์ง€ ๋ผ์šฐํŒ…๊ณผ ๋Œ€๊ธฐ์—ด ๊ด€๋ฆฌ์— ํŠนํ™”๋œ ์ „ํ†ต์ ์ธ ๋ฉ”์‹œ์ง€ ๋ธŒ๋กœ์ปค๋กœ, ๋ณต์žกํ•œ ๋ฉ”์‹œ์ง€ ์ „๋‹ฌ ์‹œ๋‚˜๋ฆฌ์˜ค์—์„œ ๊ฐ•์ ์„ ๋ณด์ธ๋‹ค. ๋ฐ˜๋ฉด, Kafka๋Š” ์ด๋ฒคํŠธ ์ŠคํŠธ๋ฆฌ๋ฐ๊ณผ ๋กœ๊ทธ ๋ถ„์„์„ ์œ„ํ•œ ์ตœ์‹  ๊ธฐ์ˆ ๋กœ, ๋Œ€๊ทœ๋ชจ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ์™€ ๋กœ๊ทธ ๋ณด์กด์ด ์ค‘์š”ํ•œ ํ™˜๊ฒฝ์— ์ ํ•ฉํ•˜๋‹ค.

 

RabbitMQ

๋ฉ”์‹œ์ง€๋ฅผ ๊ตํ™˜์†Œ(Exchange)๋กœ ๋ณด๋‚ธ ํ›„, ํŠน์ • ๋ผ์šฐํŒ… ํ‚ค๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋Œ€๊ธฐ์—ด(Queue)๋กœ ์ „๋‹ฌํ•œ๋‹ค.  ๋ธŒ๋กœ์ปค๊ฐ€ ๋ฉ”์‹œ์ง€๋ฅผ ๋Œ€๊ธฐ์—ด์— ์ €์žฅํ•˜๊ณ , ์†Œ๋น„์ž์—๊ฒŒ ํ‘ธ์‹œ(Push) ๋ฐฉ์‹์œผ๋กœ ์ „๋‹ฌํ•œ๋‹ค. ์†Œ๋น„์ž๊ฐ€ ๋ฉ”์‹œ์ง€๋ฅผ ์ˆ˜์‹ ํ•˜๋ฉด ์ด๋ฅผ ํ™•์ธ(ACK)ํ•˜๊ณ , ๋ธŒ๋กœ์ปค๋Š” ํ•ด๋‹น ๋ฉ”์‹œ์ง€๋ฅผ ๋Œ€๊ธฐ์—ด์—์„œ ์‚ญ์ œํ•œ๋‹ค. ์ด๋Ÿฌํ•œ ๋ฐฉ์‹์€ ๋ฉ”์‹œ์ง€์˜ ์‹ ์†ํ•œ ์ „๋‹ฌ๊ณผ ์ฒ˜๋ฆฌ๋ฅผ ๋ณด์žฅํ•œ๋‹ค.

- ๊ตํ™˜์†Œ(Exchange) : ์ƒ์„ฑ์ž๋กœ๋ถ€ํ„ฐ ๋ฉ”์‹œ์ง€๋ฅผ ์ˆ˜์‹ ํ•˜๊ณ  ๋ฉ”์‹œ์ง€๋ฅผ ์–ด๋””๋กœ ๋ผ์šฐํŒ…ํ• ์ง€ ๊ฒฐ์ •ํ•œ๋‹ค.

- ํ(๋Œ€๊ธฐ์—ด)๋Š” ๊ตํ™˜์†Œ์—์„œ ๋ฉ”์‹œ์ง€๋ฅผ ๋ฐ›์•„ ์†Œ๋น„์ž์—๊ฒŒ ๋ณด๋‚ด๋Š” ์Šคํ† ๋ฆฌ์ง€๋‹ค.

- ๋ฐ”์ธ๋”ฉ์€ ๊ตํ™˜์†Œ์™€ ๋ธŒ๋กœ์ปค๋ฅผ ์—ฐ๊ฒฐํ•˜๋Š” ๊ฒฝ๋กœ๋‹ค.

Kafka

Kafka๋Š” ๋ฉ”์‹œ์ง•๊ณผ ์ŠคํŠธ๋ฆฌ๋ฐ์„ ๊ฒฐํ•ฉํ•œ ์ด๋ฒคํŠธ ์ŠคํŠธ๋ฆฌ๋ฐ ํ”Œ๋žซํผ์œผ๋กœ, ๋กœ๊ทธ ๊ธฐ๋ฐ˜ ์•„ํ‚คํ…์ฒ˜๋ฅผ ์ค‘์‹ฌ์œผ๋กœ ์„ค๊ณ„๋๋‹ค. ๋ฉ”์‹œ์ง€๋Š” ํ† ํ”ฝ(Topic)์— ์ €์žฅ๋˜๊ณ , ๊ฐ ํ† ํ”ฝ์€ ์—ฌ๋Ÿฌ ํŒŒํ‹ฐ์…˜์œผ๋กœ ๋‚˜๋‰˜์–ด ๋ณ‘๋ ฌ ์ฒ˜๋ฆฌ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค.

- ์นดํ”„์นด ๋ธŒ๋กœ์ปค๋Š” ์ƒ์‚ฐ์ž๊ฐ€ ์†Œ๋น„์ž์—๊ฒŒ ๋ฐ์ดํ„ฐ๋ฅผ ์ŠคํŠธ๋ฆฌ๋ฐํ•  ์ˆ˜ ์žˆ๋„๋กํ•˜๋Š” ์นดํ”„์นด ์„œ๋ฒ„๋‹ค. ์นดํ”„์นด ๋ธŒ๋กœ์ปค์—๋Š” ํ† ํ”ฝ๊ณผ ํ•ด๋‹น ํŒŒํ‹ฐ์…˜์ด ๋“ค์–ด ์žˆ๋‹ค.

- ํ† ํ”ฝ์€ ์นดํ”„์นด ๋ธŒ๋กœ์ปค์—์„œ ์œ ์‚ฌํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ทธ๋ฃนํ™”ํ•˜๋Š” ๋ฐ์ดํ„ฐ ์ €์žฅ์†Œ์ด๋‹ค,

- ํŒŒํ‹ฐ์…˜์€ ์†Œ๋น„์ž๊ฐ€ ๊ตฌ๋…ํ•˜๋Š” ์ฃผ์ œ ๋‚ด์˜ ๋” ์ž‘์€ ๋ฐ์ดํ„ฐ ์ €์žฅ์†Œ์ด๋‹ค.

 

๋ฉ”์‹œ์ง€ ์ „๋‹ฌ ๋ฐฉ์‹ ๋ฐ ๋ณด์กด ์ฐจ์ด

RabbitMQ

๋ธŒ๋กœ์ปค๊ฐ€ ๋ฉ”์‹œ์ง€๋ฅผ ๋Œ€๊ธฐ์—ด์— ์ €์žฅํ•˜๊ณ , ์†Œ๋น„์ž์—๊ฒŒ ํ‘ธ์‹œ(Push) ๋ฐฉ์‹์œผ๋กœ ์ „๋‹ฌํ•œ๋‹ค. ์†Œ๋น„์ž๊ฐ€ ๋ฉ”์‹œ์ง€๋ฅผ ์ˆ˜์‹ ํ•˜๋ฉด ์ด๋ฅผ ํ™•์ธ(ACK)ํ•˜๊ณ , ๋ธŒ๋กœ์ปค๋Š” ํ•ด๋‹น ๋ฉ”์‹œ์ง€๋ฅผ ๋Œ€๊ธฐ์—ด์—์„œ ์‚ญ์ œํ•œ๋‹ค. ์ด๋Ÿฌํ•œ ๋ฐฉ์‹์€ ์œ„์—์„œ ๋งํ–ˆ๋“ฏ์ด ๋ฉ”์‹œ์ง€์˜ ์‹ ์†ํ•œ ์ „๋‹ฌ๊ณผ ์ฒ˜๋ฆฌ๋ฅผ ๋ณด์žฅํ•œ๋‹ค. RabbitMQ๋Š” ๋Œ€๊ธฐ์—ด ๋‚ด์—์„œ ๊ธฐ๋ณธ์ ์œผ๋กœ FIFO(์„ ์ž…์„ ์ถœ) ์ˆœ์„œ๋ฅผ ๋ณด์žฅํ•˜์ง€๋งŒ, ๋‹ค์ค‘ ์†Œ๋น„์ž๊ฐ€ ๋ณ‘๋ ฌ๋กœ ๋ฉ”์‹œ์ง€๋ฅผ ์ฒ˜๋ฆฌํ•  ๊ฒฝ์šฐ ์ˆœ์„œ๊ฐ€ ๊นจ์งˆ ์ˆ˜ ์žˆ๋‹ค.

 

Kafka

์ƒ์‚ฐ์ž๊ฐ€ ๋ฉ”์‹œ์ง€๋ฅผ ํ† ํ”ฝ์— ๊ฒŒ์‹œํ•˜๋ฉด, ๋ฉ”์‹œ์ง€๋Š” ์ง€์ •๋œ ๋ณด์กด ๊ธฐ๊ฐ„ ๋™์•ˆ ๋กœ๊ทธ์— ์ €์žฅ๋œ๋‹ค. ์†Œ๋น„์ž๋Š” ํ’€(Pull) ๋ฐฉ์‹์œผ๋กœ ํ•„์š”ํ•œ ์‹œ์ ์— ๋ฉ”์‹œ์ง€๋ฅผ ์ฝ์œผ๋ฉฐ, ๊ฐ ๋ฉ”์‹œ์ง€์˜ ์˜คํ”„์…‹์„ ์ถ”์ ํ•˜์—ฌ ์ฒ˜๋ฆฌ ์ƒํƒœ๋ฅผ ๊ด€๋ฆฌํ•œ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๋™์ผํ•œ ๋ฉ”์‹œ์ง€๋ฅผ ์—ฌ๋Ÿฌ ๋ฒˆ ์ฝ๊ฑฐ๋‚˜, ํŠน์ • ์‹œ์ ์œผ๋กœ ๋˜๋Œ์•„๊ฐ€ ์žฌ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.(์—ฌ๋Ÿฌ ์†Œ๋น„์ž๊ฐ€ ๋™์ผํ•œ ๋ฉ”์‹œ์ง€๋ฅผ ๋…๋ฆฝ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.) ๊ฐ ํŒŒํ‹ฐ์…˜ ๋‚ด์—์„œ ๋ฉ”์‹œ์ง€์˜ ์ˆœ์„œ๊ฐ€ ์œ ์ง€๋˜์ง€๋งŒ, ์—ฌ๋Ÿฌ ํŒŒํ‹ฐ์…˜์— ๋ฉ”์‹œ์ง€๊ฐ€ ๋ถ„์‚ฐ๋  ๊ฒฝ์šฐ ์ „์ฒด ์ˆœ์„œ๊ฐ€ ๋ณด์žฅ๋˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ๋‹ค. ์ˆœ์„œ๋ฅผ ๋ณด์žฅํ•˜๋ ค๋ฉด ๋‹จ์ผ ํŒŒํ‹ฐ์…˜์„ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ ํŠน์ • ํŒŒํ‹ฐ์…”๋‹ ์ „๋žต์„ ์„ค๊ณ„ํ•ด์•ผ ํ•œ๋‹ค.

 

์„ฑ๋Šฅ ๋ฐ ํ™•์žฅ์„ฑ ์ฐจ์ด

RabbitMQ

์งง์€ ์ง€์—ฐ ์‹œ๊ฐ„์œผ๋กœ ๋ฉ”์‹œ์ง€๋ฅผ ์ „๋‹ฌํ•˜๋ฉฐ, ๋ณต์žกํ•œ ๋ผ์šฐํŒ…๊ณผ ๋ฉ”์‹œ์ง€ ์šฐ์„ ์ˆœ์œ„ ์ง€์ •์ด ๊ฐ€๋Šฅํ•˜๋‹ค. ๋…ธ๋“œ ํ™•์žฅ์ด ๊ฐ€๋Šฅํ•˜์ง€๋งŒ, ๋Œ€๊ทœ๋ชจ ๋ฐ์ดํ„ฐ ์ŠคํŠธ๋ฆผ ์ฒ˜๋ฆฌ์—๋Š” ์„ฑ๋Šฅ ํ•œ๊ณ„๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ๋‹ค.

๋Œ€๊ทœ๋ชจ ๋ฐ์ดํ„ฐ ์ŠคํŠธ๋ฆผ ์ฒ˜๋ฆฌ์— ์ ํ•ฉํ•˜์ง€ ์•Š์€ ์ด์œ 

1. ๋ฉ”์‹œ์ง€๋ฅผ ํ์— ์ €์žฅํ•˜๊ฑฐ๋‚˜, ํ์—์„œ ์†Œ๋น„์ž๋กœ ์ „๋‹ฌํ•˜๋Š” ๊ณผ์ •์€ ๋””์Šคํฌ I/O์™€ ๊ด€๋ จ๋œ ์ž‘์—…์ด ๋งŽ๋‹ค. ๋ฉ”์‹œ์ง€๋ฅผ ์ €์žฅํ•  ๋•Œ, ์‚ญ์ œํ•  ๋•Œ  ๋””์Šคํฌ I/O ๊ฐ€ ์ผ์–ด๋‚˜๊ณ  ๋Œ€๊ทœ๋ชจ ๋ฐ์ดํ„ฐ ์ŠคํŠธ๋ฆผ์—์„œ๋Š” ์ด ๋””์Šคํฌ I/O ์ž‘์—…์ด ๋” ๋นˆ๋ฒˆํ•˜๊ฒŒ ๋ฐœ์ƒํ•ด ์„ฑ๋Šฅ์— ์˜ํ–ฅ์„ ์ค€๋‹ค.(๊ฐœ๋ณ„ ํ์— ๋ฉ”์‹œ์ง€๋ฅผ ๊ธฐ๋ก-๋žœ๋ค I/O)

2. RabbitMQ๋Š” ํด๋Ÿฌ์Šคํ„ฐ๋ง์„ ํ†ตํ•ด ๋…ธ๋“œ๋ฅผ ํ™•์žฅํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ๋ชจ๋“  ๋…ธ๋“œ๊ฐ€ ๋ชจ๋“  ํ์˜ ์ƒํƒœ๋ฅผ ๋™๊ธฐํ™”ํ•ด์•ผ ํ•œ๋‹ค. ํ๊ฐ€ ํŠน์ • ๋…ธ๋“œ์— ์ข…์†์ ์ธ ์ƒํƒœ๊ฐ€ ๋˜๊ธฐ ๋•Œ๋ฌธ์—, ๋ฉ”์‹œ์ง€๊ฐ€ ๋ถ„์‚ฐ๋˜์–ด ์ฒ˜๋ฆฌ๋˜์ง€ ๋ชปํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๋Š” ๋„คํŠธ์›Œํฌ ์˜ค๋ฒ„ํ—ค๋“œ๋ฅผ ์ฆ๊ฐ€์‹œํ‚ค๊ณ  ์„ฑ๋Šฅ ๋ณ‘๋ชฉ์œผ๋กœ ์ด์–ด์งˆ ์ˆ˜ ์žˆ๋‹ค.

3. RabbitMQ๋Š” ๋ธŒ๋กœ์ปค ์ค‘์‹ฌ์œผ๋กœ ์„ค๊ณ„๋˜์–ด ์žˆ์–ด, ๋ธŒ๋กœ์ปค๊ฐ€ ๋ฉ”์‹œ์ง€ ์ „๋‹ฌ, ๋ผ์šฐํŒ…, ์ €์žฅ ๋“ฑ์˜ ๋ชจ๋“  ์ž‘์—…์„ ๋‹ด๋‹นํ•œ๋‹ค. ๋Œ€๊ทœ๋ชจ ๋ฐ์ดํ„ฐ ์ŠคํŠธ๋ฆผ์—์„œ๋Š” ๋ธŒ๋กœ์ปค๊ฐ€ ๊ณผ๋ถ€ํ•˜ ์ƒํƒœ์— ๋น ์งˆ ๊ฐ€๋Šฅ์„ฑ์ด ๋†’์•„์ง€๊ณ , ๋ฉ”์‹œ์ง€ ์ฒ˜๋ฆฌ ์†๋„๊ฐ€ ์ €ํ•˜๋œ๋‹ค.

 

Kafka

๋†’์€ ์ฒ˜๋ฆฌ๋Ÿ‰๊ณผ ํ™•์žฅ์„ฑ์„ ์ œ๊ณตํ•˜๋ฉฐ, ๋Œ€์šฉ๋Ÿ‰ ๋ฐ์ดํ„ฐ ์ŠคํŠธ๋ฆผ์˜ ์‹ค์‹œ๊ฐ„ ์ฒ˜๋ฆฌ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค. ๋…ธ๋“œ๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ ์ˆ˜ํ‰์ ์œผ๋กœ ํ™•์žฅํ•  ์ˆ˜ ์žˆ์–ด, ๋น…๋ฐ์ดํ„ฐ ํ™˜๊ฒฝ์— ์ ํ•ฉํ•˜๋‹ค. Kafka๋Š” ์šฐ์„ ์ˆœ์œ„ ํ๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š๋Š”๋‹ค. ๊ฐ ๋ฉ”์‹œ์ง€๋ฅผ ํ•ด๋‹น ํŒŒํ‹ฐ์…˜์— ๋ถ„๋ฐฐํ•  ๋•Œ ๋ชจ๋“  ๋ฉ”์‹œ์ง€๋ฅผ ๋™๋“ฑํ•˜๊ฒŒ ์ทจ๊ธ‰ํ•œ๋‹ค. 

๋Œ€๊ทœ๋ชจ ๋ฐ์ดํ„ฐ ์ŠคํŠธ๋ฆผ ์ฒ˜๋ฆฌ์— ์ ํ•ฉํ•œ ์ด์œ 

1. Kafka๋Š” ๋ฉ”์‹œ์ง€๋ฅผ ๋กœ๊ทธ ํ˜•ํƒœ๋กœ ๋””์Šคํฌ์— ์ˆœ์ฐจ์ ์œผ๋กœ ์ €์žฅํ•œ๋‹ค. ๋กœ๊ทธ ๊ธฐ๋ฐ˜ ์ €์žฅ์€ ๋””์Šคํฌ์˜ ์“ฐ๊ธฐ ํ—ค๋“œ๊ฐ€ ์ผ์ •ํ•œ ๋ฐฉํ–ฅ์œผ๋กœ๋งŒ ์ด๋™ํ•˜๊ธฐ ๋•Œ๋ฌธ์—, ๋””์Šคํฌ I/O ๋น„์šฉ์ด ๋‚ฎ๋‹ค(์ˆœ์ฐจ I/O)

2.Kafka๋Š” ๋ฉ”์‹œ์ง€๋ฅผ ์ง€์ •๋œ ๋ณด์กด ๊ธฐ๊ฐ„ ๋™์•ˆ ๋กœ๊ทธ์— ์œ ์ง€ํ•˜๋ฉฐ, ์†Œ๋น„์ž๊ฐ€ ๋ฉ”์‹œ์ง€๋ฅผ ์ฝ๋Š”๋‹ค๊ณ  ํ•ด์„œ ๋ฉ”์‹œ์ง€๋ฅผ ์‚ญ์ œํ•˜์ง€ ์•Š๋Š”๋‹ค. ์ด๋Š” ๋””์Šคํฌ์—์„œ ์‹ค์‹œ๊ฐ„ ์‚ญ์ œ ์ž‘์—…์„ ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์ถ”๊ฐ€์ ์ธ I/O ๋ถ€ํ•˜๊ฐ€ ์—†๋‹ค.

 

์ ํ•ฉํ•œ ์‚ฌ์šฉ ์‚ฌ๋ก€

RabbitMQ

๋ฉ”์‹œ์ง€ ์ „๋‹ฌ์˜ ์ง€์—ฐ ์‹œ๊ฐ„์„ ์ตœ์†Œํ™”ํ•˜๊ณ , ์‹ ๋ขฐ์„ฑ ์žˆ๋Š” ๋ผ์šฐํŒ…๊ณผ ๋Œ€๊ธฐ์—ด ๊ด€๋ฆฌ๊ฐ€ ํ•„์š”ํ•œ ๊ฒฝ์šฐ.

๋ณต์žกํ•œ ๋ผ์šฐํŒ… ๊ทœ์น™๊ณผ ์ž‘์—… ๋Œ€๊ธฐ์—ด์ด ์š”๊ตฌ๋˜๋Š” ์‹œ์Šคํ…œ.

์‹ค์‹œ๊ฐ„ ๋ฉ”์‹œ์ง•, ์ž‘์—… ๋Œ€๊ธฐ์—ด, ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ๊ฐ„์˜ ํ†ต์‹  ๋“ฑ ๋ฉ”์‹œ์ง€์˜ ์‹ ๋ขฐ์„ฑ ์žˆ๋Š” ์ „๋‹ฌ๊ณผ ๋ณต์žกํ•œ ๋ผ์šฐํŒ…์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ์— ์ ํ•ฉ

 

Kafka

์‹ค์‹œ๊ฐ„ ๋กœ๊ทธ ์ˆ˜์ง‘ ๋ฐ ๋ถ„์„, ์ด๋ฒคํŠธ ์†Œ์‹ฑ, ์ŠคํŠธ๋ฆฌ๋ฐ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ(์˜ˆ: IoT ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘) ๋“ฑ ๋Œ€์šฉ๋Ÿ‰ ๋ฐ์ดํ„ฐ์˜ ์‹ค์‹œ๊ฐ„ ์ฒ˜๋ฆฌ๊ฐ€ ํ•„์š”ํ•œ ๊ฒฝ์šฐ์— ์ ํ•ฉ

 

์š”์•ฝ

๊ตฌ๋ถ„ RabbitMQ Kafka
์•„ํ‚คํ…์ฒ˜ ๋ฐ
๋ฉ”์‹œ์ง• ๋ชจ๋ธ
RabbitMQ์˜ ์•„ํ‚คํ…์ฒ˜๋Š” ๋ณต์žกํ•œ ๋ฉ”์‹œ์ง€ ๋ผ์šฐํŒ…์„ ์œ„ํ•ด ์„ค๊ณ„
์ƒ์‚ฐ์ž๊ฐ€ ๋ฉ”์‹œ์ง€๋ฅผ ๊ตํ™˜์†Œ(Exchange)์— ๋ณด๋‚ด๋ฉด, ๊ตํ™˜์†Œ๋Š” ๋ผ์šฐํŒ… ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฉ”์‹œ์ง€๋ฅผ ์ ์ ˆํ•œ ๋Œ€๊ธฐ์—ด(Queue)๋กœ ์ „๋‹ฌํ•œ๋‹ค. ์†Œ๋น„์ž๋Š” ์ด ๋Œ€๊ธฐ์—ด์—์„œ ๋ฉ”์‹œ์ง€๋ฅผ ๋ฐ›์•„ ์ฒ˜๋ฆฌ( ๋ณต์žกํ•œ ๋ผ์šฐํŒ… ์‹œ๋‚˜๋ฆฌ์˜ค๋ฅผ ์ง€์›ํ•˜๋ฉฐ, ๋ฉ”์‹œ์ง€์˜ ์‹ ๋ขฐ์„ฑ ์žˆ๋Š” ์ „๋‹ฌ์— ์ค‘์  )
์นดํ”„์นด๋Š” ์‹ค์‹œ๊ฐ„, ๊ณ ์ฒ˜๋ฆฌ๋Ÿ‰ ์ŠคํŠธ๋ฆผ ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•ด ํŒŒํ‹ฐ์…˜ ๊ธฐ๋ฐ˜ ๋””์ž์ธ์„ ์‚ฌ์šฉ
์ƒ์‚ฐ์ž๋Š” ๋ฉ”์‹œ์ง€๋ฅผ ํ† ํ”ฝ(Topic)์— ๊ฒŒ์‹œํ•˜๋ฉฐ, ๊ฐ ํ† ํ”ฝ์€ ์—ฌ๋Ÿฌ ํŒŒํ‹ฐ์…˜์œผ๋กœ ๋‚˜๋‰œ๋‹ค. ์†Œ๋น„์ž๋Š” ์ด๋Ÿฌํ•œ ํŒŒํ‹ฐ์…˜์„ ์ฝ์–ด๋“ค์ด๋ฉฐ, ๋ฉ”์‹œ์ง€๋Š” ๋กœ๊ทธ ํ˜•ํƒœ๋กœ ์ €์žฅ๋˜์–ด ์ง€์ •๋œ ๋ณด์กด ๊ธฐ๊ฐ„ ๋™์•ˆ ์œ ์ง€
๋ฉ”์‹œ์ง€ ์ „๋‹ฌ
๋ฐ ๋ณด์กด ๋ฐฉ์‹
๋ฉ”์‹œ์ง€๋Š” ๋Œ€๊ธฐ์—ด์—์„œ ์ฆ‰์‹œ ์†Œ๋น„์ž๋กœ ์ „๋‹ฌ
์†Œ๋น„์ž๊ฐ€ ๋ฉ”์‹œ์ง€๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ณ  ํ™•์ธ(ACK)ํ•˜๋ฉด ์‚ญ์ œ
๋ฉ”์‹œ์ง€๋Š” ์ง€์ •๋œ ๋ณด์กด ๊ธฐ๊ฐ„ ๋™์•ˆ ์ €์žฅ
์—ฌ๋Ÿฌ ์†Œ๋น„์ž๊ฐ€ ๋™์ผํ•œ ๋ฉ”์‹œ์ง€๋ฅผ ๋…๋ฆฝ์ ์œผ๋กœ ์ฒ˜๋ฆฌ ๊ฐ€๋Šฅ

์„ฑ๋Šฅ ๋ฐ
ํ™•์žฅ์„ฑ
์งง์€ ์ง€์—ฐ ์‹œ๊ฐ„์œผ๋กœ ๋ฉ”์‹œ์ง€๋ฅผ ์ „๋‹ฌ
๋ณต์žกํ•œ ๋ผ์šฐํŒ…๊ณผ ๋ฉ”์‹œ์ง€ ์šฐ์„ ์ˆœ์œ„ ์ง€์ •์ด ๊ฐ€๋Šฅ
๊ทธ๋Ÿฌ๋‚˜ ๋Œ€๊ทœ๋ชจ ๋ฐ์ดํ„ฐ ์ŠคํŠธ๋ฆผ ์ฒ˜๋ฆฌ์—๋Š” ํ•œ๊ณ„
๋†’์€ ์ฒ˜๋ฆฌ๋Ÿ‰๊ณผ ํ™•์žฅ์„ฑ์„ ์ œ๊ณตํ•˜๋ฉฐ, ๋Œ€์šฉ๋Ÿ‰ ๋ฐ์ดํ„ฐ ์ŠคํŠธ๋ฆผ์˜ ์‹ค์‹œ๊ฐ„ ์ฒ˜๋ฆฌ๊ฐ€ ๊ฐ€๋Šฅ
ํด๋Ÿฌ์Šคํ„ฐ์˜ ๋…ธ๋“œ๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ ์‰ฝ๊ฒŒ ํ™•์žฅ ๊ฐ€๋Šฅ, ๋น…๋ฐ์ดํ„ฐ ํ™˜๊ฒฝ์— ์ ํ•ฉ
๋ณต์ œ๋ฅผ ํ†ตํ•ด ๋ฐ์ดํ„ฐ ์†์‹ค์„ ๋ฐฉ์ง€
๋ฉ”์‹œ์ง€ ์šฐ์„ ์ˆœ์œ„ ์ง€์› ์•ˆํ•จ
์‚ฌ์šฉ ์‚ฌ๋ก€ ์‹ค์‹œ๊ฐ„ ๋ฉ”์‹œ์ง•
์ž‘์—… ๋Œ€๊ธฐ์—ด
๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ๊ฐ„์˜ ํ†ต์‹  ๋“ฑ ๋ฉ”์‹œ์ง€์˜ ์‹ ๋ขฐ์„ฑ ์žˆ๋Š” ์ „๋‹ฌ๊ณผ ๋ณต์žกํ•œ ๋ผ์šฐํŒ…์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ
์‹ค์‹œ๊ฐ„ ๋กœ๊ทธ ์ˆ˜์ง‘ ๋ฐ ๋ถ„์„
์ด๋ฒคํŠธ ์†Œ์‹ฑ
์ŠคํŠธ๋ฆฌ๋ฐ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ(์˜ˆ: IoT ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘)
๋Œ€์šฉ๋Ÿ‰ ๋ฐ์ดํ„ฐ์˜ ์‹ค์‹œ๊ฐ„ ์ฒ˜๋ฆฌ

 

์ฐธ๊ณ 

 

https://www.instaclustr.com/blog/rabbitmq-vs-kafka/

 

RabbitMQ vs. Apache Kafka®: Key Differences and Use Cases

Against popular developer belief, RabbitMQ vs Kafka is not all interchangeable in delivery and capability. Learn about their use cases here.

www.instaclustr.com

https://www.koyeb.com/blog/rabbitmq-vs-apache-kafka-comparing-message-brokers-and-modern-event-streaming-platforms

 

RabbitMQ vs Apache Kafka: Comparing Message Brokers and Event Streaming Platforms

Event routers are the middlemen in an event-driven system. RabbitMQ and Apache Kafka are two popular event routers with very different implementations. Learn about their difference to make better decisions for powering modern apps.

www.koyeb.com

https://aws.amazon.com/ko/compare/the-difference-between-rabbitmq-and-kafka/?nc1=h_ls

 

RabbitMQ์™€ Kafka - ๋ฉ”์‹œ์ง€ ๋Œ€๊ธฐ์—ด ์‹œ์Šคํ…œ ๊ฐ„์˜ ์ฐจ์ด์  - AWS

RabbitMQ๋Š” ๊ฐ„๋‹จํ•œ ์•„ํ‚คํ…์ฒ˜๋กœ ๋ณต์žกํ•œ ๋ฉ”์‹œ์ง€ ๋ผ์šฐํŒ…์„ ์ œ๊ณตํ•˜๋Š” ๋ฐ˜๋ฉด, Kafka๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์ŠคํŠธ๋ฆผ ๊ธฐ๋ก์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์„ ๋งŒํผ ๋‚ด๊ตฌ์„ฑ์ด ์šฐ์ˆ˜ํ•œ ๋ฉ”์‹œ์ง€ ๋ธŒ๋กœ์ปค ์‹œ์Šคํ…œ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

aws.amazon.com

 

 

๋Œ“๊ธ€