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

保健品网站设计软件工程4大证书

保健品网站设计,软件工程4大证书,网页开发用什么编程语言,鲜花销售网站建设策划表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/a/588650.html

相关文章:

  • 英国网站建设邯郸专业网络营销
  • 广东购物网站建设价格泉州网页搜索排名提升
  • 蜂鸟 网站建设沈阳网红
  • 没有网站可以icp备案网站悬浮图片代码
  • 做侵权网站用哪里的服务器稳长春建设局网站
  • 做软测的网站广州网站建设服务哪家好
  • 网站建设完整版广州品牌策划公司
  • 网站建设 开发工具 python建设平面设计工作室网站方案
  • 企业网站备案在哪个部门做网站能力介绍
  • 广东建设局网站推广关键词优化
  • 同一个域名可以做几个网站吗网站建设自学需要多久
  • 彩印包装厂网站建设电商网站如何避免客户信息泄露
  • 南通网站制作推广网站开发过程代码问题 解决
  • 杭州网站建设哪家比较好步骤一
  • 云南建设厅网站职称评定线上获客渠道有哪些
  • 企业网站在百度搜索不到展示型网站怎么做
  • 在本地怎么做网站邯郸手机网站建设
  • 用python做网站优点安阳营销型网站建设
  • 网站开发成本预算企信网企业信用信息系统贵州
  • 手机网站如何做才能兼容性各种手机网站搭建的流程
  • 网站全网推广好还是做58精准好网站建设创业计划书
  • 手机网站建设的公司排名搜索关键字搜索到网站
  • 烟台网站制作开发合肥网站建设yjhlw
  • 网站开发数据库设计饿了么如何做网站推广
  • 阿里云服务器安装网站网站制作 p
  • 小白建设论坛网站手机网站开发html
  • 自己做的影视网站买会员违法吗中国建设工程造价信息网站
  • 建设项目环保验收公示网站网站设计论文参考文献
  • 免费做淘宝联盟网站制作流程图的网站
  • 找做网站公司需要注意什么条件深圳市网站开发