一、安裝Erlang環境
1、下載erlang源代碼
wget http://erlang.org/download/otp_src_19.1.tar.gz
2、安裝依賴相關庫文件
yum install ncurses ncurses-base ncurses-devel ncurses-libs ncurses-static ncurses-term ocaml-curses ocaml-curses-devel openssl-devel zlib-devel -y
3、編譯安裝Erlang
tar zxf otp_src_19.1.tar.gz cd otp_src_19.1 ./configure --prefix=/opt/erlang/19.1 --with-ssl -enable-threads -enable-smmp-support -enable-kernel-poll --enable-hipe --without-javac make && make install
4、配置環境變量(/etc/profile.d/erlang.sh)
ERLANG_HOME=/opt/erlang/19.1 PATH=$ERLANG_HOME/bin:$PATH export ERLANG_HOME export PATH
source /etc/profile.d/erlang.sh
5、驗證Erlang環境正確與否
執行命令:erl
二、安裝RabbitMQ3.6.6
1、下載RabbitMQ源代碼
wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.6.6/rabbitmq-server-generic-unix-3.6.6.tar.xz
xz -d rabbitmq-server-generic-unix-3.6.6.tar.xz
tar xf rabbitmq-server-generic-unix-3.6.6.tar
2、啟動、關閉rabbitmq-server
./rabbitmq-server -detached
./rabbitmq-plugins enable rabbitmq_management #開啟插件管理頁面 打開端口15672
./rabbitmqctl stop #關閉服務
3、創建用戶
./rabbitmqctl add_user admin password ./rabbitmqctl set_user_tags mquser administrator ./rabbitmqctl set_permissions -p "/" admin ".*" ".*" ".*" rabbitmqctl list_user_permissions admin
4、WEB登陸
http://*.*.*.*:15672
三、集群搭建
1、服務器選擇
hostname IP
node1 192.168.1.100 node2 192.168.1.101 node3 192.168.1.102
2、在三台服務器上分別修改配置
(1) 修改/etc/hosts
192.168.1.100 node1 192.168.1.101 node2 192.168.1.102 node3
(2) 修改/etc/sysconfig/network
HOSTNAME=node1 #node1服務器 HOSTNAME=node2 #node2服務器 HOSTNAME=node3 #node3服務器
(3) 設置hostname
hostname node1 #node1服務器 hostname node2 #node2服務器 hostname node3 #node3服務器
3、修改erlang.cookie,使三台服務器保持一致
通過遠程復制文件(scp)或者直接復制內容均是可以的
4、設置好erlang.cookie之后,使用detached后台啟動rabbitmq-server
啟動 : ./rabbitmq-server -detached
查看各節點狀態:./rabbitmqctl cluster_status
5、把node2、node3分別加入到集群node1中
rabbitmqctl stop_app ---僅關閉應用,節點不被關閉
(1) node2
./rabbitmqctl stop_app ./rabbitmqctl join_cluster --ram rabbit@node1 ./rabbitmqctl start_app
(2) node3
./rabbitmqctl stop_app ./rabbitmqctl join_cluster --ram rabbit@node1 ./rabbitmqctl start_app
6、查看集群情況
./rabbitmqctl cluster_status
[{nodes,[{disc,[rabbit@node1]},{ram,[rabbit@node3,rabbit@node2]}]}, {running_nodes,[rabbit@node3,rabbit@node2,rabbit@node1]}, {cluster_name,<<"rabbit@node1">>}, {partitions,[]}, {alarms,[{rabbit@node3,[]},{rabbit@node2,[]},{rabbit@node1,[]}]}]