当前位置: 首页 > wzjs >正文

怎样通过阿里云建设网站网站seo优化外包顾问

怎样通过阿里云建设网站,网站seo优化外包顾问,上海东道设计,跨境电商定制平台Docker 搭建 RabbitMQ 前言一、准备工作二、设置目录结构三、编写启动脚本四、Host 网络模式 vs Port 映射模式1. Host 网络模式2. Port 映射模式 五、端口配置对比六、配置示例七、查看与管理八、扩展与高可用九、常用命令 前言 在现代微服务与分布式架构中,Rabbi…

Docker 搭建 RabbitMQ

  • 前言
  • 一、准备工作
  • 二、设置目录结构
  • 三、编写启动脚本
  • 四、Host 网络模式 vs Port 映射模式
    • 1. Host 网络模式
    • 2. Port 映射模式
  • 五、端口配置对比
  • 六、配置示例
  • 七、查看与管理
  • 八、扩展与高可用
  • 九、常用命令


前言

在现代微服务与分布式架构中,RabbitMQ 是一款成熟的开源消息队列中间件,提供了可靠的消息投递、丰富的路由策略和管理插件。通过 Docker 部署 RabbitMQ,可以快速搭建、轻松扩展,并与容器化平台无缝集成。

本文将指导你通过 Docker 快速搭建一个 RabbitMQ 环境,讲解目录结构、启动脚本编写、参数详解,以及两种网络模式(Host 网络模式 vs Port 映射模式)的部署示例与对比。


一、准备工作

首先,确保你的系统上已经安装了 Docker。

Linux上进行Docker安装有两种方式:

  1. Docker自动化安装
  2. Docker手动安装

可以根据该文章的步骤进行安装:https://blog.csdn.net/weixin_44876263/article/details/136714078?spm=1001.2014.3001.5502

二、设置目录结构

为了持久化存储日志、数据和配置,需要在宿主机上创建对应目录,并赋予 RabbitMQ 容器内部用户(UID 999)的写权限。

# 创建日志、数据和配置目录
mkdir -p "$DIR/rabbitmq/log"
mkdir -p "$DIR/rabbitmq/data"
mkdir -p "$DIR/rabbitmq/conf"# 设置目录权限为容器内 rabbitmq 用户(UID 999)
sudo chown -R 999:999 \"$DIR/rabbitmq/log" \"$DIR/rabbitmq/data" \"$DIR/rabbitmq/conf"
  • log:存放 RabbitMQ 日志

  • data:存放 Mnesia 数据库文件

  • conf:存放自定义配置(如 rabbitmq.conf、advanced.config、enabled_plugins)

三、编写启动脚本

将目录准备工作与容器运行命令整合到脚本 rabbitmq_install.sh 中,方便一键部署与更新。

#!/bin/bash# 安装路径与容器名称
DIR="/opt/docker/demo"
DOCKER_NAME="docker-rabbitmq"# 创建目录并设置权限
mkdir -p "$DIR/rabbitmq/log"
mkdir -p "$DIR/rabbitmq/data"
mkdir -p "$DIR/rabbitmq/conf"sudo chown -R 999:999 "$DIR/rabbitmq/log" \"$DIR/rabbitmq/data" \"$DIR/rabbitmq/conf"# 运行 RabbitMQ 容器(Host 网络模式)
docker run -d \--restart=always \                          # 容器重启策略--name "$DOCKER_NAME" \                     # 容器名称--network host \                            # 主机网络模式-v "$DIR/rabbitmq/log:/var/log/rabbitmq" \  # 日志挂载-v "$DIR/rabbitmq/data:/var/lib/rabbitmq/mnesia" \  # 数据挂载-v "$DIR/rabbitmq/conf:/etc/rabbitmq" \     # 配置挂载-e RABBITMQ_DEFAULT_USER=admin \            # 默认用户名-e RABBITMQ_DEFAULT_PASS=admin123456 \      # 默认密码-e RABBITMQ_ENABLED_PLUGINS="rabbitmq_management" \ # 启用管理插件rabbitmq:management                         # 官方管理版镜像

保存后,赋予执行权限并运行:

chmod +x run_rabbitmq.sh
./run_rabbitmq.sh

解释各个参数

  • -d:后台运行容器。
  • --restart=always:重启策略:当容器退出或 Docker 重启时,总是自动重启该容器。
  • --name "$DOCKER_NAME":容器的名称为 docker-rabbitmq
  • --network host:使用主机网络模式(Host networking),容器与宿主机共享网络栈。
  • -v "$DIR/rabbitmq/log:/var/log/rabbitmq":日志挂载
  • -v "$DIR/rabbitmq/data:/var/lib/rabbitmq/mnesia": 数据挂载。
  • -v "$DIR/rabbitmq/conf:/etc/rabbitmq":配置挂载。
  • -e RABBITMQ_DEFAULT_USER=…:环境变量,设置 RabbitMQ 默认用户名(第一次启动时生效)。
  • -e RABBITMQ_DEFAULT_PASS=…:环境变量,设置 RabbitMQ 默认密码。
  • -e RABBITMQ_ENABLED_PLUGINS=…:环境变量,启用指定插件(以逗号分隔),此处开启管理控制台插件。
  • rabbitmq:management:指定镜像及标签,management 版本内置了管理插件与 Web 控制台。

四、Host 网络模式 vs Port 映射模式

1. Host 网络模式

  • 命令示例

    docker run -d \--restart=always \--name "$DOCKER_NAME" \--network host \-v "$DIR/rabbitmq/log:/var/log/rabbitmq" \-v "$DIR/rabbitmq/data:/var/lib/rabbitmq/mnesia" \-v "$DIR/rabbitmq/conf:/etc/rabbitmq" \-e RABBITMQ_DEFAULT_USER=admin \-e RABBITMQ_DEFAULT_PASS=admin123456 \-e RABBITMQ_ENABLED_PLUGINS="rabbitmq_management" \rabbitmq:management
    
  • 特点

    • 容器直接使用宿主机的网络栈,RabbitMQ 内部监听的端口(默认 5672、15672)会直接映射到宿主机相同端口。

    • 网络性能最佳,无额外的 NAT 转发开销。

  • 优点

    • 简化网络配置,无需额外的 -p 端口映射。

    • 延迟更低,吞吐更高。

  • 缺点

    • 与宿主机完全共享端口,若宿主机已有同端口服务运行,会冲突。

    • 安全隔离较弱,容器网络直接暴露给宿主机。

2. Port 映射模式

  • 命令示例

    docker run -d \--restart=always \--name "$DOCKER_NAME" \-p 5673:5672 \-p 15673:15672 \-v "$DIR/rabbitmq/log:/var/log/rabbitmq" \-v "$DIR/rabbitmq/data:/var/lib/rabbitmq/mnesia" \-v "$DIR/rabbitmq/conf:/etc/rabbitmq" \-e RABBITMQ_DEFAULT_USER=admin \-e RABBITMQ_DEFAULT_PASS=admin123456 \-e RABBITMQ_ENABLED_PLUGINS="rabbitmq_management" \rabbitmq:management
    
  • 含义

    • -p 5673:5672:将宿主机的 5673 端口映射到容器内的 5672(AMQP)端口。

    • -p 15673:15672:将宿主机的 15673 端口映射到容器内的 15672(管理控制台)端口。

  • 优点

    • 灵活指定宿主机端口,避免与其他服务冲突。

    • 容器网络与宿主机隔离更好,安全性更高。

  • 缺点

    • 相比 Host 模式,略有端口转发开销。

    • 需手动管理多端口映射配置。

五、端口配置对比

特性Host 网络模式Port 映射模式
配置命令--network host-p host:container
网络性能最佳,无 NAT 转发开销有少量转发开销
端口冲突风险高,容器直接占用宿主机端口低,可自定义宿主机端口
安全隔离较弱较强
多容器端口复用不支持支持,不同容器映射到不同端口
配置复杂度简单需要显式映射

六、配置示例

  1. rabbitmq.conf(放置于 $DIR/rabbitmq/conf/rabbitmq.conf)

    # 修改 AMQP 端口
    listeners.tcp.default = 5673  # 修改为你想要的端口# 修改 RabbitMQ 管理界面端口
    management.listener.port = 15673  # 修改为你想要的端口# 允许非本地访问 guest 用户
    loopback_users.guest = false
    
  2. enabled_plugins(放置于 $DIR/rabbitmq/conf/enabled_plugins)

    [rabbitmq_management,rabbitmq_peer_discovery_classic_config].
    

七、查看与管理

  • 查看容器状态

    docker ps | grep "$DOCKER_NAME"
    
  • 查看日志

    tail -f "$DIR/rabbitmq/log/rabbit@$(hostname).log"或docker logs -f $DOCKER_NAME
    
  • 访问管理控制台

    浏览器访问 http://<宿主机IP>:15672,使用 admin/admin123456 登录。
    在这里插入图片描述

八、扩展与高可用

  1. 集群部署

    • 在多台主机上运行相同脚本,调整容器名称与配置

    • 使用 rabbitmq_peer_discovery_classic_config 或 Kubernetes 插件实现自动发现与集群组网

  2. 镜像队列与策略

    • 在管理控制台或配置文件中设置队列镜像策略,确保消息持久化与高可用
  3. 监控与告警

    • 接入 Prometheus、Grafana 等监控体系,利用 RabbitMQ Exporter 采集指标

九、常用命令

  • 修改默认密码

    如果需要修改 RabbitMQ 的默认密码,可以使用以下命令:

    docker exec -it "$DOCKER_NAME" rabbitmqctl change_password admin newpassword
    

    请将 newpassword 替换为希望设置的新密码。

  • 启用其他插件

    如果需要启用其他 RabbitMQ 插件,可以使用以下命令:

    docker exec -it "$DOCKER_NAME" rabbitmq-plugins enable <plugin_name>
    

    请将 <plugin_name> 替换为希望启用的插件名称。

http://www.dtcms.com/wzjs/292434.html

相关文章:

  • 网站如何做reference关键词优化收费标准
  • 许昌小学网站建设专业营销团队公司
  • 汇鑫小学网站建设百度公司
  • 电子商城app湘潭网站seo磐石网络
  • 50m专线做视频网站优秀网页设计
  • ae模板精品站网络营销专业学什么
  • 日本做头像的网站有哪些深圳网站开发公司
  • 高校网站建设方案房地产营销策略有哪些
  • 商务部建设司 网站鸡西seo
  • 2018年做网站还能搜索引擎营销案例分析
  • 泰兴网站建设seo教程网站优化
  • java做网站的职业中国建设网官方网站
  • 网站建设收费明细海外seo
  • 体育评论做的好的网站定制营销型网站建设
  • 安徽建设网官方网站竞价代运营外包公司
  • 微信高端网站建设怎样推广
  • 重庆定制网站建设品牌网站建设
  • seo网站编辑是做什么的品牌广告图片
  • 杭州seo薪资水平seo岗位
  • 毕业设计(论文)-基于cms的校园网站建设b2b网站排名
  • 黑客网站免费网站百度seo排名规则
  • 莆田企业网站建设网站查询服务器
  • 手机网站模板免费下载江门网站优化公司
  • 最好的网站建设免费的无锡网站制作优化
  • 商城网站建设经验永久免费个人网站申请注册
  • 品牌建设与品牌价值北京网络优化推广公司
  • 小型网站建设公司价格日照seo公司
  • 做网站需要学习多久百度网盘app下载安装官方免费下载
  • 专业做俄语网站建设司怎么创建网站
  • 有没有专门做渔具的网站软文广告代理平台