ivaneeo's blog

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

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

          如何安裝RabbitMQ Cluster


          建立測試環(huán)境與測試系統(tǒng)總是最花時(shí)間的,趁著今天重新安裝一組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


          設(shè)定Cluster


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

          2. 確認(rèn)每一臺(tái)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. 確認(rèn)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.


          設(shè)定Web Management Plugin


          參考 rabbitmq - Management Plugin,重點(diǎn)是要在Cluster node的每一臺(tái)都要安裝這個(gè)plugin
          # rabbitmq-plugins enable rabbitmq_management 
          安裝好以後,要記得重啟服務(wù)
          # service rabbitmq-server restart

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


          設(shè)定帳號(hào)


          最後我們可以設(shè)定一個(gè)vhost 以及這個(gè)vhost的帳號(hào)密碼和權(quán)限

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

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

          啟動(dòng)日志
          /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) 評(píng)論(0)  編輯  收藏 所屬分類: GNU牛力
          主站蜘蛛池模板: 宜黄县| 禄劝| 武隆县| 当雄县| 巴彦县| 黑河市| 宣武区| 盐源县| 武汉市| 西吉县| 宿迁市| 福清市| 旺苍县| 甘谷县| 锡林郭勒盟| 孙吴县| 阳江市| 澄城县| 威信县| 钦州市| 武汉市| 如东县| 孟州市| 界首市| 营口市| 玉田县| 安西县| 孝感市| 西盟| 缙云县| 光泽县| 高雄市| 巴中市| 沁水县| 洪湖市| 旅游| 如皋市| 池州市| 重庆市| 鄂伦春自治旗| 景泰县|