ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [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] RabbitMQ란?  (0) 2021.07.15

    댓글

Designed by Tistory.