1. 程式人生 > >Centos7 安裝rabbitmq(轉載)

Centos7 安裝rabbitmq(轉載)

css b- word gre pack sys soft comm lasso

原文地址: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安裝rabbitmq

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(轉載)