Centos6下RabbitMQ学习(零)——集群搭建(非高可用)
rabbitmq的官方文档总目录
https://www.rabbitmq.com/documentation.html
1 单点搭建
RabbitMQ是先启动单个节点,然后用命令组成集群的,所以从单点搭建开始
我是用官方编译好的包,解包即用,当然,RabbitMQ是用erlang编写的,我们肯定也要安装erlang
官方文档https://www.rabbitmq.com/install-generic-unix.html
2.1 erlang安装
先安装erlang,RabbitMQ官方提供了一个0依赖的erlang安装包
https://www.rabbitmq.com/install-rpm.html页面中有一节是Zero-dependency Erlang from RabbitMQ,就提供了这个安装包,下载地址https://packagecloud.io/rabbitmq/erlang
注意el6和el7对应centos6或者7,下载自己系统的版本
sudo rpm -hvi erlang-21.2.6-1.el6.x86_64.rpm # 安装erlang
erl # 测试是否能打开erlang shell
你应该能打开一个erlang的shell界面,这样表示erlang安装好了
2.2 RabbitMQ安装
然后就可以下载已经编译好的RabbitMQ,任选一个地方下载
tar -xvf rabbitmq-server-generic-unix-3.7.13.tar.xz
cd rabbitmq_server-3.7.13
./sbin/rabbitmq-server -detached # 后台启动
./rabbitmq-plugins enable rabbitmq_management # 开启web服务
这个警告是正常的,不影响使用
打开https://IP:15672,RabbitMQ默认的账户密码是guest、guest,输入账号密码,就可以看见这样的界面了
在web页面可以完成很多配置工作,比命令行直观很多
注意这个guest账号只能在localhost上使用,所以我们现在创建一个自己的用户,tags表示不同的操作权限
点击已经存在于列表中的用户名,可以进入用户详细配置,比如配置vhost的权限
也可以通过命令行添加用户,配置权限
./rabbitmqctl add_user 用户名 密码
./rabbitmqctl set_user_tags 用户名 administrator # 设置该用户为管理员角色
./rabbitmqctl set_permissions -p 虚拟主机 用户名 '.*' '.*' '.*' # 让用户拥有某虚拟主机的配置、写、读权限
2 非高可用集群搭建
首先,每台服务器上的erlang和RabbitMQ必须是相同的版本,其次服务器之间是通过Erlang message-passing传递信息的,所以每台服务器必须拥有相同的erlang cookie
erlang cookie在home目录的.erlang.cookie里,保持每个服务器的这个值一致即可
我们现在启动三个单点服务器,执行命令获取每个服务器的名称
./rabbitmqctl cluster_status
输出的集群状态,只有一个节点就是本地节点,节点名是[email protected]这种形式,集群名和节点名一致
现在把节点2、3加入到节点1中形成集群,生成的集群名字会和节点1的节点名一致。在节点2、3分别执行下面的命令
./rabbitmqctl stop_app # 停止RabbitMQ应用
./rabbitmqctl reset # 节点恢复到初始状态,删除一切数据和配置,从现有集群中移除
./rabbitmqctl join_cluster [email protected] # 加入节点1集群
./rabbitmqctl start_app # 开启RabbitMQ应用
最后到节点1再次查看集群状态,可以看到三台节点,当然节点2、3都执行了reset命令,现在集群里的数据、配置、用户信息等都是节点1的
到web上看一下,三个节点,集群就搭建成功了