Search
Duplicate

Message Queue

โ€ข
์ตœ์‹  ํด๋ผ์šฐ๋“œ ์•„ํ‚คํ…์ฒ˜์—์„œ๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์ข€ ๋” ์‰ฝ๊ฒŒ ๊ฐœ๋ฐœ, ๋ฐฐํฌ ๋ฐ ์œ ์ง€ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋„๋ก ๋” ์ž‘๊ณ  ๋…๋ฆฝ์ ์ธ ๋ชจ๋“ˆ๋กœ ๊ตฌ์„ฑํ•œ๋‹ค.
โ€ข
MQ๋Š” ์ด๋Ÿฌํ•œ ๋ถ„์‚ฐ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์œ„ํ•œ ํ†ต์‹  ๋ฐ ์กฐ์ • ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค.
โ€ข
MQ๋Š” ๊ฐ ๋ชจ๋“ˆ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์ฝ”๋”ฉ์„ ์ƒ๋‹นํžˆ ๊ฐ„์†Œํ™”ํ•˜๋ฉด์„œ ๋™์‹œ์— ์„ฑ๋Šฅ, ์•ˆ์ •์„ฑ ๋ฐ ํ™•์žฅ์„ฑ์„ ๊ฐœ์„ ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•œ๋‹ค.
โ€ข
MQ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์‹œ์Šคํ…œ์˜ ์„œ๋กœ ๋‹ค๋ฅธ ๋ถ€๋ถ„์ด ํ†ต์‹ ํ•˜๊ณ  ๋น„๋™๊ธฐ์‹์œผ๋กœ ์ž‘์—…์„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.
โ€ข
MQ๋Š” ๋ฉ”์‹œ์ง€๋ฅผ ์ž„์‹œ๋กœ ์ €์žฅํ•˜๋Š” ๊ฐ„๋‹จํ•œ ๋ฒ„ํผ๋ฅผ ์ œ๊ณตํ•˜๊ณ , ๋ฉ”์‹œ์ง€๋ฅผ ์ „์†ก ๋ฐ ์ˆ˜์‹ ํ•˜๊ธฐ ์œ„ํ•ด ์†Œํ”„ํŠธ์›จ์–ด ๊ตฌ์„ฑ ์š”์†Œ๊ฐ€ queue์— ์—ฐ๊ฒฐํ•˜๋„๋ก ํ—ˆ์šฉํ•˜๋Š” ์—”๋“œํฌ์ธํŠธ๋ฅผ ์ œ๊ณตํ•œ๋‹ค.
โ€ข
๋ฉ”์‹œ์ง€๋Š” ๋ณดํ†ต ํฌ๊ธฐ๊ฐ€ ์ž‘์œผ๋ฉฐ, ์š”์ฒญ, ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€ ๋˜๋Š” ํ‰๋ฒ”ํ•œ ์ •๋ณด๊ฐ€ ๋  ์ˆ˜ ์žˆ๋‹ค.
โ€ข
๋ฉ”์‹œ์ง€๋ฅผ ์ „์†กํ•˜๋ ค๋ฉด ์ƒ์‚ฐ์ž(producer)๋ผ๊ณ  ๋ถ€๋ฅด๋Š” ๊ตฌ์„ฑ ์š”์†Œ๊ฐ€ ๋ฉ”์‹œ์ง€๋ฅผ ๋Œ€๊ธฐ์—ด์— ์ถ”๊ฐ€ํ•œ๋‹ค.
โ€ข
ํ•ด๋‹น ๋ฉ”์‹œ์ง€๋Š” ์†Œ๋น„์ž(consumer)๋ผ๊ณ  ๋ถ€๋ฅด๋Š” ๋˜ ๋‹ค๋ฅธ ๊ตฌ์„ฑ ์š”์†Œ๊ฐ€ ๋ฉ”์‹œ์ง€๋ฅผ ๊ฒ€์ƒ‰ํ•˜๊ณ  ์ด๋ฅผ ์‚ฌ์šฉํ•ด ์–ด๋–ค ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ๋•Œ๊นŒ์ง€ ํ•ด๋‹น queue์— ์ €์žฅ๋œ๋‹ค.
โ€ข
๋ฉ”์‹œ์ง€ ํ๋Š” ์†Œ๋น„์ž(Consumer)๊ฐ€ ์‹ค์ œ๋กœ ๋ฉ”์‹œ์ง€๋ฅผ ์–ด๋Š ์‹œ์ ์— ๊ฐ€์ ธ๊ฐ€์„œ ์ฒ˜๋ฆฌํ•˜๋Š” ์ง€๋Š” ๋ณด์žฅํ•˜์ง€ ์•Š๋Š”๋‹ค.
โ€ข
์–ธ์  ๊ฐ€๋Š” ํ์— ๋„ฃ์–ด๋‘” ๋ฉ”์‹œ์ง€๊ฐ€ ์†Œ๋น„๋˜์–ด ์ฒ˜๋ฆฌ๋  ๊ฒƒ์ด๋ผ๊ณ  ๋ฏฟ๋Š” ๊ฒƒ์ด๋‹ค.
โ€ข
์ด๋Ÿฌํ•œ ๋น„๋™๊ธฐ์  ํŠน์„ฑ ๋•Œ๋ฌธ์— ๋ฉ”์‹œ์ง€ ํ๋Š” ์‹คํŒจํ•˜๋ฉด ์น˜๋ช…์ ์ธ ํ•ต์‹ฌ ์ž‘์—…๋ณด๋‹ค๋Š” ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋ถ€๊ฐ€์ ์ธ ๊ธฐ๋Šฅ์— ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ ํ•ฉํ•˜๋‹ค.
์˜ˆ๋ฅผ ๋“ค๋ฉด, ์ด๋ฉ”์ผ์ „์†ก๊ณผ ๊ฐ™์€ ์ž‘์—…์ด ์žˆ์„ ์ˆ˜ ์žˆ๋‹ค.๋‚˜๋Š” ์ด๋ฏธ ์ด๋ฉ”์ผ์„ ์ „์†กํ–ˆ๊ณ , ์‹ค์ œ ๋ฐ›๋Š” ์‚ฌ๋žŒ์ด ์ฝ์„ ๋•Œ๊นŒ์ง€ ์‹œ๊ฐ„์€ ๊ฑธ๋ฆฌ๊ฒ ์ง€๋งŒ, ํ•ด๋‹น ์ž‘์—…์ด ์™„๋ฃŒ์ฒ˜๋ฆฌ ๋  ๊ฒƒ์„ ์šฐ๋ฆฌ๋Š” ์•Œ๊ณ ์žˆ๋‹ค.๋ฐ”๋กœ ์‹ค์‹œ๊ฐ„์œผ๋กœ ์ฒ˜๋ฆฌ๋˜์ง€ ์•Š์•„๋„ ์„œ๋น„์Šค์— ํฌ๊ฒŒ ๋ฌธ์ œ ์—†๋Š” ์ด๋Ÿฐ ์ž‘์—…์— MQ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.์ฆ‰, MQ๋Š”ย ์–ด๋Š ์ •๋„์˜ ์‘๋‹ต ์ง€์—ฐ์ด ํ—ˆ์šฉ๋˜๋ฉฐ, ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ํ•ต์‹ฌ ๊ธฐ๋Šฅ์€ ์•„๋‹Œ ๊ฒฝ์šฐ์— ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ ํ•ฉํ•˜๋‹ค.

message queue ์žฅ์ 

โ€ข
๋น„๋™๊ธฐ(Asynchronous)
โ—ฆ
๋ฉ”์‹œ์ง€ ํ๋Š” ์ƒ์‚ฐ๋œ ๋ฉ”์‹œ์ง€์˜ ์ €์žฅ, ์ „์†ก์— ๋Œ€ํ•ด ๋™๊ธฐํ™” ์ฒ˜๋ฆฌ๋ฅผ ์ง„ํ–‰ํ•˜์ง€ ์•Š๊ณ , ํ์— ๋„ฃ์–ด ๋‘๊ธฐ ๋•Œ๋ฌธ์— ๋‚˜์ค‘์— ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.
โ—ฆ
์—ฌ๊ธฐ์„œ, ๊ธฐ์กด ๋™๊ธฐํ™” ๋ฐฉ์‹์€ ๋งŽ์€ ๋ฉ”์‹œ์ง€(๋ฐ์ดํ„ฐ)๊ฐ€ ์ „์†ก๋  ๊ฒฝ์šฐ ๋ณ‘๋ชฉ์ด ์ƒ๊ธธ ์ˆ˜ ์žˆ๊ณ , ๋’ค์— ๋“ค์–ด์˜ค๋Š” ์š”์ฒญ์— ๋Œ€ํ•œ ์‘๋‹ต์ด ์ง€์—ฐ๋  ๊ฒƒ์ด๋‹ค.
โ€ข
๋‚ฎ์€ ๊ฒฐํ•ฉ๋„(Decoupling)
โ—ฆ
์ƒ์‚ฐ์ž ์„œ๋น„์Šค์™€ ์†Œ๋น„์ž ์„œ๋น„์Šค๊ฐ€ ๋…๋ฆฝ์ ์œผ๋กœ ํ–‰๋™ํ•˜๊ฒŒ ๋จ์œผ๋กœ์จ ์„œ๋น„์Šค ๊ฐ„ ๊ฒฐํ•ฉ๋„๊ฐ€ ๋‚ฎ์•„์ง„๋‹ค.
โ€ข
ํ™•์žฅ์„ฑ(Scalable)
โ—ฆ
์ƒ์‚ฐ์ž ์„œ๋น„์Šค ํ˜น์€ ์†Œ๋น„์ž ์„œ๋น„์Šค๋ฅผ ์›ํ•˜๋Š” ๋Œ€๋กœ ํ™•์žฅํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ํ™•์žฅ์„ฑ์ด ์ข‹๋‹ค.
โ€ข
ํƒ„๋ ฅ์„ฑ(Resilience)
โ—ฆ
์†Œ๋น„์ž ์„œ๋น„์Šค๊ฐ€ ๋‹ค์šด๋˜๋”๋ผ๋„ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์ค‘๋‹จ๋˜๋Š” ๊ฒƒ์€ ์•„๋‹ˆ๋‹ค. ๋ฉ”์‹œ์ง€๋Š” ๋ฉ”์‹œ์ง€ ํ์— ๋‚จ์•„ ์žˆ๋‹ค. ์†Œ๋น„์ž ์„œ๋น„์Šค๊ฐ€ ๋‹ค์‹œ ์‹œ์ž‘๋  ๋•Œ๋งˆ๋‹ค ์ถ”๊ฐ€ ์„ค์ •์ด๋‚˜ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜์ง€ ์•Š๊ณ ๋„ ๋ฉ”์‹œ์ง€ ์ฒ˜๋ฆฌ๋ฅผ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ๋‹ค.
โ€ข
๋ณด์žฅ์„ฑ(Guarantees)
โ—ฆ
๋ฉ”์‹œ์ง€ ํ๋Š” ํ์— ๋ณด๊ด€๋˜๋Š” ๋ชจ๋“  ๋ฉ”์‹œ์ง€๊ฐ€ ๊ฒฐ๊ตญ ์†Œ๋น„์ž ์„œ๋น„์Šค์—๊ฒŒ ์ „๋‹ฌ๋œ๋‹ค๋Š” ์ผ๋ฐ˜์ ์ธ ๋ณด์žฅ์„ ์ œ๊ณตํ•œ๋‹ค.

Kafka

ํŠน์ง•

โ€ข
๋†’์€ ์ฒ˜๋ฆฌ๋Ÿ‰์„ ์š”๊ตฌํ•˜๋Š” ์‹ค์‹œ๊ฐ„ ๋ฐ์ดํ„ฐ ํ”ผ๋“œ ์ฒ˜๋ฆฌ๋‚˜ ๋Œ€๊ธฐ ์‹œ๊ฐ„์ด ์งง์€ ํ”Œ๋žซํผ์„ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์„ ๋ชฉํ‘œ๋กœ ํ•˜๋ฉฐ TCP ๊ธฐ๋ฐ˜ ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•œ๋‹ค.
โ€ข
ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ์ค‘์‹ฌ์œผ๋กœ Producer์™€ Consumer๊ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ Pushํ•˜๊ณ  Pullํ•˜๋Š” ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ง„๋‹ค.
โ€ข
Publisher / Subscriber ๋ชจ๋ธ
โ€ข
๊ณ ๊ฐ€์šฉ์„ฑ
โ€ข
ํ™•์žฅ์„ฑ
โ€ข
๋””์Šคํฌ ์ˆœ์ฐจ ์ €์žฅ ๋ฐ ์ฒ˜๋ฆฌ
โ€ข
๋ถ„์‚ฐ ์ฒ˜๋ฆฌ (Partitioning)
โ€ข
์นดํ”„์นด๋Š” ๋‚ด๊ตฌ์„ฑ์ด ๋›ฐ์–ด๋‚œ ๋ฉ”์‹œ์ง€ ์ €์žฅ์†Œ๋กœ, ๊ณ ๊ฐ๋“ค์€ ๋ฉ”์‹œ์ง€๊ฐ€ ํ•œ ๋ฒˆ ๋ฐฐ๋‹ฌ๋˜๋ฉด ๋Œ€๊ธฐ์—ด์—์„œ ์ œ๊ฑฐ๋˜๋Š” ์ „ํ†ต์ ์ธ ๋ฉ”์‹œ์ง€ ์ค‘๊ฐœ์—…์ž๋“ค๊ณผ๋Š” ๋‹ฌ๋ฆฌ,ย ํ•„์š”์— ๋”ฐ๋ผ ์ด๋ฒคํŠธ ์ŠคํŠธ๋ฆผ์„ ์žฌ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค.
โ€ข
๋Œ€์šฉ๋Ÿ‰์˜ ์‹ค์‹œ๊ฐ„ ๋กœ๊ทธ ์ฒ˜๋ฆฌ์— ํŠนํ™”๋˜์–ด ์„ค๊ณ„๋œ ๋ฉ”์‹œ์ง• ์‹œ์Šคํ…œ์œผ๋กœ์จ ๊ธฐ์กด ๋ฒ”์šฉ ๋ฉ”์‹œ์ง• ์‹œ์Šคํ…œ๋Œ€๋น„ย TPS(Transaction per second)๊ฐ€ ๋งค์šฐ ์šฐ์ˆ˜ํ•˜๋‹ค.ย ๋‹จ, ํŠนํ™”๋œ ์‹œ์Šคํ…œ์ด๊ธฐ ๋•Œ๋ฌธ์— ๋ฒ”์šฉ ๋ฉ”์‹œ์ง• ์‹œ์Šคํ…œ์—์„œ ์ œ๊ณตํ•˜๋Š” ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ๋“ค์€ ์ œ๊ณต๋˜์ง€ ์•Š๋Š”๋‹ค.
โ€ข
๋ถ„์‚ฐ ์‹œ์Šคํ…œ์„ ๊ธฐ๋ณธ์œผ๋กœ ์„ค๊ณ„๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์—ย ๊ธฐ์กด ๋ฉ”์‹œ์ง• ์‹œ์Šคํ…œ์— ๋น„ํ•ดย ๋ถ„์‚ฐ ๋ฐ ๋ณต์ œ ๊ตฌ์„ฑ์„ ์†์‰ฝ๊ฒŒ ํ•  ์ˆ˜ ์žˆ๋‹ค.
โ€ข
AMQP ํ”„๋กœํ† ์ฝœ์ด๋‚˜ JMS API๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ๋‹จ์ˆœํ•œ ๋ฉ”์‹œ์ง€ ํ—ค๋”๋ฅผ ์ง€๋‹Œ TCP๊ธฐ๋ฐ˜์˜ ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•˜์—ฌย ํ”„๋กœํ† ์ฝœ์— ์˜ํ•œ ์˜ค๋ฒ„ํ—ค๋“œ๋ฅผ ๊ฐ์†Œ์‹œ์ผฐ๋‹ค.
โ€ข
Producer๊ฐ€ Broker์—๊ฒŒ ๋‹ค์ˆ˜์˜ ๋ฉ”์‹œ์ง€๋ฅผ ์ „์†กํ•  ๋•Œ ๊ฐ ๋ฉ”์‹œ์ง€๋ฅผ ๊ฐœ๋ณ„์ ์œผ๋กœ ์ „์†กํ•ด์•ผํ•˜๋Š” ๊ธฐ์กด ๋ฉ”์‹œ์ง• ์‹œ์Šคํ…œ๊ณผ๋Š” ๋‹ฌ๋ฆฌ,ย ๋‹ค์ˆ˜์˜ ๋ฉ”์‹œ์ง€๋ฅผ batchํ˜•ํƒœ๋กœ Broker์—๊ฒŒ ํ•œ ๋ฒˆ์— ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ์–ด TCP/IP ๋ผ์šด๋“œ ํŠธ๋ฆฝ ํšŸ์ˆ˜๋ฅผ ์ค„์ผ ์ˆ˜ ์žˆ๋‹ค.
โ€ข
๋ฉ”์‹œ์ง€๋ฅผ ๊ธฐ๋ณธ์ ์œผ๋กœ ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅํ•˜๋Š” ๊ธฐ๋ณธ ๋ฉ”์‹œ์ง• ์‹œ์Šคํ…œ๊ณผ๋Š” ๋‹ฌ๋ฆฌย ๋ฉ”์‹œ์ง€๋ฅผ ํŒŒ์ผ ์‹œ์Šคํ…œ์— ์ €์žฅํ•œ๋‹ค. (RabbitMQ๋Š” ram or disk ์„ ํƒ๊ฐ€๋Šฅ)
โ€ข
ํŒŒ์ผ ์‹œ์Šคํ…œ์— ๋ฉ”์‹œ์ง€๋ฅผ ์ €์žฅํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ณ„๋„์˜ ์„ค์ •์„ ํ•˜์ง€ ์•Š์•„๋„ย ๋ฐ์ดํ„ฐ์˜ ์˜์†์„ฑ์ด ๋ณด์žฅ๋œ๋‹ค.
โ€ข
๊ธฐ์กด ๋ฉ”์‹œ์ง• ์‹œ์Šคํ…œ์—์„œ๋Š” ์ฒ˜๋ฆฌ๋˜์ง€ ์•Š๊ณ  ๋‚จ์•„์žˆ๋Š” ๋ฉ”์‹œ์ง€์˜ ์ˆ˜๊ฐ€ ๋งŽ์„์ˆ˜๋ก ์‹œ์Šคํ…œ์˜ ์„ฑ๋Šฅ์ด ํฌ๊ฒŒ ๊ฐ์†Œํ•˜์˜€์œผ๋‚˜,ย Kafka์—์„œ๋Š” ๋ฉ”์‹œ์ง€๋ฅผ ํŒŒ์ผ ์‹œ์Šคํ…œ์— ์ €์žฅํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฉ”์‹œ์ง€๋ฅผ ๋งŽ์ด ์Œ“์•„๋‘์–ด๋„ ์„ฑ๋Šฅ์ด ํฌ๊ฒŒ ๊ฐ์†Œํ•˜์ง€ ์•Š๋Š”๋‹ค. ๋˜ํ•œ ๋งŽ์€ ๋ฉ”์‹œ์ง€๋ฅผ ์Œ“์•„๋‘˜ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์—, ์‹ค์‹œ๊ฐ„ ์ฒ˜๋ฆฌ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์ฃผ๊ธฐ์ ์ธ batch ์ž‘์—…์— ์‚ฌ์šฉํ•  ๋ฐ์ดํ„ฐ๋ฅผ ์Œ“์•„๋‘๋Š” ์šฉ๋„๋กœ๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.
โ€ข
Consumer์— ์˜ํ•ด ์ฒ˜๋ฆฌ๋œ ๋ฉ”์‹œ์ง€(ack)๋ฅผ ๊ณง๋ฐ”๋กœ ์‚ญ์ œํ•˜๋Š” ๊ธฐ์กด ๋ฉ”์‹œ์ง• ์‹œ์Šคํ…œ๊ณผ๋Š” ๋‹ฌ๋ฆฌ ์ฒ˜๋ฆฌ๋œ ๋ฉ”์‹œ์ง€๋ฅผ ์‚ญ์ œํ•˜์ง€ ์•Š๊ณ  ํŒŒ์ผ ์‹œ์Šคํ…œ์— ๊ทธ๋Œ€๋กœ ๋‘์—ˆ๋‹ค๊ฐ€ ์„ค์ •๋œ ์ˆ˜๋ช…์ด ์ง€๋‚˜๋ฉด ์‚ญ์ œํ•œ๋‹ค.ย ์ฒ˜๋ฆฌ๋œ ๋ฉ”์‹œ์ง€๋ฅผ ์ผ์ • ๊ธฐ๊ฐ„๋™์•ˆ ์‚ญ์ œํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ๋ฉ”์‹œ์ง€ ์ฒ˜๋ฆฌ ๋„์ค‘์— ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜์˜€๊ฑฐ๋‚˜ ์ฒ˜๋ฆฌ ๋กœ์ง์ด ๋ณ€๊ฒฝ๋˜์—ˆ์„ ๊ฒฝ์šฐ Consumer๊ฐ€ ๋ฉ”์‹œ์ง€๋ฅผ ์ฒ˜์Œ๋ถ€ํ„ฐ ๋‹ค์‹œ ์ฒ˜๋ฆฌ(rewind)ํ•˜๋„๋ก ํ•  ์ˆ˜ ์žˆ๋‹ค.
โ€ข
๊ธฐ์กด์˜ ๋ฉ”์‹œ์ง• ์‹œ์Šคํ…œ์—์„œ๋Š” Broker๊ฐ€ Consumer์—๊ฒŒ ๋ฉ”์‹œ์ง€๋ฅผ Pushํ•ด์ฃผ๋Š” ๋ฐฉ์‹์ธ๋ฐ ๋ฐ˜ํ•ด,ย Kafka๋Š” Consumer๊ฐ€ Broker๋กœ๋ถ€ํ„ฐ ์ง์ ‘ ๋ฉ”์‹œ์ง€๋ฅผ ๊ฐ€์ง€๊ณ  ๊ฐ€๋Š” pull(poliing)๋ฐฉ์‹์œผ๋กœ ๋™์ž‘ํ•œ๋‹ค.
โ€ข
๋”ฐ๋ผ์„œ Consumer๋Š” ์ž์‹ ์˜ ์ฒ˜๋ฆฌ๋Šฅ๋ ฅ๋งŒํผ์˜ ๋ฉ”์‹œ์ง€๋งŒ Broker๋กœ๋ถ€ํ„ฐ ๊ฐ€์ ธ์˜ค๊ธฐ ๋•Œ๋ฌธ์— ์ตœ์ ์˜ ์„ฑ๋Šฅ์„ ๋‚ผ ์ˆ˜ ์žˆ๋‹ค.
โ€ข
๋ฉ”์‹œ์ง€๋ฅผ Pull ๋ฐฉ์‹์œผ๋กœ ๊ฐ€์ ธ์˜ค๋ฏ€๋กœ,ย ๋ฉ”์‹œ์ง€๋ฅผ ์Œ“์•„๋‘์—ˆ๋”ฐ๊ฐ€ ์ฃผ๊ธฐ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๋Š” Batch Consumer์˜ ๊ตฌํ˜„์ด ๊ฐ€๋Šฅํ•˜๋‹ค.
โ€ข
ํ์˜ ๊ธฐ๋Šฅ์€ JMS, AMQP ๊ธฐ๋ฐ˜์˜ RabbitMQ๋“ฑ์— ๋น„ํ•ด์„œ๋Š” ๋งŽ์ด ๋ถ€์กฑํ•˜์ง€๋งŒ ๋Œ€์šฉ๋Ÿ‰ ๋ฉ”์‹œ์ง€๋ฅผ ์ง€์›ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ด ๊ฐ€์žฅ ํฐ ํŠน์ง•์ด๋‹ค. ํŠนํžˆ ๋ถ„์‚ฐ ํ™˜๊ฒฝ์—์„œ ๋ณต์‚ฌ๋ณธ์„ ๋‹ค๋ฅธ ๋…ธ๋“œ์— ์ €์žฅํ•จ์œผ๋กœ์จ ๋…ธ๋“œ ์žฅ์• ์— ๋Œ€ํ•œ ์žฅ์•  ๋Œ€์‘์„ฑ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๊ฐ•์ ์ด ์žˆ๋‹ค.