2017年3月14日 星期二

使用Docker 建立 RabbitMQ Cluster

如果是在Swarm mode的前提下:一台manager,兩台worker。
1. 先在manager 下 create service 指令,以便先在每個節點上啟動RabbitMQ
    docker service create --mode global -p 15672:15672 -p 5672:5672 -e RABBITMQ_DEFAULT_USER=test -e RABBITMQ_DEFAULT_PASS=123456  -e RABBITMQ_ERLANG_COOKIE='123456'  --network mynet --name demo-rabbitmq rabbitmq:3.6.5-management
2. 確認每個節點的RabbitMQ都已成功啟動後,就分別去worker 主機將RabbitMQ node 加進去manager 主機的RabbitMQ即可。可以在worker node的那兩台主機寫一個簡單的shellscript把指令都打進去,manager的rabbitmq hostname用變數代。
    2.1.   vim  cluster-rabbitmq.sh。內容如下:
   docker exec -i $(docker ps -q -f name=demo-rabbitmq) /bin/bash -c "rabbitmqctl stop_app"
    docker exec -i $(docker ps -q -f name=demo-rabbitmq) /bin/bash -c "rabbitmqctl reset"
    docker exec -i $(docker ps -q -f name=demo-rabbitmq) /bin/bash -c "rabbitmqctl join_cluster rabbit@$1"
    docker exec -i $(docker ps -q -f name=demo-rabbitmq) /bin/bash -c "rabbitmqctl start_app"

    2.2. 先在manager node查詢rabbitmq conatiner node。
           docker exec demo-rabbitmq.0.aa9by0l1g9zchifcozirtlqks hostname

   2.3.在worker node 主機執行cluster-rabbitmq.sh 2c3868443090。



  2.4. 成功UI畫面

沒有留言:

張貼留言