RabbitMQ 集群+haproxy 高可用
序号
版本
修订人
修订时间
1
1
V1.0
V1.1
王威
王威
2018-09-25
2018-09-29
Reviewed
王威
王威
目 录
一、 系统参数..............................................................................................................1
二、 安装 erlang........................................................................................................ 1
1. 安装编译工具....................................................................................................1
2. erlang 下载....................................................................................................... 1
3. 解压....................................................................................................................1
4. 编译....................................................................................................................1
5. 编译安装............................................................................................................1
6. 配置环境变量....................................................................................................1
三、 安装 RabbitMQ................................................................................................ 2
1. 下载....................................................................................................................2
2. 安装 .................................................................................................................. 2
3. 启动....................................................................................................................2
4. 添加管理员账号................................................................................................3
5. 登录管理界面....................................................................................................3
四、 多台 MQ 安装.....................................................................................................3
五、 搭建 RabbitMQ 集群....................................................................................... 3
六、 安装 Haprox......................................................................................................5
1. 下载....................................................................................................................5
2. 解压....................................................................................................................5
3. 查看安装所需参数............................................................................................5
4. 查看主机内核版本............................................................................................5
5. 安装命令............................................................................................................6
6. 进行配置............................................................................................................6
7. 创建配置文件....................................................................................................6
8. 启动服务............................................................................................................6
七、 搭建过程中遇到问题..........................................................................................6
一、系统参数
系统版本:CentOS-6.8
RabbMq:rabbitmq_server-3.5.8
Erlang:otp_src_18.3
Haprox:haproxy-1.8.13
Hobbit1:192.168.0.1
Hobbit2:192.168.0.2
说明: Hobbit1、Hobbit2 分别安装 rabbitmq 并组成集群,因为虚拟机使用
Hobbit1 上安装 Haprox 作为高可用节点,实际应该采用新节点作为 Haprox 服务
器
二、安装 erlang
1. 安装编译工具(需配置 yum 源,本服务用阿里 yum 源)
yum -y install make gcc gcc-c++ kernel-devel m4 ncurses-devel
openssl-devel glibc-devel autoconf
2. erlang 官方下载地址:
Wget http://erlang.org/download/otp_src_18.3.tar.gz
3. 解压
tar xvf otp_src_18.3.tar.gz
cd otp_src_18.3
4. 编译
./configure
--prefix=/usr/local/erlang
--with-ssl
-enable-threads
-enable-smmp-support -enable-kernel-poll --enable-hipe --without-javac
5. 编译安装
make && make install
6. 配置 erlang 环境变量
vim /etc/profile
#在文件末尾添加下面代码 'ERLANG_HOME'等于上一步'--prefix'指定的
1
目录
ERLANG_HOME=/usr/local/erlang
PATH=$ERLANG_HOME/bin:$PATH
export ERLANG_HOME
export PATH
#使环境变量生效 source /etc/profile
三、安装 RabbitMQ
1. 官方下载地址:
wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.5.8/rabbitmq-server-generic-unix-3.5.8.tar.gz
2. 安装
RabbitMQ3.5 版本无需 make、make install 解压可以适宜用
#用 tar 命令解压
tar -zxvf rabbitmq-server-generic-unix-3.5.8.tar.gz
#移动目录看个人喜好
cp -rf ./rabbitmq_server-3.5.8 /usr/local/
cd /usr/local/
#开启管理页面插件
cd ./rabbitmq_server-3.5.8/sbin/
./rabbitmq-plugins enable rabbitmq_management
#设置镜像模式为做集只需在主机 hobbit1 上设置
./rabbitmqctl set_policy -p / ha-allqueue "^rabbitmq" '{"ha-mode":"all"}'
设置配置文件
cd /home/trade/usr/local/rabbitmq/etc/rabbitmq
cp rabbitmq.config.example rabbitmq.config
3. 启动
#启动命令,该命令 ctrl+c 后会关闭服务
./rabbitmq-server
#在后台启动 Rabbit
2
./rabbitmq-server &
#关闭服务
./rabbitmqctl stop
#关闭服务(kill) 找到 rabbitmq 服务的 pid
ps -ef|grep rabbitmq
kill -9 ****
4. 添加管理员账号
#进入 RabbitMQ 安装目录
cd /usr/local/rabbitmq_server-3.5.8/sbin
1)添加用户
./rabbitmqctl add_user
admin 123456
2)赋予其 administrator 角色:
./rabbitmqctl set_user_tags
admin administrator
3)创建和赋角色完成后查看并确认:
./rabbitmqctl list_users
4)为用户赋权:
./rabbitmqctl
set_permissions -p /
admin '.*' '.*' '.*'
5)查看权限:
./rabbitmqctl list_user_permissions admin
5. 登录管理界面
浏览器输入地址:http://服务器 IP 地址:15672/
3
四、其余服务器安装 MQ 的方法和步骤同上(一至三)步骤
五、搭建 RabbitMQ 集群
Rabbitmq 的集群是依赖于 erlang 的集群来工作的,所以必须先构建起
erlang 的集群环境。Erlang 的集群中各节点是通过一个 magic cookie 来
实现的,这个 cookie 存放在.erlang.cookie 中,故必须保证各节点 cookie
保 持 一 致 , 否 则 节 点 之 间 就 无 法 通 信 。 建 议 在 做 下 列 操 作 前 , 关 闭
rabbitmq-server 服务。
1. 设置节点 cookie
cookie 文件位于/root/下
将该节点的.erlang.cookie 文件内容(如下面的"XXXXXXXXXXXXX"字符
串)复制到其他所有节点的同文件中,记得要先赋予文件写权限,写完后再取消
写权限:
chmod 700 .erlang.cookie
echo -n "XXXXXXXXXXXXX" > .erlang.cookie
chmod 400 .erlang.cookie
注意:复制字符串时,千万不要带上空格等无用信息
2. 确保节点间主机名称可以相互解析,将集群中全部机器的(ip 地址 主机名)
分别添加到每台机器的 hosts 文件中:
vim /etc/hosts
127.0.0.1
192.168.0.1
192.168.0.2
hobbit1
hobbit1
hobbit2
3. 节点组成集群
首先启动 rabbitmq-server 的服务,运行各个机器的节点,并查看状态:
service rabbitmq-server start
rabbitmqctl stop
rabbitmq-server -detached
4
rabbitmqctl status
4. 登录主机 hobbit2,组成集群如下操作:
rabbitmqctl stop_app 注:如果报错连接不上请执行./rabbitmq-server &
rabbitmqctl join_cluster rabbit@hobbit1
rabbitmqctl start_app
配置完成后, rabbitmqctl cluster_status 来查看是否集群配置成功
5. 节点退出集群
以 hobbit2 节点为例,如果需要将其退出集群
rabbitmqctl stop_app
rabbitmqctl rest
六、安装 Haprox
1. 下载
(注:请浏览器打开点击进入下载页面)
https://src.fedoraproject.org/repo/pkgs/haproxy/haproxy-1.8.13.tar.gz
2. 解压
tar -zxf haproxy-1.8.13.tar.gz
cd haproxy-1.8.13
3. 查看安装所需参数
cat README
4. 查看主机内核版本
5