Linux搭建RabbitMQ镜像集群及相关操作命令

基于erlang的分布式特性,RabbitMQ很容易搭建其集群模式。RabbitMQ集群有普通模式和镜像模式两种,但普通模式的可靠性远差于镜像模式;另外,RabbitMQ的消息存储方式也有内存型和磁盘型两种,磁盘型适用于持久型消息,而内存型在重启应用后则消息被清空,故本文只讲述RabbitMQ磁盘型镜像模式集群的搭建方法。

系统环境

基于CentOS 7.2操作系统部署。

服务器IP 主机名 应用
10.10.100.101 RABBITMQ-A erlang
RabbitMQ
10.10.100.102 RABBITMQ-B
10.10.100.103 RABBITMQ-C

安装erlang

点击此处访问Erlang官网

安装RabbitMQ

阅读RabbitMQ官网提供的yum源配置方法。

配置RabbitMQ:

新添加的节点也必须使用原集群的erlang cookie,erlang cookie文件位置:

  • rpm安装方式 → /var/lib/rabbitmq/.erlang.cookie
  • 编译安装方式 → $home/.erlang.cookie

配置RabbitMQ集群

配置RabbitMQ用户

在所有节点上添加用户,并加入administrator用户组:

完成后,即可登录web界面http://10.10.100.101:15672。

提醒:RabbitMQ的默认用户“guest”用于集群检测,一般情况下不要做任何修改。

通过-detached启所有节点

创建集群

从第二个节点开始,依次加入到第一个节点中,创建RabbitMQ集群。

设置镜像策略

在web端创建虚拟机(coreserver)并授予rbtmqadmin和guest用户权限:

Admin → Virtual Hosts → Add a new virtual host

然后,在终端执行如下命令:

至此,RabbitMQ集群已经搭建成功,如果需要搭建HA,可参考haproxy相关文章,以下为关键配置:

相关知识点

镜像策略参数说明

-p Vhost 可选参数,对指定vhost下的queue进行设置
Name 指定policy的名称
Pattern 指定queue的匹配模式(正则表达式)
Definition 指定镜像模式
ha-mode {all|exactly|nodes} 指定镜像队列的模式
all 对集群中的所有节点进行镜像
exactly 表示在指定个数的节点上进行镜像,由ha-params指定节点数量
nodes 对指定的节点进行镜像,由ha-params指定节点名称
ha-params 对ha-mode定义参数node-name或node-number
ha-sync-mode {automatic|manual} 进行队列中消息的同步方式,有效值为automatic和manual
Priority 可选参数,policy的优先级

命令操作说明

rabbitmqctl start_app|stop_app 启动/关闭应用
start|stop [-n {policy-name}] 关闭节点和应用
add_vhost|delete_vhost {vhost-name} 新建/删除虚拟机
add_user {user-name} {user-pwd}|delete_user {user-name}|list_users 新建/删除/查看用户
change_password {user-name} {new-pwd} 修改密码
set_user_tags {user-name} {administrator|monitoring|management} 设置用户角色
set_permissions [-p vhostpath] {user} {conf} {write} {read} 设置权限
change_cluster_node_type {disc|ram} 更改节点类型
status|cluster_status 服务器/集群状态
list_queues [-p vhostpath] [queueinfoitem …] 队列信息
rabbitmq-plugins enable|disable {plugin-name} 开启/关闭插件
rabbitmq-server -detached 启动节点和应用

原创文章禁止转载:技术学堂 » Linux搭建RabbitMQ镜像集群及相关操作命令

精彩评论

3+9=

感谢您的支持与鼓励

支付宝扫一扫打赏

微信扫一扫打赏