## Docker 部署 RocketMQ### 简介RocketMQ 是一个开源的分布式消息和流数据平台,具有低延迟、高性能和高可靠性的特点。使用 Docker 部署 RocketMQ 可以简化安装配置过程,提高部署效率和可移植性。### 准备工作1.
安装 Docker 和 Docker Compose:
确保你的机器上已经安装了 Docker 和 Docker Compose。 你可以参考官方文档进行安装:
[Docker 安装](https://docs.docker.com/get-docker/)
[Docker Compose 安装](https://docs.docker.com/compose/install/) 2.
获取 RocketMQ 镜像:
你可以选择从 Docker Hub 拉取官方镜像,或者自行构建镜像。
拉取官方镜像:
```bashdocker pull rocketmqinc/rocketmq:4.9.3```
自行构建镜像 (可选):
1. 下载 RocketMQ 源码: https://github.com/apache/rocketmq2. 进入源码目录,根据实际需求修改 Dockerfile3. 构建镜像:```bashdocker build -t rocketmq:latest .```### 部署步骤1.
创建 `docker-compose.yml` 文件:
```yamlversion: '3.7'services:namesrv:image: rocketmqinc/rocketmq:4.9.3container_name: rocketmq-namesrvports:- "9876:9876"environment:- "JAVA_OPT_EXT=-server -Xms128m -Xmx512m -Xmn256m"networks:- rocketmq-netbroker:image: rocketmqinc/rocketmq:4.9.3container_name: rocketmq-brokerports:- "10911:10911"- "10909:10909"depends_on:- namesrvenvironment:- "JAVA_OPT_EXT=-server -Xms128m -Xmx512m -Xmn256m"- "NAMESRV_ADDR=namesrv:9876"- "BROKER_IP=192.168.0.100" # 替换为你的主机IPvolumes:- ./data/broker:/opt/rocketmq-4.9.3/storenetworks:- rocketmq-netnetworks:rocketmq-net:driver: bridge```
说明:
`namesrv`: NameServer 服务
`ports`: 暴露 9876 端口,用于客户端连接
`environment`: 设置 JVM 参数
`broker`: Broker 服务
`ports`: 暴露 10911 (与生产者/消费者通信) 和 10909 (主从同步) 端口
`depends_on`: 依赖 NameServer 启动
`environment`:
设置 JVM 参数
`NAMESRV_ADDR`: 设置 NameServer 地址
`BROKER_IP`:
重要!
必须设置为
主机IP地址
,否则无法连接 Broker
`volumes`: 将 Broker 数据持久化到宿主机目录
`networks`: 定义 Docker 网络,用于服务间通信2.
启动 RocketMQ:
```bashdocker-compose up -d```3.
验证部署:
查看容器运行状态:```bashdocker ps```
使用 RocketMQ 客户端测试连接和发送消息### 高级配置 (可选)
集群部署:
修改 `docker-compose.yml` 文件,添加多个 Broker 节点,并配置主从同步。
持久化存储:
将 Broker 数据存储到外部存储服务,如 NFS 或 Ceph。
监控和日志:
集成 Prometheus 和 Grafana 等工具进行监控和日志管理。### 总结使用 Docker 部署 RocketMQ 可以快速搭建消息队列服务,并且方便进行扩展和管理。 你可以根据实际需求调整配置,构建高可用、高性能的消息队列平台。
Docker 部署 RocketMQ
简介RocketMQ 是一个开源的分布式消息和流数据平台,具有低延迟、高性能和高可靠性的特点。使用 Docker 部署 RocketMQ 可以简化安装配置过程,提高部署效率和可移植性。
准备工作1. **安装 Docker 和 Docker Compose:** 确保你的机器上已经安装了 Docker 和 Docker Compose。 你可以参考官方文档进行安装:* [Docker 安装](https://docs.docker.com/get-docker/)* [Docker Compose 安装](https://docs.docker.com/compose/install/) 2. **获取 RocketMQ 镜像:** 你可以选择从 Docker Hub 拉取官方镜像,或者自行构建镜像。* **拉取官方镜像:** ```bashdocker pull rocketmqinc/rocketmq:4.9.3```* **自行构建镜像 (可选):** 1. 下载 RocketMQ 源码: https://github.com/apache/rocketmq2. 进入源码目录,根据实际需求修改 Dockerfile3. 构建镜像:```bashdocker build -t rocketmq:latest .```
部署步骤1. **创建 `docker-compose.yml` 文件:**```yamlversion: '3.7'services:namesrv:image: rocketmqinc/rocketmq:4.9.3container_name: rocketmq-namesrvports:- "9876:9876"environment:- "JAVA_OPT_EXT=-server -Xms128m -Xmx512m -Xmn256m"networks:- rocketmq-netbroker:image: rocketmqinc/rocketmq:4.9.3container_name: rocketmq-brokerports:- "10911:10911"- "10909:10909"depends_on:- namesrvenvironment:- "JAVA_OPT_EXT=-server -Xms128m -Xmx512m -Xmn256m"- "NAMESRV_ADDR=namesrv:9876"- "BROKER_IP=192.168.0.100"
替换为你的主机IPvolumes:- ./data/broker:/opt/rocketmq-4.9.3/storenetworks:- rocketmq-netnetworks:rocketmq-net:driver: bridge```**说明:*** `namesrv`: NameServer 服务* `ports`: 暴露 9876 端口,用于客户端连接* `environment`: 设置 JVM 参数* `broker`: Broker 服务* `ports`: 暴露 10911 (与生产者/消费者通信) 和 10909 (主从同步) 端口* `depends_on`: 依赖 NameServer 启动* `environment`: * 设置 JVM 参数* `NAMESRV_ADDR`: 设置 NameServer 地址* `BROKER_IP`: **重要!** 必须设置为**主机IP地址**,否则无法连接 Broker* `volumes`: 将 Broker 数据持久化到宿主机目录* `networks`: 定义 Docker 网络,用于服务间通信2. **启动 RocketMQ:**```bashdocker-compose up -d```3. **验证部署:*** 查看容器运行状态:```bashdocker ps```* 使用 RocketMQ 客户端测试连接和发送消息
高级配置 (可选)* **集群部署:** 修改 `docker-compose.yml` 文件,添加多个 Broker 节点,并配置主从同步。 * **持久化存储:** 将 Broker 数据存储到外部存储服务,如 NFS 或 Ceph。 * **监控和日志:** 集成 Prometheus 和 Grafana 等工具进行监控和日志管理。
总结使用 Docker 部署 RocketMQ 可以快速搭建消息队列服务,并且方便进行扩展和管理。 你可以根据实际需求调整配置,构建高可用、高性能的消息队列平台。