共计 5255 个字符,预计需要花费 14 分钟才能阅读完成。
实验环境:
操作系统为 CentOS 7.2
IP hostName
- 192.168.190.132 node132
- 192.168.190.139 node139
- 192.168.190.140 node140
RabbitMQ 相关端口
•4369 (epmd)
•5672, 5671 (AMQP 0-9-1 and 1.0 without and with TLS)
•25672. This port used by Erlang distribution for inter-node and CLI tools communication and is allocated from a dynamic range (limited to a single port by default, computed as AMQP port + 20000). Seenetworking guide for details.
•15672 (if management plugin is enabled)
•61613, 61614 (if STOMP is enabled)
•1883, 8883 (if MQTT is enabled)
相应端口开启防火墙设置
添加 EPEL 源
[root@node139 ~]# rpm -Uvh https://dl.Fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
Retrieving https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
warning: /var/tmp/rpm-tmp.2hDPSr: Header V3 RSA/SHA256 Signature, key ID 352c64e5: NOKEY
Preparing… ################################# [100%]
Updating / installing…
1:epel-release-7-8 ################################# [100%]
添加 Erlang 源
[root@node139 ~]# rpm -Uvh http://packages.erlang-solutions.com/erlang-solutions-1.0-1.noarch.rpm
Retrieving http://packages.erlang-solutions.com/erlang-solutions-1.0-1.noarch.rpm
Preparing… ################################# [100%]
Updating / installing…
1:erlang-solutions-1.0-1 ################################# [100%]
–2016-11-29 06:34:38– http://packages.erlang-solutions.com/rpm/centos/erlang_solutions.repo
Resolving packages.erlang-solutions.com (packages.erlang-solutions.com)… 31.172.186.53
Connecting to packages.erlang-solutions.com (packages.erlang-solutions.com)|31.172.186.53|:80… connected.
HTTP request sent, awaiting response… 200 OK
Length: 245
Saving to: ‘erlang_solutions.repo’
100%[==========================================================================>] 245 –.-K/s in 0s
2016-11-29 06:34:39 (27.5 MB/s) – ‘erlang_solutions.repo’ saved [245/245]
安装 RabbitMQ
软件版本:http://www.rabbitmq.com/releases/rabbitmq-server
[root@node139 ~]# wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.6.6/rabbitmq-server-3.6.6-1.el7.noarch.rpm
[root@node139 ~]# rpm –import https://www.rabbitmq.com/rabbitmq-signing-key-public.asc
[root@node139 ~]# yum install rabbitmq-server-3.6.6-1.el7.noarch.rpm
启动服务
[root@node139 ~]# systemctl enable rabbitmq-server.service
[root@node139 ~]# systemctl start rabbitmq-server.service
启用 RabbitMQ 监控插件
[root@node139 ~]# rabbitmq-plugins enable rabbitmq_management
The following plugins have been enabled:
mochiweb
webmachine
rabbitmq_web_dispatch
amqp_client
rabbitmq_management_agent
rabbitmq_management
Applying plugin configuration to rabbit@node139… started 6 plugins.
[root@node139 ~]# netstat -apn | grep 15672
tcp 0 0 0.0.0.0:15672 0.0.0.0:* LISTEN 4119/beam.smp
RabbitMQ 用户管理
添加用户(用户名 root,密码 admin)
[root@node139 ~]# rabbitmqctl add_user admin admin
设置用户角色(设置 admin 用户为管理员角色)
[root@node139 ~]# rabbitmqctl set_user_tags admin administrator
Setting tags for user “admin” to [administrator] …
设置用户权限(设置 admin 用户配置、写、读的权限)
[root@node139 ~]# rabbitmqctl set_permissions -p / admin “.*” “.*” “.*”
Setting permissions for user “admin” in vhost “/” …
删除用户(删除 guest 用户)
[root@node139 ~]# rabbitmqctl delete_user guest
RabbitMQ 集群配置
集群配置在单机配置完成的基础上进行
以下以 node140 为例,node132 需要做同样的操作
•添加 /etc/hosts 条目
在 node132、node139、node140 里的 /etc/hosts 文件中分别添加:
192.168.190.132 node132
192.168.190.139 node139
192.168.190.140 node140
•设置每个节点 Cookie
Rabbitmq 的集群是依赖于 erlang 的集群来工作的,所以必须先构建起 erlang 的集群环境。Erlang 的集群中各节点是通过一个 magic cookie 来实现的,这个 cookie 存放在 /var/lib/rabbitmq/.erlang.cookie 中,文件是 400 的权限。所以必须保证各节点 cookie 保持一致,否则节点之间就无法通信
[root@node140 /]# echo -n “AZVOCZYZZBVFLBPTBXU” > /var/lib/rabbitmq/.erlang.cookie
[root@node140 ~]# chown rabbitmq:root /var/lib/rabbitmq/.erlang.cookie
[root@node140 /]# chmod 600 /var/lib/rabbitmq/.erlang.cookie
[root@node140 /]# cat /var/lib/rabbitmq/.erlang.cookie
AZVOCZYZZBVFLBPTBXU
启动服务
[root@node140 ~]# systemctl start rabbitmq-server.service
[root@node140 ~]# rabbitmq-server -detached
开通防火墙
[root@node140 ~]# firewall-cmd –permanent –add-port={4369/tcp,25672/tcp}
success
[root@node140 ~]# firewall-cmd –reload
success
•加入集群
默认是磁盘节点,如果是内存节点的话,需要加 –ram 参数
[root@node140 ~]# rabbitmqctl stop_app
Stopping node rabbit@node140 …
[root@node140 ~]# rabbitmqctl join_cluster rabbit@node139
Clustering node rabbit@node140 with rabbit@node139 …
[root@node140 ~]# rabbitmqctl start_app
Starting node rabbit@node140 …
•设置镜像策略
[root@node140 ~]# rabbitmqctl set_policy ha-all “^” ‘{“ha-mode”:”all”,”ha-sync-mode”:”automatic”}’
Setting policy “ha-all” for pattern “^” to “{\”ha-mode\”:\”all\”,\”ha-sync-mode\”:\”automatic\”}” with priority “0” …
启用 RabbitMQ 监控插件
cluster 搭建起来后若在 web 管理工具中 rabbitmq_management 的 Overview 的 Nodes 部分看到 ”Node statistics not available” 的信息,说明在该节点上 web 管理插件还未启用。
[root@node140 ~]# rabbitmq-plugins enable rabbitmq_management
集群配置好后,可以在 RabbitMQ 任意节点上执行下面的命令来查看是否集群配置成功。
[root@node140 ~]# rabbitmqctl cluster_status
其它节点需要做同样的操作
登录站点 http://192.168.190.139:15672/
参考网址:http://www.rabbitmq.com/clustering.html
安装中遇到的问题:
这个 /var/lib/rabbitmq/.erlang.cookie 文件需要修改文件所有者和文件的权限为 rw,否则 rabbitmq 服务无法启动;
CentOS 5.6 安装 RabbitMQ http://www.linuxidc.com/Linux/2013-02/79508.htm
RabbitMQ 客户端 C ++ 安装详细记录 http://www.linuxidc.com/Linux/2012-02/53521.htm
用 Python 尝试 RabbitMQ http://www.linuxidc.com/Linux/2011-12/50653.htm
RabbitMQ 集群环境生产实例部署 http://www.linuxidc.com/Linux/2012-10/72720.htm
CentOS7 环境安装使用专业的消息队列产品 RabbitMQ http://www.linuxidc.com/Linux/2016-11/13673.htm
在 CentOS 上安装 RabbitMQ 流程 http://www.linuxidc.com/Linux/2011-12/49610.htm
RabbitMQ 概念及环境搭建 http://www.linuxidc.com/Linux/2014-12/110449.htm
RabbitMQ 入门教程 http://www.linuxidc.com/Linux/2015-02/113983.htm
RabbitMQ 的详细介绍 :请点这里
RabbitMQ 的下载地址 :请点这里
本文永久更新链接地址 :http://www.linuxidc.com/Linux/2016-12/137812.htm