RabbitMQ๋ฅผ Kubernetes๋กœ ์›ํ™œํ•˜๊ฒŒ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜

RabbitMQ๋ฅผ Kubernetes๋กœ ์›ํ™œํ•˜๊ฒŒ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜

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

์ตœ์†Œํ•œ ๋‘ ๊ฐ€์ง€ ๊ฒฝ์šฐ์— ์ด ์ž‘์—…์ด ํ•„์š”ํ–ˆ์Šต๋‹ˆ๋‹ค.

  1. Kubernetes์— ์—†๋Š” RabbitMQ ํด๋Ÿฌ์Šคํ„ฐ์—์„œ ์ด๋ฏธ "kubernetized"(์ฆ‰, K8s ํฌ๋“œ์—์„œ ์ž‘๋™ ์ค‘์ธ) ์ƒˆ ํด๋Ÿฌ์Šคํ„ฐ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•ฉ๋‹ˆ๋‹ค.
  2. Kubernetes ๋‚ด์˜ RabbitMQ๋ฅผ ํ•œ ๋„ค์ž„์ŠคํŽ˜์ด์Šค์—์„œ ๋‹ค๋ฅธ ๋„ค์ž„์ŠคํŽ˜์ด์Šค๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ํ•ฉ๋‹ˆ๋‹ค(์˜ˆ๋ฅผ ๋“ค์–ด ํšŒ๋กœ๊ฐ€ ๋„ค์ž„์ŠคํŽ˜์ด์Šค๋กœ ๊ตฌ๋ถ„๋œ ๊ฒฝ์šฐ ํ•œ ํšŒ๋กœ์—์„œ ๋‹ค๋ฅธ ํšŒ๋กœ๋กœ ์ธํ”„๋ผ๋ฅผ ์ „์†กํ•˜๋Š” ๊ฒฝ์šฐ).

๊ธฐ์‚ฌ์—์„œ ์ œ์•ˆ๋œ ๋ ˆ์‹œํ”ผ๋Š” ์ด๋ฏธ K3s ๋˜๋Š” ์ผ๋ถ€ ์˜ค๋ž˜๋œ ์„œ๋ฒ„์— ์œ„์น˜ํ•œ ์˜ค๋ž˜๋œ RabbitMQ ํด๋Ÿฌ์Šคํ„ฐ(์˜ˆ: 8๊ฐœ ๋…ธ๋“œ)๊ฐ€ ์žˆ๋Š” ์ƒํ™ฉ(๊ทธ๋Ÿฌ๋‚˜ ์ด์— ๊ตญํ•œ๋˜์ง€๋Š” ์•Š์Œ)์— ์ดˆ์ ์„ ๋งž์ถ”๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. Kubernetes(์ด๋ฏธ ์กด์žฌํ•˜๊ฑฐ๋‚˜ ํ–ฅํ›„์— ์žˆ์„)์—์„œ ํ˜ธ์ŠคํŒ…๋˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

RabbitMQ๋ฅผ Kubernetes๋กœ ์›ํ™œํ•˜๊ฒŒ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜

...๊ทธ๋ฆฌ๊ณ  ์šฐ๋ฆฌ๋Š” ์ด๋ฅผ Kubernetes์˜ ์ƒˆ๋กœ์šด ํ”„๋กœ๋•์…˜์œผ๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ํ•˜๋Š” ์ž‘์—…์— ์ง๋ฉดํ–ˆ์Šต๋‹ˆ๋‹ค.

๋จผ์ €, ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ์ž์ฒด์— ๋Œ€ํ•œ ์ผ๋ฐ˜์ ์ธ ์ ‘๊ทผ ๋ฐฉ์‹์„ ์„ค๋ช…ํ•œ ๋‹ค์Œ ๊ตฌํ˜„์— ๋Œ€ํ•œ ๊ธฐ์ˆ ์  ์„ธ๋ถ€ ์‚ฌํ•ญ์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜

์–ด๋–ค ์กฐ์น˜๋ฅผ ์ทจํ•˜๊ธฐ ์ „ ์ฒซ ๋ฒˆ์งธ ์˜ˆ๋น„ ๋‹จ๊ณ„๋Š” ์ด์ „ RabbitMQ ์„ค์น˜์—์„œ ๊ณ ๊ฐ€์šฉ์„ฑ ๋ชจ๋“œ๊ฐ€ ํ™œ์„ฑํ™”๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค(HA). ๊ทธ ์ด์œ ๋Š” ๋ถ„๋ช…ํ•ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์–ด๋–ค ๋ฐ์ดํ„ฐ๋„ ์žƒ๊ณ  ์‹ถ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด ํ™•์ธ์„ ์ˆ˜ํ–‰ํ•˜๋ ค๋ฉด RabbitMQ ๊ด€๋ฆฌ ํŒจ๋„๋กœ ์ด๋™ํ•˜์—ฌ ๊ด€๋ฆฌ โ†’ ์ •์ฑ… ํƒญ์—์„œ ๊ฐ’์ด ์„ค์ •๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์ธํ•˜์„ธ์š”. ha-mode: all:

RabbitMQ๋ฅผ Kubernetes๋กœ ์›ํ™œํ•˜๊ฒŒ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜

๋‹ค์Œ ๋‹จ๊ณ„๋Š” Kubernetes ํฌ๋“œ์—์„œ ์ƒˆ RabbitMQ ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค(์˜ˆ๋ฅผ ๋“ค์–ด, 3๊ฐœ์˜ ๋…ธ๋“œ๋กœ ๊ตฌ์„ฑ๋˜์ง€๋งŒ ๊ฐœ์ˆ˜๋Š” ๋‹ค๋ฅผ ์ˆ˜ ์žˆ์Œ).

๊ทธ๋Ÿฐ ๋‹ค์Œ ์ด์ „ RabbitMQ ํด๋Ÿฌ์Šคํ„ฐ์™€ ์ƒˆ RabbitMQ ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ๋ณ‘ํ•ฉํ•˜์—ฌ ๋‹จ์ผ ํด๋Ÿฌ์Šคํ„ฐ(6๊ฐœ ๋…ธ๋“œ)๋ฅผ ์–ป์Šต๋‹ˆ๋‹ค.

RabbitMQ๋ฅผ Kubernetes๋กœ ์›ํ™œํ•˜๊ฒŒ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜

์ด์ „ RabbitMQ ํด๋Ÿฌ์Šคํ„ฐ์™€ ์ƒˆ RabbitMQ ํด๋Ÿฌ์Šคํ„ฐ ๊ฐ„์˜ ๋ฐ์ดํ„ฐ ๋™๊ธฐํ™” ํ”„๋กœ์„ธ์Šค๊ฐ€ ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค. ํด๋Ÿฌ์Šคํ„ฐ์˜ ๋ชจ๋“  ๋…ธ๋“œ ๊ฐ„์— ๋ชจ๋“  ๋ฐ์ดํ„ฐ๊ฐ€ ๋™๊ธฐํ™”๋˜๋ฉด ์ƒˆ ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ „ํ™˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

RabbitMQ๋ฅผ Kubernetes๋กœ ์›ํ™œํ•˜๊ฒŒ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜

์ด๋Ÿฌํ•œ ์ž‘์—… ํ›„์— RabbitMQ ํด๋Ÿฌ์Šคํ„ฐ์—์„œ ์ด์ „ ๋…ธ๋“œ๋ฅผ ์ œ๊ฑฐํ•˜๋ฉด ์ถฉ๋ถ„ํ•˜๋ฉฐ ์ด๋™์ด ์™„๋ฃŒ๋œ ๊ฒƒ์œผ๋กœ ๊ฐ„์ฃผ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

RabbitMQ๋ฅผ Kubernetes๋กœ ์›ํ™œํ•˜๊ฒŒ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜

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

์‹ค์ œ๋กœ ํ•ด๋ณด์ž

์š”๊ตฌ ์‚ฌํ•ญ

์„ธ๋ถ€ ์‚ฌํ•ญ์€ ๋งค์šฐ ๊ฐ„๋‹จํ•ฉ๋‹ˆ๋‹ค.

  1. Kubernetes ํด๋Ÿฌ์Šคํ„ฐ(minikube๋„ ์ž‘๋™ํ•จ)
  2. RabbitMQ ํด๋Ÿฌ์Šคํ„ฐ(๋ฒ ์–ด๋ฉ”ํƒˆ์— ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ๊ณต์‹ Helm ์ฐจํŠธ์—์„œ Kubernetes์˜ ์ผ๋ฐ˜ ํด๋Ÿฌ์Šคํ„ฐ์ฒ˜๋Ÿผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Œ)

์•„๋ž˜ ์˜ˆ์—์„œ๋Š” RMQ๋ฅผ Kubernetes์— ๋ฐฐํฌํ•˜๊ณ  ์ด๋ฅผ ํ˜ธ์ถœํ–ˆ์Šต๋‹ˆ๋‹ค. rmq-old.

์Šคํƒ ๋“œ ์ค€๋น„

1. Helm ์ฐจํŠธ๋ฅผ ๋‹ค์šด๋กœ๋“œํ•˜๊ณ  ์•ฝ๊ฐ„ ํŽธ์ง‘ํ•ฉ๋‹ˆ๋‹ค.

helm fetch --untar stable/rabbitmq-ha

ํŽธ์˜์ƒ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์„ค์ •ํ•ด ๋†“์•˜์Šต๋‹ˆ๋‹ค. ErlangCookie ๊ทธ๋ฆฌ๊ณ  ์ •์น˜๋ฅผ ํ•ด๋ผ ha-all๊ธฐ๋ณธ์ ์œผ๋กœ ๋Œ€๊ธฐ์—ด์€ RMQ ํด๋Ÿฌ์Šคํ„ฐ์˜ ๋ชจ๋“  ๋…ธ๋“œ ๊ฐ„์— ๋™๊ธฐํ™”๋ฉ๋‹ˆ๋‹ค.

rabbitmqPassword: guest
rabbitmqErlangCookie: mae9joopaol7aiVu3eechei2waiGa2we
definitions:
policies: |-
  {
    "name": "ha-all",
    "pattern": ".*",
    "vhost": "/",
    "definition": {
      "ha-mode": "all",
      "ha-sync-mode": "automatic",
      "ha-sync-batch-size": 81920
    }
  }

2. ์ฐจํŠธ๋ฅผ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.

helm install . --name rmq-old --namespace rmq-old

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

RabbitMQ๋ฅผ Kubernetes๋กœ ์›ํ™œํ•˜๊ฒŒ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜

ํ…Œ์ŠคํŠธ ๋ฒค์น˜๊ฐ€ ์ค€๋น„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ „์†กํ•ด์•ผ ํ•  ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ๋Š” "์ด์ „" RabbitMQ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

RabbitMQ ํด๋Ÿฌ์Šคํ„ฐ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜

1. ๋จผ์ € ์ƒˆ๋กœ์šด RabbitMQ๋ฅผ ๋ฐฐํฌํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ะดั€ัƒะณะพะผ ๋„ค์ž„์ŠคํŽ˜์ด์Šค ๊ฐ™์€ ErlangCookie ๋ฐ ์‚ฌ์šฉ์ž์˜ ๋น„๋ฐ€๋ฒˆํ˜ธ. ์ด๋ฅผ ์œ„ํ•ด ์œ„์—์„œ ์„ค๋ช…ํ•œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๊ณ  RMQ ์„ค์น˜๋ฅผ ์œ„ํ•œ ์ตœ์ข… ๋ช…๋ น์„ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค.

helm install . --name rmq-new --namespace rmq-new

2. ์ด์ œ ์ƒˆ ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ์ด์ „ ํด๋Ÿฌ์Šคํ„ฐ์™€ ๋ณ‘ํ•ฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ ค๋ฉด ๊ฐ ํฌ๋“œ๋กœ ์ด๋™ํ•˜์„ธ์š”. ์ƒˆ๋กœ์šด RabbitMQ๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ๋‹ค์Œ ๋ช…๋ น์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

export OLD_RMQ=rabbit@rmq-old-rabbitmq-ha-0.rmq-old-rabbitmq-ha-discovery.rmq-old.svc.cluster.local && 
  rabbitmqctl stop_app && 
  rabbitmqctl join_cluster $OLD_RMQ && 
  rabbitmqctl start_app

๋ณ€์ˆ˜์—์„œ OLD_RMQ ๋…ธ๋“œ ์ค‘ ํ•˜๋‚˜์˜ ์ฃผ์†Œ๋ฅผ ์ฐพ์•˜์Šต๋‹ˆ๋‹ค. ์˜ค๋ž˜๋œ RMQ ํด๋Ÿฌ์Šคํ„ฐ.

์ด ๋ช…๋ น์€ ํ˜„์žฌ ๋…ธ๋“œ๋ฅผ ์ค‘์ง€ํ•ฉ๋‹ˆ๋‹ค. ์ƒˆ๋กœ์šด RMQ ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ์ด์ „ ํด๋Ÿฌ์Šคํ„ฐ์— ์—ฐ๊ฒฐํ•˜๊ณ  ๋‹ค์‹œ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.

3. 6๊ฐœ ๋…ธ๋“œ์˜ RMQ ํด๋Ÿฌ์Šคํ„ฐ๊ฐ€ ์ค€๋น„๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

RabbitMQ๋ฅผ Kubernetes๋กœ ์›ํ™œํ•˜๊ฒŒ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜

๋ชจ๋“  ๋…ธ๋“œ ๊ฐ„์— ๋ฉ”์‹œ์ง€๊ฐ€ ๋™๊ธฐํ™”๋˜๋Š” ๋™์•ˆ ๊ธฐ๋‹ค๋ ค์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋ฉ”์‹œ์ง€ ๋™๊ธฐํ™” ์‹œ๊ฐ„์€ ํด๋Ÿฌ์Šคํ„ฐ๊ฐ€ ๋ฐฐํฌ๋œ ํ•˜๋“œ์›จ์–ด์˜ ์šฉ๋Ÿ‰๊ณผ ๋ฉ”์‹œ์ง€ ์ˆ˜์— ๋”ฐ๋ผ ๋‹ค๋ฅด๋‹ค๋Š” ๊ฒƒ์„ ์ถ”์ธกํ•˜๋Š” ๊ฒƒ์€ ์–ด๋ ต์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์„ค๋ช…๋œ ์‹œ๋‚˜๋ฆฌ์˜ค์—์„œ๋Š” ๊ทธ ์ค‘ 10๊ฐœ๋งŒ ์žˆ์œผ๋ฏ€๋กœ ๋ฐ์ดํ„ฐ๊ฐ€ ์ฆ‰์‹œ ๋™๊ธฐํ™”๋˜์—ˆ์ง€๋งŒ ๋ฉ”์‹œ์ง€ ์ˆ˜๊ฐ€ ์ถฉ๋ถ„ํžˆ ๋งŽ์œผ๋ฉด ๋™๊ธฐํ™”๊ฐ€ ๋ช‡ ์‹œ๊ฐ„ ๋™์•ˆ ์ง€์†๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ ๋™๊ธฐํ™” ์ƒํƒœ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

RabbitMQ๋ฅผ Kubernetes๋กœ ์›ํ™œํ•˜๊ฒŒ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜

์—ฌ๊ธฐ์— +5 ๋ฉ”์‹œ์ง€๊ฐ€ ์ด๋ฏธ ์žˆ์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ๋” ๋งŽ์€ 5๊ฐœ ๋…ธ๋“œ(ํ•„๋“œ์— ํ‘œ์‹œ๋œ ํ•ญ๋ชฉ ์ œ์™ธ) Node). ์ด๋ ‡๊ฒŒ ๋™๊ธฐํ™”๊ฐ€ ์„ฑ๊ณตํ–ˆ์Šต๋‹ˆ๋‹ค.

4. ๋‚จ์€ ๊ฒƒ์€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ RMQ ์ฃผ์†Œ๋ฅผ ์ƒˆ ํด๋Ÿฌ์Šคํ„ฐ๋กœ ์ „ํ™˜ํ•˜๋Š” ๊ฒƒ๋ฟ์ž…๋‹ˆ๋‹ค(์—ฌ๊ธฐ์„œ ๊ตฌ์ฒด์ ์ธ ์ž‘์—…์€ ์‚ฌ์šฉ ์ค‘์ธ ๊ธฐ์ˆ  ์Šคํƒ ๋ฐ ๊ธฐํƒ€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„ธ๋ถ€ ์‚ฌํ•ญ์— ๋”ฐ๋ผ ๋‹ค๋ฆ„). ๊ทธ ํ›„์—๋Š” ์ด์ „ ํด๋Ÿฌ์Šคํ„ฐ์— ์ž‘๋ณ„ ์ธ์‚ฌ๋ฅผ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋งˆ์ง€๋ง‰ ์ž‘์—…์˜ ๊ฒฝ์šฐ(์ฆ‰, ์ด๋ฏธ ํ›„ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ƒˆ ํด๋Ÿฌ์Šคํ„ฐ๋กœ ์ „ํ™˜) ๊ฐ ๋…ธ๋“œ๋กœ ์ด๋™ ์˜ค๋ž˜๋œ ํด๋Ÿฌ์Šคํ„ฐ๋งํ•˜๊ณ  ๋‹ค์Œ ๋ช…๋ น์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

rabbitmqctl stop_app
rabbitmqctl reset

ํด๋Ÿฌ์Šคํ„ฐ๊ฐ€ ์ด์ „ ๋…ธ๋“œ๋ฅผ "์žŠ์—ˆ์Šต๋‹ˆ๋‹ค". ์ด์ „ RMQ๋ฅผ ์‚ญ์ œํ•˜๋ฉด ์ด๋™์ด ์™„๋ฃŒ๋ฉ๋‹ˆ๋‹ค.

์ฃผ์˜: ์ธ์ฆ์„œ์™€ ํ•จ๊ป˜ RMQ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ๊ทผ๋ณธ์ ์œผ๋กœ ๋ณ€๊ฒฝ๋˜๋Š” ์‚ฌํ•ญ์€ ์—†์Šต๋‹ˆ๋‹ค. ์ด๋™ ํ”„๋กœ์„ธ์Šค๋Š” ์ •ํ™•ํžˆ ๋™์ผํ•˜๊ฒŒ ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค.

์กฐ์‚ฌ ๊ฒฐ๊ณผ

์„ค๋ช…๋œ ์ฒด๊ณ„๋Š” RabbitMQ๋ฅผ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ํ•˜๊ฑฐ๋‚˜ ๋‹จ์ˆœํžˆ ์ƒˆ ํด๋Ÿฌ์Šคํ„ฐ๋กœ ์ด๋™ํ•ด์•ผ ํ•˜๋Š” ๊ฑฐ์˜ ๋ชจ๋“  ๊ฒฝ์šฐ์— ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค.

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

RabbitMQ๋ฅผ ๊ตฌ์„ฑ์ด ๋ณ€๊ฒฝ๋œ ์ƒˆ ๋ฒ„์ „์œผ๋กœ ์—…๋ฐ์ดํŠธํ•  ๋•Œ ๋™์ผํ•œ ์ „๋žต์„ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ชจ๋“  ๊ฒƒ์ด ์‹œ๊ณ„์ฒ˜๋Ÿผ ์ž‘๋™ํ–ˆ์Šต๋‹ˆ๋‹ค.

PS

์ด ์ž๋ฃŒ์˜ ๋…ผ๋ฆฌ์  ์—ฐ์†์œผ๋กœ ์šฐ๋ฆฌ๋Š” MongoDB(ํ•˜๋“œ์›จ์–ด ์„œ๋ฒ„์—์„œ Kubernetes๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜) ๋ฐ MySQL(Kubernetes ๋‚ด๋ถ€์—์„œ ์ด DBMS๋ฅผ ์ค€๋น„ํ•˜๋Š” ๋ฐฉ๋ฒ•)์— ๋Œ€ํ•œ ๊ธฐ์‚ฌ๋ฅผ ์ค€๋น„ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋“ค์€ ์•ž์œผ๋กœ ๋ช‡ ๋‹ฌ ์•ˆ์— ์ถœํŒ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

PPS

๋ธ”๋กœ๊ทธ์—์„œ๋„ ์ฝ์–ด๋ณด์„ธ์š”.

์ถœ์ฒ˜ : habr.com

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€