返回

快速搭建 RocketMQ 服务:docker-compose 一键部署指南

后端

前言

RocketMQ 是一个分布式消息队列系统,具有高可用性、可扩展性、可靠性和低延迟等特点。它广泛应用于电子商务、金融、物流、制造等各个领域。Docker Compose 是一个用于定义和运行多容器 Docker 应用程序的工具,它可以帮助我们轻松地搭建 RocketMQ 服务。

本文将介绍如何使用 docker-compose 快速搭建 RocketMQ 服务。我们首先需要下载官方源码,然后创建 Dockerfile 文件和 mqbroker-customize 脚本,再构建 RocketMQ 镜像,最后启动 RocketMQ 服务。本文将详细介绍每个步骤,并提供详细的配置说明和示例代码。

下载官方源码

首先,我们需要下载 RocketMQ 的官方源码。我们可以从 Apache RocketMQ 的官方网站下载源码,也可以使用 Git 命令从 GitHub 上克隆源码。本文采用 version 4.9.2 版本作为示例。

git clone https://github.com/apache/rocketmq.git

创建 Dockerfile 文件

接下来,我们需要创建一个 Dockerfile 文件来构建 RocketMQ 镜像。Dockerfile 文件是一个文本文件,它包含了构建镜像的指令。我们可以使用以下内容创建 Dockerfile 文件:

FROM openjdk:8u192-jdk-alpine3.15
RUN mkdir /opt/rocketmq
COPY . /opt/rocketmq
WORKDIR /opt/rocketmq
RUN chmod +x mqbroker/bin/*.sh
CMD ["/opt/rocketmq/mqbroker/bin/mqbroker", "-n", "-c", "/opt/rocketmq/conf/broker.conf"]

Dockerfile 文件的第一行指定了基础镜像,我们使用 openjdk:8u192-jdk-alpine3.15 作为基础镜像。第二行创建了 /opt/rocketmq 目录,第三行将 RocketMQ 源码复制到 /opt/rocketmq 目录。第四行将工作目录设置为 /opt/rocketmq。第五行授予 mqbroker/bin/*.sh 文件可执行权限。最后一行指定了容器启动时要运行的命令,我们使用 /opt/rocketmq/mqbroker/bin/mqbroker -n -c /opt/rocketmq/conf/broker.conf 命令启动 RocketMQ 服务。

编写 mqbroker-customize 脚本

接下来,我们需要编写一个 mqbroker-customize 脚本。mqbroker-customize 脚本是一个 Bash 脚本,它将在构建 RocketMQ 镜像时执行。我们可以使用以下内容创建 mqbroker-customize 脚本:

#!/bin/bash

# 修改 RocketMQ 的配置文件

sed -i 's/brokerClusterName = DefaultCluster/brokerClusterName = my-cluster/g' /opt/rocketmq/conf/broker.conf

# 修改 RocketMQ 的日志文件路径

sed -i 's/storePathRootDir = ..\/store/storePathRootDir = \/data\/store/g' /opt/rocketmq/conf/broker.conf

# 修改 RocketMQ 的端口号

sed -i 's/listenPort = 10911/listenPort = 10912/g' /opt/rocketmq/conf/broker.conf

mqbroker-customize 脚本的第一行指定了脚本的解释器,我们使用 /bin/bash。第二行修改了 RocketMQ 的配置文件,将 brokerClusterName 的值修改为 my-cluster。第三行修改了 RocketMQ 的日志文件路径,将 storePathRootDir 的值修改为 /data/store。第四行修改了 RocketMQ 的端口号,将 listenPort 的值修改为 10912。

构建 RocketMQ 镜像

接下来,我们需要构建 RocketMQ 镜像。我们可以使用以下命令构建 RocketMQ 镜像:

docker build -t rocketmq:4.9.2 -f Dockerfile .

docker build 命令用于构建镜像,-t 选项指定了镜像的名称和版本,-f 选项指定了 Dockerfile 文件的路径。

启动 RocketMQ 服务

最后,我们需要启动 RocketMQ 服务。我们可以使用以下命令启动 RocketMQ 服务:

docker-compose up -d

docker-compose up -d 命令用于启动 docker-compose.yml 文件中定义的服务,-d 选项表示在后台启动服务。

验证 RocketMQ 服务

我们可以使用以下命令验证 RocketMQ 服务是否启动成功:

docker ps

docker ps 命令用于列出正在运行的容器,我们可以看到 RocketMQ 容器正在运行。

我们还可以使用以下命令检查 RocketMQ 服务的日志:

docker logs -f rocketmq

docker logs -f rocketmq 命令用于实时查看 RocketMQ 服务的日志。

总结

本文介绍了如何使用 docker-compose 快速搭建 RocketMQ 服务。我们首先需要下载官方源码,然后创建 Dockerfile 文件和 mqbroker-customize 脚本,再构建 RocketMQ 镜像,最后启动 RocketMQ 服务。本文还提供了详细的配置说明和示例代码。希望本文能够帮助读者快速搭建 RocketMQ 服务,并学习 RocketMQ 的部署和使用。