准备工作
- 两台安装了ubuntu的机器或者虚拟机。内网地址A:192.168.0.201 B:192.168.0.202 。两台机器在同一内网,互相能ping通。
- 修改两台机器的 /etc/hosts。设置A:192.168.0.202 rabbitmq2。设置B: 192.168.0.201 rabbitmq1。ping rabbitmq1和rabbitmq2能ping同。
1. 安装erlang环境
-
安装erlang依赖
apt-get install build-essential
apt-get install libncurses5-dev
apt-get install libssl-dev
apt-get install m4
apt-get install unixodbc unixodbc-dev
apt-get install freeglut3-dev libwxgtk2.8-dev
apt-get install xsltproc
apt-get install fop
apt-get install tk8.5
-
erlang不好下载,附上下载链接一份,erlang22.1立即下载
-
-
保证机器上安装了jdk,不知道jdk怎么安装的,请百度。
-
下载并解压成功,进入压缩包目录,执行
./configure --prefix=/usr/local/erlang
成功后执行make && make install
-
配置erlang环境变量,打开 /etc/profile 加入,
export ERLANG_HOME = /usr/local/erlang
。修改PATH,如果原有path最后以:结尾,那么添加${ERLANG_HOME}/bin
,如果没有以:结尾,那么添加:${ERLANG_HOME}/bin
。保存退出后执行source /etc/profile
-
执行
erl
进入erlang命令行显示版本号即安装成功。
1. 安装rabbitmq 单机
-
下载源码,这个资源表较多,官网基本能下载下来,不贴下载地址了。
-
解压安装包,进入到sbin下,执行
./rabbitmq-server -detached
启动rabbitmq。 -
查看rabbitmq可用组件
./rabbitmq-plugins list.
如果想开启页面监控,./rabbitmq-plugins enable rabbitmq_management
,如果想关闭则./rabbitmq-plugins disable rabbitmq_management
-
rabbitmq 默认用户为guest,密码也是guest,只允许本机登录。如果想要在其他机器上访问rabbitmq服务,那么需要设置用户、角色和权限。
-
1.查看rabbitmq有哪些用户
./rabbitmqctl list_users
,发现只有guest,角色为administrator。执行添加用户的命令./rabbitmqctl add_user qunmai 123456
,用户qunmai,密码123456 -
rabbitmq共有五种角色 超级管理员(administrator)、监控者(monitoring)、策略制定者(policymaker)、普通管理者(management)、其他(other)。不过多介绍很简单,感兴趣自己查一下。执行明星
./rabbitmqctl set_user_tags qunmai administrator
,给用户qunmai 超级管理员角色。 -
到这一步,如果你用客户端链接mq,依然报错,还需要设置用户角色权限。查看用户都由那些权限
./rabbitmqctl list_permissions -p /
。为群脉用户赋权限./rabbitmqctl set_permissions -p "/" qunmai ".*" ".*" ".*"
。
-
-
至此你就可以愉快的连接mq了,mq的node名称A机器为rabbit@rabbitmq1,B机器为rabbit@rabbitmq2,名称和你们设置的hosts名称一致。
2. 安装rabbitmq集群
-
在两台机器上以上述方式分别安装rabbitmq
-
找到rabbitmq的erlang.cookie。默认在创建用户目录下,root用户在/root下,其他用户在/home/<用户名>下。
-
复制A机器的erlang.cookie到B机器并覆盖B的erlang.cookie,重启B(先停止在启动
./rabbitmqctl stop && ./rabbitmq-server -detached
)。在机器A执行./rabbitmqctl cluster_status
查看集群状态,发现只有A。 -
停止B机器rabbitmq 应用,
./rabbitmqctl stop_app
,将B机器的rabbitmq加入到A集群./rabbitmqctl join_cluster rabbit@rabbit1
。 -
重启B机器rabbitmq 应用
./rabbitmqctl start_app
-
查看集群状态
./rabbitmqctl cluster_status
发现nodes已经有了两个分别为rabbit@rabbit1、rabbit@rabbit2。 -
至此简单的双机集群搭建完毕