ivaneeo's blog

          自由的力量,自由的生活。

            BlogJava :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
            669 Posts :: 0 Stories :: 64 Comments :: 0 Trackbacks

          如何安裝RabbitMQ Cluster


          建立測試環(huán)境與測試系統(tǒng)總是最花時間的,趁著今天重新安裝一組RabbitMQ 的測試環(huán)境,把所有的步驟和順序都整理起來吧。

          安裝RabbitMQ

          Our APT repository

          To use our APT repository:

          1. Add the following line to your /etc/apt/sources.list:
            deb http://www.rabbitmq.com/debian/ testing main
            (Please note that the word testing in this line refers to the state of our release of RabbitMQ, not any particular Debian distribution. You can use it with Debian stable, testing or unstable, as well as with Ubuntu. We describe the release as "testing" to emphasise that we release somewhat frequently.)
          2. (optional) To avoid warnings about unsigned packages, add our public key to your trusted key list using apt-key(8):
            wget http://www.rabbitmq.com/rabbitmq-signing-key-public.asc sudo apt-key add rabbitmq-signing-key-public.asc
          3. Run apt-get update.
          4. Install packages as usual; for instance,
            sudo apt-get install rabbitmq-server


          設定Cluster


          最簡易的方法就是先啟動,cluster master node產生 /var/lib/rabbitmq/.erlang.cookie 這份文件,然後再把這份文件copy 到 每一個cluster node鄉(xiāng)對應的目錄下面去,接下來就參考RabbitMQ - create cluster這份文件,範例事先建立3臺的cluster。
           
          1. 啟動每臺rabbitMQ
          # rabbit1$ rabbitmq-server -detached
          # rabbit2$ rabbitmq-server -detached
          # rabbit3$ rabbitmq-server -detached

          2. 確認每一臺rabbitmq 是否是standalone狀態(tài)

          # rabbit1$ rabbitmqctl cluster_status
          Cluster status of node rabbit@rabbit1 ...
          [{nodes,[{disc,[rabbit@rabbit1]}]},{running_nodes,[rabbit@rabbit1]}]
          ...done.
          # rabbit2$ rabbitmqctl cluster_status
          Cluster status of node rabbit@rabbit2 ...
          [{nodes,[{disc,[rabbit@rabbit2]}]},{running_nodes,[rabbit@rabbit2]}]
          ...done.
          # rabbit3$ rabbitmqctl cluster_status
          Cluster status of node rabbit@rabbit3 ...
          [{nodes,[{disc,[rabbit@rabbit3]}]},{running_nodes,[rabbit@rabbit3]}]
          ...done.

          3. 依序加入cluster

          rabbit2$ rabbitmqctl stop_app
          Stopping node rabbit@rabbit2 ...done.
          rabbit2$ rabbitmqctl reset
          Resetting node rabbit@rabbit2 ...done.
          rabbit2$ rabbitmqctl cluster rabbit@rabbit1
          Clustering node rabbit@rabbit2 with [rabbit@rabbit1] ...done.
          rabbit2$ rabbitmqctl start_app
          Starting node rabbit@rabbit2 ...done. 


          4. 確認cluster status是否正確加入

          rabbit1$ rabbitmqctl cluster_status
          Cluster status of node rabbit@rabbit1 ...
          [{nodes,[{disc,[rabbit@rabbit1]},{ram,[rabbit@rabbit2]}]},
          {running_nodes,[rabbit@rabbit2,rabbit@rabbit1]}]
          ...done.
          rabbit2$ rabbitmqctl cluster_status
          Cluster status of node rabbit@rabbit2 ...
          [{nodes,[{disc,[rabbit@rabbit1]},{ram,[rabbit@rabbit2]}]},
          {running_nodes,[rabbit@rabbit1,rabbit@rabbit2]}]
          ...done.


          設定Web Management Plugin


          參考 rabbitmq - Management Plugin,重點是要在Cluster node的每一臺都要安裝這個plugin
          # rabbitmq-plugins enable rabbitmq_management 
          安裝好以後,要記得重啟服務
          # service rabbitmq-server restart

          設定好就可以連到http://server-name:55672/#/ 看看web 介面有沒有起來,預設的帳號密碼都是guest,如果是內部測試那還沒關係,如果是要連到外面,一定記得要改帳號密碼和permission。


          設定帳號


          最後我們可以設定一個vhost 以及這個vhost的帳號密碼和權限

          #rabbitmqctl add_vhost /demo
          #rabbitmqctl add_user demo mypass
          #rabbitmqctl set_permissions -p /demo demo ".*" ".*" ".*"

          啟動HAProxy
          /etc/default/haproxy
          # Set ENABLED to 1 if you want the init script to start haproxy.
          ENABLED=1

          啟動日志
          /etc/rsyslog.d

          添加文件haproxy.conf:
          $ModLoad imudp
          $UDPServerRun 514

          local0.*                        -/var/log/haproxy-0.log
          local1.*                        -/var/log/haproxy-1.log

          HAProxy配置
          # this config needs haproxy-1.1.28 or haproxy-1.2.1

          global
                  log 127.0.0.1   local0
                  log 127.0.0.1   local1 notice
                  #log loghost    local0 info
                  maxconn 4096
                  #chroot /usr/share/haproxy
                  user haproxy
                  group haproxy
                  daemon
                  #debug
                  #quiet

          defaults
                  log     global
                  mode    tcp
                  option  tcplog
                  option  dontlognull
                  retries 3
                  option redispatch
                  maxconn 2000
                  contimeout      5000
                  clitimeout      50000
                  srvtimeout      50000

          listen rabbitmq_cluster 0.0.0.0:5678
                 mode tcp
                 balance roundrobin
                 server   rabbit65 192.168.1.200:5672 check inter 2000 rise 2 fall 3
                 server   rabbit66 192.168.1.201:5672 check inter 2000 rise 2 fall 3
          listen stats :1936
              mode http
              stats enable
              stats hide-version
              stats realm Haproxy\ Statistics
              stats uri /
              stats auth admin:admin
          posted on 2013-12-16 19:11 ivaneeo 閱讀(552) 評論(0)  編輯  收藏 所屬分類: GNU牛力
          主站蜘蛛池模板: 浦北县| 大连市| 彭州市| 抚宁县| 临城县| 红河县| 醴陵市| 博客| 马边| 清苑县| 当涂县| 云梦县| 马山县| 临沧市| 岑巩县| 苍溪县| 仁化县| 崇左市| 桦川县| 浮山县| 江油市| 安图县| 富民县| 象山县| 华阴市| 镇赉县| 昌都县| 通化县| 丁青县| 原平市| 都昌县| 新龙县| 库车县| 平陆县| 普兰店市| 县级市| 麻栗坡县| 巧家县| 邮箱| 环江| 宁夏|