coldsmog运维笔记
Linux 中间件部署
升级MySQL至最新版本
Zabbix与Zabbix-agent2部署
Galera-Cluster-MySQL 部署
JDK8 部署
FastDFS 部署
MySQL 主从备搭建
RabbitMQ 部署
Redis 部署
Nginx 部署
Gitlab + Jenkins + Sonarqube 部署
Docker 部署
keepalive的安装
Gitlab-ce 部署
Graalvm 部署
Nacos 部署
Kafka 部署
PostgreSQL 部署
MongoDB 部署
Fizz网关搭建
Vue项目部署(Nginx)
CentOS 运维笔记
centos 添加自定义服务
Linux 系统挂载
MySQL命令行
故障排查
Docker 运维笔记
keepalived 配置笔记
win 编辑EFI
本文档使用 MrDoc 发布
-
+
首页
RabbitMQ 部署
## 1. 部署Erlang 1.1 RabbitMQ依赖于Erlang,版本对应请查看 [https://www.rabbitmq.com/which-erlang.html](https://www.rabbitmq.com/which-erlang.html) 1.2 下载安装Erlang ``` # 添加epel扩展源 yum install epel-release # 先删除可能存在的erlang(非必须) yum list erlang yum remove erl* # 清空和更新安装源(非必须) yum clean yum update # 参考 https://github.com/rabbitmq/erlang-rpm -> Erlang 21.x -> o use Erlang 21.x on CentOS 6 # 配置安装源 vim /etc/yum.repos.d/rabbitmq-erlang.repo [rabbitmq-erlang] name=rabbitmq-erlang baseurl=https://dl.bintray.com/rabbitmq-erlang/rpm/erlang/21/el/6 gpgcheck=1 gpgkey=https://dl.bintray.com/rabbitmq/Keys/rabbitmq-release-signing-key.asc repo_gpgcheck=0 enabled=0 # 安装 yum install erlang # 如果出现https://dl.bintray.com/rabbitmq-erlang/rpm/erlang/21/el/6/repodata/repomd.xml: [Errno 14] problem making ssl connection 悲伤,仓库过期了 # 到https://github.com/rabbitmq/erlang-rpm/releases下载(电脑龟速,夸克下载飞速) ``` 1.3 测试Erlang ``` # 查看版本 erl -v # 退出Erlang 注意尾部的 . halt(). ``` ## 2. 安装RabbitMQ 2.1 下载 npm 安装包: [rabbitmq-server-3.8.0-1.el6.noarch.rpm](https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.8.0/rabbitmq-server-3.8.0-1.el6.noarch.rpm) 2.3 创建rabbitmq目录并上传npm安装包 ``` cd /usr/local mkdir rabbitmq chmod 777 -R rabbitmq ``` 2.4 上传安装包至rabbitmq文件夹内 2.5 进入rabbitmq文件夹 下载签名并安装 ``` cd rabbitmq # 已有安装包时下载签名 rpm --import https://www.rabbitmq.com/rabbitmq-release-signing-key.asc # 安装 yum install rabbitmq-server-3.8.0-1.el6.noarch.rpm ``` 2.5 启动mq ``` # 添加开机启动RabbitMQ服务 chkconfig rabbitmq-server on # 手动启动服务 service rabbitmq-server start ``` 2.6 配置MQ ``` # 查看当前所有用户 rabbitmqctl list_users # 查看默认guest用户的权限 rabbitmqctl list_user_permissions guest # 由于RabbitMQ默认的账号用户名和密码都是guest。为了安全起见, 先删掉默认用户 rabbitmqctl delete_user guest # 添加新用户 rabbitmqctl add_user username password # 设置用户tag rabbitmqctl set_user_tags username administrator # 赋予用户默认vhost的全部操作权限 rabbitmqctl set_permissions -p / username ".*" ".*" ".*" # 查看用户的权限 rabbitmqctl list_user_permissions username ``` 2.7 添加插件 ``` # 添加web管理插件 rabbitmq-plugins enable rabbitmq_management # 添加移除异常消息的插件 rabbitmq-plugins enable rabbitmq_shovel rabbitmq_shovel_management # 下载延迟队列插件rabbitmq_delayed_message_exchange,得到ez文件 # mq插件位置/usr/lib/rabbitmq/lib/rabbitmq_server/plugins # 下载网站 https://www.rabbitmq.com/community-plugins.html rabbitmq-plugins enable rabbitmq_delayed_message_exchange # 添加成功后访问 http://ip地址:15672 ``` 2.8 编辑远程连接权限 ``` vim /etc/rabbitmq/rabbitmq.config ``` 2.9 追加以下内容,lucky为允许远程连接的用户 > [ > {rabbit, [{tcp_listeners, [5672]}, {loopback_users, ["username"]}]} > ]. 2.10 重启rabbitMQ ``` rabbitmqctl stop rabbitmq-server restart # 排查错误指令 systemctl status rabbitmq-server.service ``` 2.11 访问http://IP地址:15672 进行管理 ## 3.集群配置 3.1 Erlang通过erlang.cookie进行集群配置,配置RabbitMQ集群模式时需要各节点erlang.cookie内容一致 ``` # 修改服务器配置 (.erlang.cookie只读) vim /var/lib/rabbitmq/.erlang.cookie # 复制到其他节点 scp /var/lib/rabbitmq/.erlang.cookie root@10.104.132.37:/var/lib/rabbitmq/.erlang.cookie scp /var/lib/rabbitmq/.erlang.cookie root@10.104.132.209:/var/lib/rabbitmq/.erlang.cookie # 未获取root密码情况下 需要更改权限,记得改回来 chmod 777 /var/lib/rabbitmq/.erlang.cookie vim /var/lib/rabbitmq/.erlang.cookie # 将两文件修改成一致后,改回原权限 chmod 400 /var/lib/rabbitmq/.erlang.cookie ``` 3.2 使用 -detached 参数运行各节点 ``` rabbitmqctl stop rabbitmq-server -detached ``` 3.3 修改主机的hostname和hosts ``` # 将HOSTNAME=ttt6-node35 确保两个服务器不一致 vim /etc/sysconfig/network # 修改hosts vim /etc/hosts ``` hosts内容需要和hostname保持一致 :举例 ``` 10.104.132.35 ttt6-node35 10.104.114.116 ttt6-node116 ``` 3.4 重启时配置生效,大约需要两分钟 ``` reboot ``` 3.5 在从服务器上执行下列语句加入集群 ``` # 停止程序 rabbitmqctl stop_app # 加入到集群,默认为磁盘节点 # 加入为内存节点 加-ram参数 如:rabbitmqctl join_cluster --ram rabbit@ttt6-node35 rabbitmqctl join_cluster rabbit@ttt6-node35 rabbitmqctl start_app ``` **若出现 rabbitmqctl 指令执行不成功** 检查Erlang cookie hash值是否一致,不一致重复3.1,注意空行 若一致,则可能是插件或者rabbitmq本身未启动 ``` service rabbitmq-server start rabbitmqctl start_app ``` 3.6 查看集群搭建结果 ``` rabbitmqctl cluster_status ``` 3.7 配置镜像队列模式,即队列会被复制到各个节点,各个节点状态保持一致,高可用 ``` rabbitmqctl set_policy ha-all "^" '{"ha-mode":"all"}' ```
寒烟濡雨
2021年6月3日 00:52
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
关于 MrDoc
觅思文档MrDoc
是
州的先生
开发并开源的在线文档系统,其适合作为个人和小型团队的云笔记、文档和知识库管理工具。
如果觅思文档给你或你的团队带来了帮助,欢迎对作者进行一些打赏捐助,这将有力支持作者持续投入精力更新和维护觅思文档,感谢你的捐助!
>>>捐助鸣谢列表
微信
支付宝
QQ
PayPal
Markdown文件
分享
链接
类型
密码
更新密码