songining
article thumbnail

RabbitMQ๋ž€ AMQP(MQ ์˜คํ”ˆ์†Œ์Šค ํ‘œ์ค€ ํ”„๋กœํ† ์ฝœ)์˜ ๊ตฌํ˜„์ฒด ์ค‘ ํ•˜๋‚˜์ด์ž ๋ฏธ๋“ค์›จ์–ด ๋ธŒ๋กœ์ปค๋‹ค.

MSA ๊ตฌ์กฐ์—์„œ ์„œ๋ฒ„์™€ ์„œ๋ฒ„ ๊ฐ„ ๋ฐ์ดํ„ฐ ๊ตํ™˜์ด ํ•„์š”ํ•  ๋•Œ ์ฃผ๋กœ ์‚ฌ์šฉํ•˜๋ฉฐ ์ง์ ‘ ํ†ต์‹ ์ด ์•„๋‹Œ MQ๋ฅผ ๊ฑฐ์ณ ํ†ต์‹ ํ•จ์œผ๋กœ์จ ์„œ๋น„์Šค ๊ฐ„ ๊ฒฐํ•ฉ๋„๋ฅผ ๋‚ฎ์ถ”๊ณ  ์‹ ๋ขฐ์„ฑ ์žˆ๋Š” ํ†ต์‹ ์„ ํ•˜๊ณ ์ž ํ•  ๋•Œ ์ฃผ๋กœ ์‚ฌ์šฉํ•œ๋‹ค. 

kafka์— ๋น„ํ•ด ๋น„๊ต์  ์ ์šฉ์ด ์‰ฌ์šด ํŽธ์ด๋ฉฐ ํšŒ์‚ฌ์—์„œ๋„ ๋Œ€๊ทœ๋ชจ์˜ ์ด๋ฒคํŠธ ์ฒ˜๋ฆฌ๋ฅผ ํ•ด์•ผํ•˜๋Š” ๊ตฌ์กฐ๊ฐ€ ์•„๋‹ˆ์–ด์„œ rabbitMQ๋ฅผ ์‚ฌ์šฉ์ค‘์ด๋‹ค.

 

AMQP์˜ ๊ตฌ์„ฑ ์š”์†Œ

  • Exchange : Publisher๋กœ๋ถ€ํ„ฐ ์ˆ˜์‹ ํ•œ ๋ฉ”์‹œ์ง€๋ฅผ ํ์— ๋ถ„๋ฐฐํ•˜๋Š” ๋ผ์šฐํ„ฐ ์—ญํ•  (์‰ฝ๊ฒŒ ๋งํ•˜๋ฉด ๋ฐฐ๋‹ฌ์›)
  • Queue : ๋ฉ”์‹œ์ง€๋ฅผ ๋ฉ”๋ชจ๋ฆฌ๋‚˜ ๋””์Šคํฌ์— ์ €์žฅํ–ˆ๋‹ค๊ฐ€ ์ปจ์Šˆ๋จธ์—๊ฒŒ ๋ฉ”์‹œ์ง€๋ฅผ ์ „๋‹ฌํ•˜๋Š” ์—ญํ• 
  • Binding : Exchange์™€ Queue์˜ ๊ด€๊ณ„๋ฅผ ์ •์˜

 

๊ตฌํ˜„์ฒด์ธ RabbitMQ๋„ ๋‹น์—ฐํžˆ ์œ„์˜ ๊ตฌ์„ฑ์š”์†Œ๋กœ ์ด๋ฃจ์–ด์ ธ์žˆ๋‹ค. Exchange ์ข…๋ฅ˜์™€ ํ ๋ฐ”์ธ๋”ฉ ๋ฐฉ์‹์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์ž.

 

Exchange Type

1) Direct Exchange (1:1)

- Exchange ์— ๋ฐ”์ธ๋”ฉ๋œ ํ ์ค‘์—์„œ ๋ณด๋‚ด๋Š” ๋ฉ”์‹œ์ง€์˜ routing key ์™€ ๋งคํ•‘๋˜์–ด์žˆ๋Š” Queue๋กœ ๋ฉ”์‹œ์ง€๋ฅผ ์ „๋‹ฌํ•œ๋‹ค.

- ํŠน์ • ๋ฉ”์‹œ์ง€๊ฐ€ ํŠน์ • ํ์—๋งŒ ๋“ค์–ด๊ฐ€๊ธธ ์›ํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค. 

 

2) Fanout Exchange (1:N)

- ๋ผ์šฐํŒ… ํ‚ค๋ฅผ ๋ฌด์‹œํ•˜๊ณ  Exchange์— ๋ฐ”์ธ๋”ฉ ๋œ ๋ชจ๋“  Queue ์— ๋ฉ”์‹œ์ง€๋ฅผ ์ „๋‹ฌํ•œ๋‹ค.

- ํ˜„์žฌ๋Š” ํ•ด๋‹น ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•ด ํŠน์ • ์ด๋ฒคํŠธ๋ฅผ ๊ตฌ๋…ํ•œ ์„œ๋ฒ„๋ผ๋ฉด ๋ฐ”์ธ๋”ฉ ํ๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ์„œ๋กœ ๋‹ค๋ฅธ ์„œ๋ฒ„๋“ค์ด ๊ฐ™์€ ๋ฉ”์‹œ์ง€๋ฅผ ์†Œ๋น„ํ•˜๊ณ  ์žˆ๋‹ค.

 

3) Topic Exchange (1:N)

- Exchange์— ๋ฐ”์ธ๋”ฉ ๋œ Queue ์ค‘์—์„œ ๋ฉ”์‹œ์ง€์˜ routing key pattern์— ๋งž๋Š” Queue์—๊ฒŒ ๋ชจ๋‘ ๋ฉ”์‹œ์ง€๋ฅผ ์ „๋‹ฌํ•œ๋‹ค.

- Direct Exchange ์™€ ๋น„์Šทํ•ด๋ณด์ด์ง€๋งŒ ์ •ํ™•ํ•œ routing key๊ฐ€ ์•„๋‹ˆ์–ด๋„ ํŒจํ„ด์— ๋งž๋Š” routing key๋ฅผ ๊ฐ€์ง„ Queue๋ผ๋ฉด ๋ชจ๋‘ ์ „๋‹ฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ข€ ๋” ์œ ์—ฐํ•˜๋‹ค.

 

4) Headers Exchange 

- key-value๋กœ ์ •์˜๋œ ํ—ค๋”๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๋ฉ”์„ธ์ง€๋ฅผ ๋งค์นญ๋˜๋Š” queue์— ์ „๋‹ฌํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค.

 

 

Model 

rabbitMQ์˜ ์‚ฌ์šฉ๊ฐ€๋Šฅํ•œ ๋ชจ๋ธ ์ข…๋ฅ˜์ด๋‹ค. 

 

1. work Queues

- ์ œ์ผ ๊ฐ„๋‹จํ•œ ๋ฐฉ์‹.

- ํ•˜๋‚˜์˜ ํ๋ฅผ ๋งŒ๋“ค๊ณ  ๋ฉ”์‹œ์ง€๋ฅผ ๋ณด๋‚ด๋Š” publisher์™€ ๊ทธ ๋ฉ”์‹œ์ง€๋ฅผ ์†Œ๋น„ํ•˜๋Š” consumer๋ฅผ ์ „๋ถ€ ๊ฐ€์ ธ๋‹ค ๋ถ™์ธ๋‹ค.

- exchange์™€ ๋ผ์šฐํŒ… ํ‚ค๋Š” ์‹ ๊ฒฝ ์“ธ ํ•„์š”๊ฐ€ ์—†๋‹ค.

- round-robin ๋ฐฉ์‹์œผ๋กœ ๋ฉ”์„ธ์ง€๋“ค์„ ์•Œ์•„์„œ ๋ถ„์‚ฐ ์ฒ˜๋ฆฌํ•œ๋‹ค. (์ฆ‰ ํ•˜๋‚˜์˜ ๋ฉ”์‹œ์ง€๋Š” ํ•˜๋‚˜์˜ ์†Œ๋น„์ž๋งŒ ๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค.)

 

2. pub/sub

- ์ฃผ๋กœ fanout ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜๋ฉฐ, publisher๊ฐ€ ์–ด๋–ค ๋ฉ”์‹œ์ง€๋ฅผ exchange๋กœ ๋ณด๋‚ด๋ฉด binding ๋œ ๋ชจ๋“  ํ๋กœ ๋ฉ”์‹œ์ง€๋ฅผ ๋ณด๋‚ด์ฃผ๋Š” ๋ฐฉ์‹์ด๋‹ค.

- publisher๋Š” ๊ทธ์ € ์ด๋ฒคํŠธ๋ฅผ ๋ฐœํ–‰ํ•˜๋ฉฐ ๋ชฉ์ ์ง€๋ฅผ ์•Œ ํ•„์š”๊ฐ€ ์—†๋‹ค.

- ํ•˜๋‚˜์˜ ์ด๋ฒคํŠธ๋ฅผ ์—ฌ๋Ÿฌ๊ฐœ์˜ ์„œ๋น„์Šค๊ฐ€ ํ•จ๊ป˜ ๊ตฌ๋…ํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋ฉด ์œ ์šฉํ•˜๋‹ค.

 

 

3. Routing

- direct exchange type์„ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ์‹์ด๋ฉฐ ๋ฉ”์‹œ์ง€๋ฅผ ์„ ํƒ์ ์œผ๋กœ ๋ฐ›๊ณ ์ž ํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค. 

- routingKey์— ๋”ฐ๋ผ ํŠน์ • ๋ฉ”์‹œ์ง€๋Š” ํŠน์ • ํ์—๋งŒ ๋“ค์–ด๊ฐ”์œผ๋ฉด ํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค. 

 

 

4. Topics

- topic exchange type์„ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ์‹์ด๋ฉฐ routingKey ํŒจํ„ด์— ๋”ฐ๋ผ ํŠน์ • ํ์— ๋“ค์–ด๊ฐ„๋‹ค.

 

 

๊ทธ ์™ธ์— ๋‹ค๋ฅธ ๋ชจ๋ธ๋„ ์•„๋ž˜ ๊ณต์‹ ๋ฌธ์„œ์—์„œ ํ™•์ธ ๊ฐ€๋Šฅํ•˜๋‹ค.

https://www.rabbitmq.com/getstarted.html

 

 

์‹ ๋ขฐ์„ฑ(Reliability)๊ณผ ๋‚ด๊ตฌ์„ฑ(Durability)

rabbitMQ์—์„œ ๋ฉ”์‹œ์ง€๋ฅผ ์œ ์‹ค์„ ๋ง‰๊ธฐ ์œ„ํ•œ ๋ฐฉ๋ฒ•์—๋Š” ๋ญ๊ฐ€ ์žˆ์„๊นŒ?

 

1) Subscriber๊ฐ€ ๋ฉ”์‹œ์ง€๋ฅผ ์ •์ƒ์ ์œผ๋กœ ๋ฐ›์•˜์ง€๋งŒ ์ฒ˜๋ฆฌ ์ค‘ ๋น„์ •์ƒ์ ์œผ๋กœ Subscriber ์„œ๋ฒ„๊ฐ€ ์ข…๋ฃŒ๋œ ๊ฒฝ์šฐ

- rabbitMQ๋Š” ์ž์ฒด์ ์œผ๋กœ ACK, NACK ์ฒ˜๋ฆฌ๋ฅผ ๋ฐ›๊ธฐ ์ „๊นŒ์ง€๋Š” ํ์—์„œ ๋ฉ”์‹œ์ง€๋ฅผ ์ง€์šฐ์ง€ ์•Š๋Š”๋‹ค.

- ์ฆ‰, ์„œ๋ฒ„๊ฐ€ ์žฌ์‹œ์ž‘๋˜๋ฉด์„œ ๋‹ค์‹œ ํ๋กœ๋ถ€ํ„ฐ ๋ฉ”์‹œ์ง€๋ฅผ ์†Œ๋น„ํ•ด ์žฌ์ฒ˜๋ฆฌํ•˜๊ฒŒ ๋œ๋‹ค. (๋ฉฑ๋“ฑ์„ฑ์žˆ๋Š” ์†Œ๋น„ ๋กœ์ง์„ ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•œ ์ด์œ ๋‹ค)

 

2) RabbitMQ ๋ธŒ๋กœ์ปค ์„œ๋ฒ„ ์ž์ฒด๊ฐ€ ์ปจ์Šˆ๋จธ์˜ ๋ฉ”์‹œ์ง€ ์ฒ˜๋ฆฌ๋ฅผ ๊ธฐ๋‹ค๋ฆฌ๋˜ ์ค‘ ๋น„์ •์ƒ ์ข…๋ฃŒ๋œ ๊ฒฝ์šฐ

- Queue ์œ ์ง€ํ•˜๊ธฐ : ๋ฐ”์ธ๋”ฉ ๋œ ํ๋ฅผ ๊ณ„์†ํ•ด์„œ ๊ธฐ์–ตํ•  ์ˆ˜ ์žˆ๋„๋ก ํ ์„ ์–ธ์‹œ durable = true ์„ค์ •์„ ํ†ตํ•ด ์œ ์ง€ํ•  ์ˆ˜ ์žˆ๋‹ค. (๊ธฐ๋ณธ์ ์œผ๋กœ ๋ธŒ๋กœ์ปค๊ฐ€ ์ข…๋ฃŒ๋˜๋ฉด ์žฌ์‹œ์ž‘์‹œ ํ๊ฐ€ ์‚ฌ๋ผ์ ธ์žˆ์„ ๊ฒƒ์ด๋‹ค)

- Queue ์•ˆ์˜ ๋ฉ”์‹œ์ง€ ์œ ์ง€ํ•˜๊ธฐ : ๋ฐœํ–‰๋œ ๋ฉ”์‹œ์ง€๋„ ์ง€์†์„ฑ์„ ์œ ์ง€ํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด publisher๊ฐ€ publish ํ•  ๋•Œ์˜ persistent ์†์„ฑ์„ ๋ถ€์—ฌํ•ด์•ผ ํ•œ๋‹ค. ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ACK๋ฅผ ๋ฐ›์ง€ ๋ชปํ•œ ๊ฒฝ์šฐ์ด๊ธฐ ๋•Œ๋ฌธ์— ํ์—์„œ ๋ฉ”์‹œ์ง€๋ฅผ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ๋‹ค. persistent ์†์„ฑ์€ deliveryMode๋ฅผ 2 (persist to disk)๋กœ ์„ค์ •ํ•ด์ฃผ๋ฉด ๋œ๋‹ค.

 

์ž์„ธํ•œ ์„ค์ •์€ ์•„๋ž˜ ๋งํฌ ์ฐธ๊ณ 

https://teragoon.wordpress.com/2012/01/26/message-durability

 

์Šค์ผ€์ผ ์•„์›ƒ

์–ด๋–ค ์ด๋ฒคํŠธ๋ฅผ ์†Œ๋น„ํ•˜๋Š” ํ•˜๋‚˜์˜ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค์— ๋Œ€ํ•ด ์Šค์ผ€์ผ์•„์›ƒ์„ ํ•˜๊ฒŒ ๋˜์–ด ์„œ๋ฒ„๊ฐ€ ์—ฌ๋Ÿฌ๋Œ€๊ฐ€ ๋œ๋‹ค๋ฉด ์–ด๋–ป๊ฒŒ ์ด๋ฒคํŠธ๋ฅผ ์ค‘๋ณต์—†์ด ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์„๊นŒ?

ํŠน์ • ์ด๋ฒคํŠธ์— ๋ฐ”์ธ๋”ฉ๋œ ํ๋Š” ์„œ๋ฒ„๋ณ„๋กœ ํ•˜๋‚˜๋งŒ ์ƒ๊ฒจ์•ผ ํ•˜๋ฉฐ ๋ ˆํ”Œ๋ฆฌ์นด ์ค‘ ํ•˜๋‚˜์˜ ์„œ๋ฒ„๋งŒ ํ•ด๋‹น ์ด๋ฒคํŠธ๋ฅผ ๊ฐ€์ ธ๊ฐ€ ์ฒ˜๋ฆฌํ•ด์•ผ ํ•œ๋‹ค.

์„œ๋ฒ„๊ฐ€ ๋Š˜์–ด๋‚  ๋•Œ๋งˆ๋‹ค ํ๊ฐ€ ์ถ”๊ฐ€๋˜๋ฉด ๊ฐ™์€ ์ด๋ฒคํŠธ์— ๋Œ€ํ•ด ๊ฐ ์„œ๋น„์Šค๋“ค์ด ์ค‘๋ณต์œผ๋กœ ์ด๋ฒคํŠธ๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ฒŒ ๋  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

์ด๋Ÿด ๊ฒฝ์šฐ๋ฅผ ๋Œ€๋น„ํ•ด ๊ฐ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๋‹น ํ์˜ ์ด๋ฆ„์€ ๋˜‘๊ฐ™์ด ๋งŒ๋“ค์–ด์ง€๋„๋ก ๊ตฌ์„ฑํ•ด์•ผ ํ•œ๋‹ค.

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

 

 

์ˆœ์„œ ๋ณด์žฅ๊ณผ ๋™์‹œ ์ฒ˜๋ฆฌ (prefetch)

๋ฉ”์‹œ์ง€ ํ์˜ ํŠน์„ฑ ์ƒ ์„ ์ž…์„ ์ถœ ๋ฐฉ์‹์ด๋‹ค. ํ์— ๋“ค์–ด์˜จ ์ˆœ์„œ๋Œ€๋กœ ์ปจ์Šˆ๋จธ๊ฐ€ ์†Œ๋น„ํ•œ๋‹ค. 

์ฆ‰, ๋ฐ”์ธ๋”ฉ ํ์— ๋Œ€ํ•œ ์ปจ์Šˆ๋จธ๊ฐ€ ํ•˜๋‚˜๋ผ๋ฉด, ๋ฉ”์‹œ์ง€ ์ˆœ์„œ๋ฅผ ๋ณด์žฅํ•œ๋‹ค.

์ปจ์Šˆ๋จธ๊ฐ€ ์—ฌ๋Ÿฟ์ด๋ผ๋ฉด ๋ฉ”์‹œ์ง€ ์ˆœ์„œ๊ฐ€ ๋ณด์žฅ๋˜์ง€ ์•Š๋Š”๋‹ค. ๋ผ์šด๋“œ ๋กœ๋นˆ ๋ฐฉ์‹์œผ๋กœ ํ•˜๋‚˜์”ฉ ์ปจ์Šˆ๋จธ์—๊ฒŒ ๋ฒˆ๊ฐˆ์•„ ๊ฐ€๋ฉฐ ๋ณด๋‚ธ๋‹ค.

 

rabbitMQ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ํ๋กœ๋ถ€ํ„ฐ ๋ฉ”์‹œ์ง€๋ฅผ ๋™์‹œ์— ์ „๋ถ€ ๊ฐ€์ ธ์™€ ์ฒ˜๋ฆฌํ•œ๋‹ค. ์ฆ‰, ํ์— ์ด๋ฒคํŠธ๊ฐ€ ๋งŽ์ด ์Œ“์—ฌ์žˆ์„ ์ˆ˜๋ก ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰์ด ์ฆ๊ฐ€ํ•ด ์„œ๋น„์Šค ์„ฑ๋Šฅ์ด ์ €ํ•˜๋  ์ˆ˜ ์žˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ด๋ฒคํŠธ๋ฅผ ๋Œ€์šฉ๋Ÿ‰์œผ๋กœ ๋ฐ›์•„์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ prefetch count ์„ค์ •์„ ํ†ตํ•ด ๋™์‹œ์— ์ฒ˜๋ฆฌํ•  ๋ฉ”์‹œ์ง€ ๊ฐœ์ˆ˜๋ฅผ ์ •ํ•ด์ค„ ์ˆ˜ ์žˆ๋‹ค. ๋‹จ, prefetch count๋ฅผ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ ๋ฐ˜๋“œ์‹œ ACK, NACK ์ฒ˜๋ฆฌ๋ฅผ ํ™•์‹คํžˆ ํ•ด์ฃผ์–ด์•ผ ํ•œ๋‹ค. 

ํ˜น์‹œ๋ผ๋„ prefetch ๋ฅผ 1๋กœ ์„ค์ •ํ•œ ํ›„ ๊ฐ€์ ธ์˜จ ์ด๋ฒคํŠธ์— ๋Œ€ํ•ด ACK,NACK ์ฒ˜๋ฆฌ๋ฅผ ํ•ด์ฃผ์ง€ ์•Š์„ ๊ฒฝ์šฐ ํ์— ๋‚จ์•„์žˆ๋Š” ๋ฉ”์‹œ์ง€๋“ค์€ ๊ณ„์†ํ•ด์„œ ready ์ƒํƒœ๋กœ ๋Œ€๊ธฐ์— ๋น ์ง€๊ฒŒ ๋˜๋ฉฐ ์†Œ๋น„์ค‘์ธ ์ด๋ฒคํŠธ๋Š” unacked ์ƒํƒœ๋กœ ํ์— ๊ณ„์† ๋‚จ์•„์žˆ๊ฒŒ ๋œ๋‹ค. ์ฆ‰ 1๊ฐœ๋Š” unacked, ๋‚˜๋จธ์ง€๋Š” ready ์ƒํƒœ๋กœ ๋ฉ”์‹œ์ง€ํ๋Š” ์–ด๋–ค ์ž‘์—… ์ง„ํ–‰๋„ ํ•  ์ˆ˜ ์—†๋‹ค.

 

+) prefetch ๊ฐ’์€ ์–ด๋–ป๊ฒŒ ์„ค์ •ํ•˜๋Š”๊ฒŒ ์ข‹์„๊นŒ?

- ์ฒ˜๋ฆฌ ์‹œ๊ฐ„์ด ๋งค์šฐ ๋Š๋ฆด ๊ฒฝ์šฐ, prefetch ๊ฐ’์„ ์ž‘๊ฒŒ ๊ฐ€์ ธ๊ฐ€๋Š” ๊ฒƒ์ด ์ข‹๋‹ค. (ex: 1) ๋ฏธ๋ฆฌ ์ปจ์Šˆ๋จธ๊ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์„ ์ด์œ ๊ฐ€ ์—†๋‹ค.

- ํ•ด๋‹น ์ด๋ฒคํŠธ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ์ปจ์Šˆ๋จธ์˜ ๊ฐœ์ˆ˜๋ฅผ ๊ณ ๋ คํ•œ๋‹ค. ๋ณดํ†ต ๋ณด๋‚ด๋Š” ๋ฉ”์‹œ์ง€ ์–‘/์ปจ์Šˆ๋จธ ๊ฐœ์ˆ˜ ๋งŒํผ ์„ค์ •ํ•˜์—ฌ ์œ ํœด ์ƒํƒœ๋ฅผ ๊ฐ€์ง€๋Š” consumer๊ฐ€ ์—†๋„๋ก ํ•œ๋‹ค.

- ํด๋ผ์ด์–ธํŠธ ์ฒ˜๋ฆฌ ์‹œ๊ฐ„ ๋Œ€๋น„ ๋„ˆ๋ฌด ๊ฐ’์ด ์ ์„ ๊ฒฝ์šฐ์—๋„ conumer์˜ ์œ ํœด ์ƒํƒœ๊ฐ€ ๊ธธ์–ด์ง€๊ณ  ๋„ˆ๋ฌด ๋†’์•„๋„ ํ•˜๋‚˜์˜ consumer๊ฐ€ ์ „๋ถ€ ๊ฐ€์ ธ๊ฐ€๊ณ  ๋‚˜๋จธ์ง€ consumer๊ฐ€ ์œ ํœด ์ƒํƒœ๋กœ ์œ ์ง€๋  ์ˆ˜ ์žˆ์–ด ์ ์ • ๊ฐ’ ์„ค์ •์ด ์ค‘์š”ํ•˜๋‹ค.

 

 

ํŠธ๋Ÿฌ๋ธ” ์ŠˆํŒ…

rabbitMQ ํƒ€์ž„์•„์›ƒ ๋ฐœ์ƒ

- ๋ฐ์ดํ„ฐ๋ฅผ ๋””์Šคํฌ์— ์ €์žฅ ๋„์ค‘ ๊ฐ•์ œ ์ข…๋ฃŒ๋˜์–ด ๋ฐ์ดํ„ฐ๊ฐ€ ๊ผฌ์ธ ๊ฒฝ์šฐ ์•„๋ž˜์™€ ๊ฐ™์€ ์—๋Ÿฌ ๋ฐœ์ƒ

- ํด๋ผ์šฐ๋“œ ์—”์ง€๋‹ˆ์–ด ๋ถ„์ด ๋„์™€์ฃผ์…จ๋‹ค!

๋กœ๊ทธ:  command time out:  '/usr/bin/df -kP ..' 

ํ•ด๊ฒฐ ๋ฐฉ๋ฒ• : 

1. rebuilding ํ•˜๋Š” ๋„์ค‘ ํƒ€์ž„์•„์›ƒ์ด ๋‚˜์ง€ ์•Š๋„๋ก rabbitMQ ์ตœ์‹  ๋ฒ„์ „ ์—…๋ฐ์ดํŠธ (๊ณ ์ณ์กŒ๋‹ค๊ณ  ํ•œ๋‹ค.)

2. rebuilding ๋˜๋Š” ๋™์•ˆ ํŒŒ๋“œ๊ฐ€ ์ฃฝ์ง€ ์•Š๋„๋ก livenessprobe ๊บผ๋‘๊ธฐ

3. rebuilding ์™„๋ฃŒ๋  ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ฆฐ๋‹ค. (๊ฐ•์ œ ์ข…๋ฃŒํ•˜์ง€ ์•Š๊ณ !)

+) ๋‹ค๋ฅธ ๋Œ€์•ˆ: ๋ฐ์ดํ„ฐ๋ฅผ ์ดˆ๊ธฐํ™”ํ•˜๋ฉด ํ•ด๊ฒฐ๋˜๊ธด ํ•œ๋‹ค.