RabbitMQ集群部署
一、系統(tǒng)編譯環(huán)境
yum -y install gcc glibc-devel make ncurses-devel openssl-devel autoconf
yum -y install unixODBC unixODBC-devel
yum -y install tk
yum -y install mysql-connector-odbc
二据某、RabbitMQ所需的附屬包安裝
1. erlang安裝
Erlang安裝命令為:
下載otp_src_R16B.tar.gz
tar -zxf otp_src_R16B.tar.gz
cd otp_src_R16B
./configure --prefix=/usr/local/otp_src_R16B
make
make install
2. simplejson安裝
Simplejson依賴于 Python 環(huán)境的提前安裝实辑,默認(rèn) Python 環(huán)境安裝成功对省。
Simplejson安裝命令為:
yum install Simplejson
yum install python-simplejson.x86_64
3. xmlto安裝
xmlto安裝命令為:
yum install xmlto.x86_64
三簸呈、RabbitMQ安裝
RabbitMQ安裝命令為:
下載rabbitmq-server-3.4.4.tar.gz
tar -xzvf rabbitmq-server-3.4.4.tar.gz
cd rabbitmq-server-3.4.4
export PATH=$PATH:/usr/local/otp_src_R16B/bin
make
make install TARGET_DIR=/usr/local/rabbitmq SBIN_DIR=/usr/local/rabbitmq/sbin \
MAN_DIR=/usr/local/rabbitmq/man
處理完畢后匹舞,修改/etc/profile:
vim /etc/profile排宰,在文件末尾添加:
PATH=/usr/local/otp_src_R14B/bin:$PATH
export PATH
命令使profile生效:
source /etc/profile
四似芝、RabbitMQ安裝信息
在3.x采用源代碼編譯安裝,rabbitmq 安裝目錄放在/usr/local/rabbitmq 下板甘,腳本放在 sbin/
目錄下党瓮,man手冊放在 man/目錄下。
└──sbin
├──rabbitmqctl
├──rabbitmq-defaults
├──rabbitmq-env
├──rabbitmq-plugins
└──rabbitmq-server
默認(rèn)日志文件路徑:/var/log/rabbitmq
1. RabbitMQ啟動(dòng)關(guān)閉服務(wù)
啟動(dòng)rabbitmq服務(wù)命令為:rabbitmq-server start(用戶關(guān)閉連接后盐类,自動(dòng)結(jié)束進(jìn)程)
后臺(tái)運(yùn)行rabbitmq服務(wù)命令為:rabbitmq-server -detached
關(guān)閉服務(wù)命令為:rabbitmqctl stop
2. RabbitMQ管理控制臺(tái)
啟用管理控制臺(tái)命令:
rabbitmq-plugins enable rabbitmq_management
RabbitMQ訪問控制臺(tái)地址為:http://localhost:15672/
rabbitmq默認(rèn)游客賬號(hào)密碼為:guest/guest 處理
此處通過rabbitmq ctl提供的命令進(jìn)行處理
rabbitmqctl add_user papi Paic1234
rabbitmqctl set_user_tags papi administrator
查看用戶列表:
rabbitmqctl list_users
用戶授權(quán):
rabbitmqctl set_permissions -p /vhost1 papi '.*' '.*' '.*'
查看權(quán)限:
rabbitmqctl list_user_permissions papi
五寞奸、Rabbitmq集群配置
三臺(tái)機(jī)器地址分別為:100.68.2.114呛谜、100.68.2.115、100.68.2.116
1.在三臺(tái)機(jī)器上修改/etc/hosts 文件
添加以下內(nèi)容:
100.68.2.115 ECAM40218.cloud.pub ECAM40218
100.68.2.116 ECAM40219.cloud.pub ECAM40219
100.68.2.114 ECAM40217.cloud.pub ECAM40217
2.設(shè)置 erlang cookie枪萄,mq 創(chuàng)建集群時(shí)要用到
文件位置:
/var/lib/rabbitmq/.erlang.cookie或 /root/.erlang.cookie
將某個(gè)節(jié)點(diǎn)上的該文件隐岛,復(fù)制到其他兩個(gè)節(jié)點(diǎn)上。
注意復(fù)制后瓷翻,該文件的權(quán)限需要修改為400:
chmod 400 root/.erlang.cookie
3.使用 -detached 參數(shù)運(yùn)行各節(jié)點(diǎn)
rabbitmqctl stop
rabbitmq-server–detached
4.創(chuàng)建集群
以ECAM40218為主節(jié)點(diǎn)聚凹,在其他兩個(gè)節(jié)點(diǎn)上執(zhí)行以下命令:
rabbitmqctl stop_app
rabbitmqctl join_cluster rabbit@ECAM40218
rabbitmqctl start_app
查看集群創(chuàng)建是否成功,在任意節(jié)點(diǎn)上執(zhí)行:
rabbitmqctl cluster_status
出現(xiàn)如下結(jié)果齐帚,代表集群創(chuàng)建成功了:
[root@ECAM40218 sbin]# ./rabbitmqctl cluster_status;
Cluster status of node rabbit@ECAM40218 ...
[{nodes,[{disc,[rabbit@ECAM40218,rabbit@ECAM40219,rabbit@ecam40217]}]},
{running_nodes,[rabbit@ecam40217,rabbit@ECAM40219,rabbit@ECAM40218]},
{cluster_name,<<"rabbit@ECAM40219.cloud.pub">>},
{partitions,[]}]
5.設(shè)置鏡像隊(duì)列策略
在任意一個(gè)節(jié)點(diǎn)上執(zhí)行:
rabbitmqctl set_policy ha-all "^" '{"ha-mode":"all"}'
將所有隊(duì)列設(shè)置為鏡像隊(duì)列妒牙,即隊(duì)列會(huì)被復(fù)制到各個(gè)節(jié)點(diǎn),各個(gè)節(jié)點(diǎn)狀態(tài)保持一直对妄。