rabbitmq部署 从单节点到集群,到镜像
想搭建镜像,也需要从单节点一步步往下,按顺序执行,应该不会有什么问题
准备工作:
1、设置主机名(根据自己主机的情况设置,主机名不能有.)
hostnamectl set-hostname node01 ### 节点01
hostnamectl set-hostname node02 ### 节点02
hostnamectl --pretty
hostnamectl --static
hostnamectl --transient
2、相关软件
otp_src_22.1.tar.gz (erlang)
rabbitmq-server-3.8.1-1.el7.noarch.rpm
csdn下载
https://download.csdn.net/download/qq_38263123/12011605
百度云链接:https://pan.baidu.com/s/1K5gHF_9T9TI1LeJ2xuOfNw
提取码:7rwu
\单节点部署:
1、安装依赖软件(安装前可检查是否已存在,存在则无需安装)
rpm -qa | grep gcc ### 查看gcc是否存在
yum install gcc gcc-c++ autoconf ncurses-devel openssl-devel socat net-tools ### 联网的情况下安装,否则需要下载相关软件进行安装
2、安装erlang
tar -xvf otp_src_22.1.tar.gz
cd otp_src_22.1
./configure
make && make install
3、设置环境变量
vi /etc/profile
export ERLANG_HOME=/usr/local/lib/erlang
export PATH=$PATH:$ERLANG_HOME/bin
source /etc/profile ### 环境变量生效
erl ## 测试erlang
4、安装rabbitmq
rpm -ivh --nodeps rabbitmq-server-3.8.1-1.el7.noarch.rpm
5、在节点上启动rabbit
systemctl start rabbitmq-server.service
6、启动RabbitMQWeb管理插件
rabbitmq-plugins enable rabbitmq_management
可通过浏览器访问http://192.168.153.2:15672或者http://192.168.153.3:15672
集群创建
1、设置各节点hosts文件(注意ip和主机名匹配)
vi /etc/hosts
192.168.153.2 node01
192.168.153.3 node02
2、将node01中的/var/lib/rabbitmq/.erlang.cookie文件拷贝到node02,重启各基点rabbit服务
scp root@192.168.153.2:/var/lib/rabbitmq/.erlang.cookie /var/lib/rabbitmq/.erlang.cookie
systemctl restart rabbitmq-server.service ### 重启服务
网上方法:
在复制的时候需要临时修改cookie文件的权限:
chmod 777 /var/lib/rabbitmq/.erlang.cookie
拷贝完毕后再把权限修改回来:
chmod 400 /var/lib/rabbitmq/.erlang.cookie
个人实际好像没有操作这一步?最后也成功了,不知道为什么要这样
3、将node02添加到集群
(1)rabbitmqctl stop_app
如果报错,权限问题:
02:51:59.717 [error] Error when reading /var/lib/rabbitmq/.erlang.cookie: eacces
解决方法:
chown rabbitmq:rabbitmq /var/lib/rabbitmq/.erlang.cookie
(2)rabbitmqctl join_cluster --ram rabbit@node01
(3)rabbitmqctl start_app
3、设置镜像策略(选择任一节点操作即可)
rabbitmqctl set_policy ha-all "^" '{"ha-mode":"all"}'
rabbitmq集群节点操作
节点恢复过程中把数据删掉很重要,恢复一单结点,再清数据
节点增加:
1. rabbitmq-server -detached --- .erlang.cooike的权限,400 属主rabbitmq
2. rabbitmqctl stop_app
3. rabbitmqctl join_cluster --ram rabbit@node01 ### 添加内存节点
4. rabbitmqctl start_app
5. rabbitmqctl cluster_status
节点删除
1. rabbitmq-server -detached
以上为基础,正常运行的mq节点直接进行2、3两步;4可省略或更改为rabbitmqctl stop
2. rabbitmqctl stop_app
3. rabbitmqctl reset
4. rabbitmqctl start_app
硬删除:
直接删掉集群中的某个节点:
rabbitmqctl forget_cluster_node node_name
rabbitmqctl list_vhosts
创建用户、资源以及分配操作权限
配置——>进入容器:docker container exec -it myrabbit /bin/bash
新增用户:rabbitmqctl add_user xxx(账号) xxx(密码)
查看用户:rabbitmqctl list_users
设置管理员:rabbitmqctl set_user_tags xxx(账号) administrator(权限)
添加虚拟环境:rabbitmqctl add_vhost xxx(名称)
查看:rabbitmqctl list_vhosts
设置权限:给这个用户所有权限:rabbitmqctl set_permissions -p xxx(账号) xxx(密码) ".*" ".*" ".*"
到这里 搭建完集群,建好账号,设置好权限,相信集群已经完成搭建了:
那么如何使用python+RabbitMQ 呢?
官方文档:
https://www.rabbitmq.com/getstarted.html
RabbitMQ 支持(以下是官方入门"第一课"文档链接,照着来就能跑起来)
————————————————
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/qq_38263123/article/details/103365238
· 全网最简单!3分钟用满血DeepSeek R1开发一款AI智能客服,零代码轻松接入微信、公众号、小程
· .NET 10 首个预览版发布,跨平台开发与性能全面提升
· 《HelloGitHub》第 107 期
· 全程使用 AI 从 0 到 1 写了个小工具
· 从文本到图像:SSE 如何助力 AI 内容实时呈现?(Typescript篇)
2022-09-30 docker 清理缓存、日志、无用的镜像
2022-09-30 Notes003:简洁Go ssh git仓库自动部署CICD
2021-09-30 go调试输出