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
win 安装 openclaw
本站点使用 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
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
PDF文档(打印)
分享
链接
类型
密码
更新密码