Back-end/Spring

[Spring Websocket] In Memory Broker vs External Broker

๐Ÿ” Message Broker๋ž€?

Publisher๋กœ๋ถ€ํ„ฐ ์ „๋‹ฌ๋ฐ›์€ ๋ฉ”์„ธ์ง€๋ฅผ Subscriber๋กœ ์ „๋‹ฌํ•ด์ค„ ๋•Œ ์ค‘๊ฐ„์—์„œ ๋ฉ”์„ธ์ง€๋ฅผ ์ฃผ๊ณ  ๋ฐ›๊ฒŒ ํ•ด์ฃผ๋Š” ์ค‘๊ฐ„ ์—ญํ• 

 

๐Ÿ” In Memory Broker๋ž€?

Spring websocket์—์„œ STOMP ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•ด์„œ ์›น์†Œ์ผ“ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•  ๋•Œ STOMP๋Š” Message Broker๊ฐ€ ํ•„์š”ํ•˜๋‹ค.

์ด ๋•Œ ์•„๋ฌด ์„ค์ • ์—†์ด Spring ํ™˜๊ฒฝ์—์„œ STOMP ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•œ๋‹ค๋ฉด ๋ฉ”์„ธ์ง€ ๋ธŒ๋กœ์ปค๋กœ In Memory Broker๋ฅผ ์‚ฌ์šฉํ•˜๊ฒŒ ๋œ๋‹ค.

 

๊ทธ๋ ‡๋‹ค๋ฉด ํ•˜๋‚˜์˜ ์„œ๋น„์Šค๋ฅผ ๋งŒ๋“ค ๋•Œ In Memory Broker๋ฅผ ๋ฉ”์„ธ์ง€ ๋ธŒ๋กœ์ปค๋กœ ์‚ฌ์šฉํ•ด๋„ ์ƒ๊ด€ ์—†์„๊นŒ?

์ƒ๊ด€์žˆ๋‹ค... ์•„๋ž˜๋ฅผ ๋ณด๋ฉด, In Memory ๋ธŒ๋กœ์ปค์˜ ๋‹จ์ ๋“ค์ด ์กด์žฌํ•œ๋‹ค.

  1. ์„ธ์…˜์„ ์ˆ˜์šฉํ•  ์ˆ˜ ์žˆ๋Š” ํฌ๊ธฐ๊ฐ€ ์ œํ•œ๋˜์–ด ์žˆ๋‹ค.
  2. ์žฅ์•  ๋ฐœ์ƒ ์‹œ ๋ฉ”์„ธ์ง€์˜ ์œ ์‹ค๋  ๊ฐ€๋Šฅ์„ฑ์ด ๋†’๋‹ค.
  3. ๋”ฐ๋กœ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๋Š” ๊ฒƒ์ด ๋ถˆํŽธํ•˜๋‹ค.

 

๊ทธ๋ ‡๋‹ค๋ฉด In Memory ๋ธŒ๋กœ์ปค ๋Œ€์‹  ๋ฌด์Šจ ๋ธŒ๋กœ์ปค๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์„๊นŒ?

 

RabbitMQ, ActiveMQ ๋“ฑ์—์„œ๋Š” STOMP ํ”„๋กœํ† ์ฝœ์˜ Message Broker ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ด์ค€๋‹ค. 

๋”ฐ๋ผ์„œ ์ด๋“ค์˜ ํž˜์„ ๋นŒ๋ ค In Memory ๋ธŒ๋กœ์ปค ๋Œ€์‹  ์ž˜ ๋งŒ๋“ค์–ด์ง„ STOMP ์ „์šฉ ์™ธ๋ถ€ ๋ธŒ๋กœ์ปค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๋” ์ข‹๋‹ค.

 

STOMP ์ „์šฉ ์™ธ๋ถ€ ๋ธŒ๋กœ์ปค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์žฅ์ ์ด ๋ฌด์—‡์ด ์žˆ์„๊นŒ?

  1. ํ™•์žฅ์„ฑ : ์„ธ์…˜์„ ์ˆ˜์šฉํ•  ์ˆ˜ ์žˆ๋Š” ํฌ๊ธฐ๊ฐ€ ํฌ๋‹ค.
  2. ๊ฒฐํ•จ ํ—ˆ์šฉ์„ฑ : ์˜๊ตฌ์ ์ด๋ฉฐ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์„ ์‹œ ์žฌ์‹œ๋„๊ฐ€ ๊ฐ€๋Šฅํ•˜์—ฌ ๋ณต๊ตฌ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค.
  3. ๋ชจ๋‹ˆํ„ฐ๋ง : ๊ฐ„ํŽธํ•˜๊ฒŒ ๋ชจ๋‹ˆํ„ฐ๋ง์„ ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

์ž ๊ทธ๋Ÿผ ์•ž์œผ๋กœ Spring Websocket STOMP ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•  ๋•Œ STOMP ์ „์šฉ ๋ธŒ๋กœ์ปค๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ํ•˜์ž!

 

๊ถ๊ธˆํ•˜์‹  ๊ฒƒ์ด ์žˆ๊ฑฐ๋‚˜ ์ž˜๋ชป๋œ๊ฒŒ ์žˆ์œผ๋ฉด ์–ธ์ œ๋“ ์ง€ ๋Œ“๊ธ€ ๋‹ฌ์•„์ฃผ์„ธ์š”!

๋ฐ˜์‘ํ˜•