RabbitMq集群的安装(一)----RabbitMq集群安裝
零、写在前面与规划
规划和预安装的软件都在这一篇中 [kafka集群的安装(一)][kafka]
我们这一篇直接使用上一篇的环境,安装RabbitMq相关的内容即可
RabbitMq是基于erLang开发的,因此RabbitMq的集群也一定依赖erLang的集群能力。我们只需要在erLang的cookie激活即可。
一、RabbitMq安装
RabbitMq需要erLang的支持,因此我们需要先安装erLang,再安装rabbitMq
1.1:下载并安装erLang [https://www.rabbitmq.com/releases/erlang/][https_www.rabbitmq.com_releases_erlang]erlang-19.0.4-1.el7.centos.x86\_64.rpm
进入下载的erlang的放置路径,
执行命令 rpm -ivh erlang-19.0.4-1.el7.centos.x86\_64.rpm 如下图
安装完毕后,测试,如下图
1.2:下载并安装RabbitMq [http://www.rabbitmq.com/releases/rabbitmq-server/][http_www.rabbitmq.com_releases_rabbitmq-server]v3.6.15/rabbitmq-server-3.6.15-1.el7.noarch.rpm
rpm文件路径与erlang相同,所以直接安装即可,如下图
提示缺少socat,安装。中间可能需要确认一次,输入y即可
socat安装完毕后,开始装RabbitMq
二、测试并建立用户
2.1:启动
如果使用的是默认安装,那么可能会安装到/usr/sbin路径下,进入目录,执行以下命令
/sbin/service rabbitmq-server start \#启动
- /sbin/service rabbitmq-server stop #关闭
- /sbin/service rabbitmq-server status #状态
或者使用下面的方法也可以
service rabbitmq-server start
service rabbitmq-server status
#CentOS7推荐使用如下方法:
systemctl start rabbitmq-server.service
systemctl status rabbitmq-server.service
service rabbitmq-server status 也可以啟動和查看狀態。
2.2:插件管理
执行命令: ./rabbitmq-plugins list(或者在其他路径下,执行`rabbitmq-plugins list也有想通效果`)
#启用rabbit的管理插件
rabbitmq-plugins enable rabbitmq_management
#日志跟踪插件 启用trace插件
rabbitmq-plugins enable rabbitmq_tracing
#打开trace的开关
rabbitmqctl trace_on
#打开trace的开关(test为需要日志追踪的vhost)
rabbitmqctl trace_on -p test
#关闭trace的开关
rabbitmqctl trace_off
#安装rabbitmq_delayed_message_exchange(延时队列)
#默认插件目录:
cd /usr/lib/rabbitmq/lib/rabbitmq_server-3.6.15/plugins/
wget https://dl.bintray.com/rabbitmq/community-plugins/rabbitmq_delayed_message_exchange-0.0.1.ez
rabbitmq-plugins enable rabbitmq_delayed_message_exchange
查看状态
2.3:建立访问RabbitMq的账号并分组,然后查看所有用户
命令分别为: ./rabbitmqctl add\_user admin admin
./rabbitmqctl set\_user\_tags admin administraotr
./rabbitmqctl list\_users
开启了rabbitmq\_management并建立了账号之后,就可以登录到rabbitmq的web管理界面了。
通过查看当前rabbitmq 的状态,找到端口。http端口为15672。
三、加入集群
3.1:统一.erlang.cookie
前面说了,RabbitMq的集群依赖erLang的集群,同时erLang集群中各节点的通信依赖magic cookie实现。同时由于我们在上面使用的是rpm安装的RabbitMq和erLang,因此erLang的cookie文件路径存在於/var/lib/rabbitmq下。文件名叫做“.erlang.cookie”。但是它是隐藏的
使用ll -all命令或者ls -all命令都可以看到这个隐藏文件,修改它的权限为“400”否则节点间无法通信(我没试过都改为777会怎样),然后用一个erLang节点下的cookie文件的值替换其他节点的。
修改完毕之后,重启所有节点的RabbitMq(重启速度可能不会很快,有点心理准备哈 ),命令如下
systemctl restart rabbitmq-server.service
systemctl status rabbitmq-server.service
3.2:加入集群
根据我的规划([规划帖见这里][kafka])一共是三台服务器的集群,我以第一台服务器xxCentos7One作为RabbitMq的主节点,其他两台服务器加入到当前节点。操作步骤如下图
图上弄得挺乱,将就看吧
红框部分是操作步骤的命令,其中第三步操作异常,原因是我以为连接到的主节点名称应该是“主节点登录账号@主节点服务器别名”,测试后发现应改写为“rabbit@主节点服务器别名”。
分别查看三台服務器上现在的RabbitMq集群的情况,`rabbitmqctl cluster_status。如下图`
``
图中列出了运行的节点、分区、集群名等信息。由于我没有进一步的配置,因此暂时没有分区等详细信息。
后续会补充关于高可用配置与镜像队列相关内容,敬请期待
参考资料 centos下rabbitmq的集群管理
还没有评论,来说两句吧...