Centos7 安裝rabbitmq(轉載)
原文地址:http://blog.csdn.net/wenyu826/article/details/71108279
安裝Erlang
從鏈接https://packages.erlang-solutions.com/erlang/esl-erlang/FLAVOUR_1_general/esl-erlang_19.3-1~centos~7_amd64.rpm下載centos7的rpm包(19.3)
首先需要安裝erlang包的依賴項:
yum install epel-release
yum install unixODBC unixODBC-devel wxBase wxGTK SDL wxGTK-gl
安裝erlang:
rpm -ivh esl-erlang_19.3-1~centos~7_amd64.rpm
測試安裝是否成功:
[root@albert software]# erl
Erlang R16B03-1 (erts-5.10.4) [source] [64-bit] [async-threads:10] [hipe] [kernel-poll:false]
安裝Rabbitmq
從鏈接http://www.rabbitmq.com/releases/rabbitmq-server/v3.6.9/rabbitmq-server-3.6.9-1.el7.noarch.rpm下載rabbitmq(3.6.9)的rpm包。
yum install rabbitmq-server-3.6.9-1.el7.noarch.rpm
此時會提示依賴包erlang >= R16B-03,然後繼續會提示需要下載依賴包。
下載完成之後,當在安裝的時候有部分依賴包是會安裝失敗的。安裝失敗的基本都是erlang的,因為我們前面已經安裝了erlang19.3 但是可能依賴的版本不一致的原因吧,這個時候可以查看我們已經安裝的 erlang
rpm -qa | grep erlang
會顯示esl-erlang-xxxxx , 此時卸載掉我們剛剛安裝的erlang
rpm -e esl-erlang
然後重新執行
yum install rabbitmq-server-3.6.9-1.el7.noarch.rpm
此次執行之後會安裝相關的erlang依賴,版本好像是R16B-03.(此處不確定先不安裝erlang19.3而直接安裝rabbitmq-server會不會也可以成功,好像曾經嘗試過但是rabbitmq-server安裝的時候會報錯)。
查看安裝的rabbitmq和erlang
whereis rabbitmq
whereis erlang
進入rabbitmq/bin目錄
rabbitmq-plugins enable rabbitmq_management
開啟管理功能。
啟動rabbitmq服務
rabbitmq-server -detached
添加用戶並設置權限:
rabbitmqctl add_user albert albert
rabbitmqctl set_user_tags albert administrator
集群部署
現有兩臺機器ip以及hostname分別為
192.168.232.130 計算機名為cecily
192.168.232.129 計算機名為albert
在兩臺機器cecily和albert的/etc/hosts 末尾都加上
192.168.232.130 cecily
192.168.232.129 albert
然後查看添加的結果:
[root@albert /]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.232.129 albert
192.168.232.130 cecily
查找.erlang.cookie文件的位置
find -name .erlang.cookie
兩臺機器的.erlang.cookie要一直,這是erlang通訊所需要用到的。
假設從統一使用albert機器的.erlang.cookie
則將albert的.erlang.cookie文件復制到cecily機器的對應路徑
一般為/root/.erlang.cookie 和 /var/lib/rabbitmq/.erlang.cookie
此時查詢機器的服務狀態
rabbitmqctl cluster_status
如果異常的話建議重新啟動解決。
將cecily機器添加到albert中,先將兩個機器的防火墻關閉
systemctl stop firewalld.service
在cecily機器執行
rabbitmqctl stop_app
rabbitmqctl join_cluster --ram rabbit@albert
rabbitmqctl start_app
這樣就將cecily的rabbitmq添加到了albert的集群中。
Haproxy負載均衡
安裝haproxy
yum install haproxy
修改haproxy配置 /etc/haproxy/haproxy.cfg
添加如下內容:
#把rabbitmq節點的管理界面也放到haproxy
listen rabbitmq_admin
bind 0.0.0.0:8600
server albert 192.168.232.129:15672
server cecily 192.168.232.130:15672
######################
##raiibitmq集群負載均衡配置
listen rabbitmq_cluster
bind 0.0.0.0:8660
option tcplog
mode tcp
timeout client 3m
timeout server 3m
balance roundrobin
server albert 192.168.232.129:5672 check inter 5s rise 2 fall 3
server cecily 192.168.232.130:5672 check inter 5s rise 2 fall 3
######
重新啟動haproxy
systemctl restart haproxy.service
上述操作成功之後,就可以訪問haproxy機器的8600端口進入rabbitmq集群管理界面,8660端口通訊。
Centos7 安裝rabbitmq(轉載)