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:5672,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

输出的集群状态,只有一个节点就是本地节点,节点名是rabbit@hostname这种形式,集群名和节点名一致

现在把节点2、3加入到节点1中形成集群,生成的集群名字会和节点1的节点名一致。在节点2、3分别执行下面的命令

./rabbitmqctl stop_app  # 停止RabbitMQ应用
./rabbitmqctl reset  # 节点恢复到初始状态,删除一切数据和配置,从现有集群中移除
./rabbitmqctl join_cluster rabbit@hostname1 # 加入节点1集群
./rabbitmqctl start_app  # 开启RabbitMQ应用

最后到节点1再次查看集群状态,可以看到三台节点,当然节点2、3都执行了reset命令,现在集群里的数据、配置、用户信息等都是节点1的

到web上看一下,三个节点,集群就搭建成功了

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章