728x90
반응형
RabbitMQ는 인프라 유지보수, 업그레이드 및 장애로부터 데이터베이스와 데이터를 보호하기 위해 복제, 장애 복구 및 고가용성 기능을 제공합니다.
배치에는 세 개의 노드가 있는 클러스터가 포함되어 있으며 사용자, 가상 호스트, 큐, 교환, 바인딩, 런타임 매개변수 및 기타 분산 상태가 세 개의 모든 노드에서 공유됩니다.
노드가 실패하면 노드가 삭제되거나 다시 시작된 후 해당 노드 또는 새 노드가 클러스터에 재동기화 됩니다 .
docker pull rabbitmq:management
docker network 생성
docker network create prod
3대의 RabbitMQ 컨테이너 실행
docker run -d --name rabbitmq_node1 -h rabbitmq_node1 -it --network prod -p "15672:15672" -p "5672:5672" -p "25672:25672" -p "35197:35197" -e RABBITMQ_DEFAULT_USER="admin" -e RABBITMQ_DEFAULT_PASS="admin" -e RABBITMQ_ERLANG_COOKIE="mycookie" rabbitmq:management
docker run -d --name rabbitmq_node2 -h rabbitmq_node2 -it --network prod -p "15673:15672" -p "5673:5672" -p "25673:25672" -p "35198:35197" -e RABBITMQ_DEFAULT_USER="admin" -e RABBITMQ_DEFAULT_PASS="admin" -e RABBITMQ_ERLANG_COOKIE="mycookie" rabbitmq:management
docker run -d --name rabbitmq_node3 -h rabbitmq_node3 -it --network prod -p "15674:15672" -p "5674:5672" -p "25674:25672" -p "35199:35197" -e RABBITMQ_DEFAULT_USER="admin" -e RABBITMQ_DEFAULT_PASS="admin" -e RABBITMQ_ERLANG_COOKIE="mycookie" rabbitmq:management
node2, node3 bash에 접속
$ docker exec -it {node2 or node3} /bin/bash
# rabbitmq 앱 종료
$ rabbitmqctl stop_app
# join_cluster를 이용해 조인
$ rabbitmqctl join_cluster rabbit@rabbitmq_node1
# 앱 실행
$ rabbitmqctl start_app
node1에서 cluster_status 확인
$ docker exec -it {node1} /bin/bash
$ rabbitmqctl cluster_status
RabbitMQ Dashboard 확인
728x90
반응형
'OpenSource > RabbitMQ' 카테고리의 다른 글
Spring AMQP를 사용하여 RabbitMQ Producer, Consumer 예제 코드 작성하기 (2) | 2024.06.13 |
---|---|
Docker에 RabbitMQ 설치 (2) | 2024.06.11 |
[RabbitMQ] RabbitMQ 설치 및 Cluster 구성 방법 (0) | 2024.06.10 |
[RabbitMQ] RabbitMQ의 주요 개념 (0) | 2022.05.03 |