-
[RabbitMQ] Docker를 이용한 RabbitMQ 클러스터링 구성오픈소스/rabbitmq 2020. 10. 16. 21:27
서버 A(172.21.114.89), 서버 B(172.21.106.118) 두 대의 서버에 Docker로 RabbitMQ를 구동하고 클러스터링을 적용하는 방법에 대해서 알아보도록 하겠습니다.
사용하는 docker 이미지는 itzg/rabbitmq-stomp를 사용하였습니다.
서버 A에 접속해서 RabbitMQ 이미지를 다운받고 실행합니다.
$ docker run --hostname rabbit1 --add-host rabbit1:172.21.114.89 --add-host rabbit2:172.21.106.118 --name rabbit -p 15672:15672 -p 4369:4369 -p 5672:5672 -p 5671:5671 -p 25672:25672 -p 61613:61613 -e RABBITMQ_ERLANG_COOKIE='some cookie' -d itzg/rabbitmq-stomp
서버 B에 접속해서 RabbitMQ 이미지를 다운받고 실행합니다.
$ docker run --hostname rabbit2 --add-host rabbit1:172.21.114.89 --add-host rabbit2:172.21.106.118 --name rabbit -p 15672:15672 -p 4369:4369 -p 5672:5672 -p 5671:5671 -p 25672:25672 -p 61613:61613 -e RABBITMQ_ERLANG_COOKIE='some cookie' -d itzg/rabbitmq-stomp
서버 B의 RabbitMQ 서비스를 중지 시킵니다.
$ docker exec rabbit rabbitmqctl stop_app
RabbitMQ 클러스터링 설정
서버 B의 rabbit2를 서버 A의 rabbit1의 cluster에 join 시킨다.
$ docker exec rabbit rabbitmqctl join_cluster rabbit@rabbit1
서버 B의 rabbit2 서비스를 실행시킨다.
$ docker exec rabbit rabbitmqctl start_app
cluster 상태를 확인한다.
$ docker exec rabbit rabbitmqctl cluster_status Cluster status of node rabbit@rabbit2 ... [{nodes,[{disc,[rabbit@rabbit1,rabbit@rabbit2]}]}, {running_nodes,[rabbit@rabbit1,rabbit@rabbit2]}, {cluster_name,<<"rabbit@rabbit1">>}, {partitions,[]}, {alarms,[{rabbit@rabbit1,[]},{rabbit@rabbit2,[]}]}]
RabbitMQ 미러링 설정
$ docker exec rabbit rabbitmqctl set_policy ha-all "^ha\\." '{"ha-mode":"all"}'
'오픈소스 > rabbitmq' 카테고리의 다른 글
[RabbitMQ] RabbitMQ란? (0) 2021.07.15