Loading... ### CentOS 部署 RocketMQ 指南 RocketMQ 是阿里巴巴开源的分布式消息中间件,具备高吞吐量、低延迟、高可用等特点,广泛应用于金融、电商等业务场景中。本文将详细介绍如何在 CentOS 上部署 RocketMQ,包括必要的环境配置和安装步骤。 ### 一、环境准备 在部署 RocketMQ 之前,需要确保 CentOS 系统已经准备好,并安装了必要的依赖项。本文以 CentOS 7 为例进行演示。 #### 1.1 系统要求 - CentOS 7 及以上版本 - 4GB 及以上内存(推荐 8GB) - JDK 1.8 及以上 #### 1.2 安装 JDK RocketMQ 依赖 Java 环境运行,因此首先要确保系统上安装了 JDK。可以通过以下命令安装 OpenJDK 1.8: ```bash sudo yum install java-1.8.0-openjdk -y ``` 安装完成后,验证 Java 是否安装成功: ```bash java -version ``` 输出类似以下内容表示安装成功: ```bash openjdk version "1.8.0_292" ``` ### 二、下载与安装 RocketMQ #### 2.1 下载 RocketMQ RocketMQ 官方提供了二进制发布包,可以通过 wget 命令直接下载最新版本的 RocketMQ。首先,进入你想要下载的目录,然后执行以下命令: ```bash wget https://archive.apache.org/dist/rocketmq/4.9.2/rocketmq-all-4.9.2-bin-release.zip ``` #### 2.2 解压文件 下载完成后,使用 unzip 工具解压文件。如果未安装 unzip 工具,可以先通过以下命令进行安装: ```bash sudo yum install unzip -y ``` 解压 RocketMQ 包: ```bash unzip rocketmq-all-4.9.2-bin-release.zip -d /opt/rocketmq ``` #### 2.3 配置环境变量 为了方便操作 RocketMQ,可以将其目录添加到系统环境变量中。编辑 `/etc/profile` 文件,加入以下内容: ```bash export ROCKETMQ_HOME=/opt/rocketmq/rocketmq-all-4.9.2 export PATH=$PATH:$ROCKETMQ_HOME/bin ``` 保存并执行以下命令使配置生效: ```bash source /etc/profile ``` ### 三、启动 RocketMQ RocketMQ 由两个核心组件组成:**NameServer** 和 **Broker**。NameServer 是用于管理 Broker 的服务注册中心,Broker 则负责消息的存储和转发。 #### 3.1 启动 NameServer 首先启动 NameServer: ```bash nohup sh $ROCKETMQ_HOME/bin/mqnamesrv & ``` 可以通过以下命令检查 NameServer 是否启动成功: ```bash tail -f $ROCKETMQ_HOME/logs/rocketmqlogs/namesrv.log ``` 如果看到 `The Name Server boot success` 字样,则表示启动成功。 #### 3.2 启动 Broker 在启动 NameServer 后,启动 Broker: ```bash nohup sh $ROCKETMQ_HOME/bin/mqbroker -n localhost:9876 & ``` 可以通过以下命令检查 Broker 是否启动成功: ```bash tail -f $ROCKETMQ_HOME/logs/rocketmqlogs/broker.log ``` 如果看到 `The broker[brokerName, 0.0.0.0:10911] boot success` 字样,表示 Broker 启动成功。 ### 四、验证 RocketMQ 部署 为了验证 RocketMQ 是否正常运行,可以使用 RocketMQ 提供的示例生产者和消费者进行测试。 #### 4.1 发送消息(生产者) 执行以下命令发送测试消息: ```bash sh $ROCKETMQ_HOME/bin/tools.sh org.apache.rocketmq.example.quickstart.Producer ``` #### 4.2 接收消息(消费者) 在另一个终端窗口中,执行以下命令接收消息: ```bash sh $ROCKETMQ_HOME/bin/tools.sh org.apache.rocketmq.example.quickstart.Consumer ``` 如果消费者成功接收到消息,表示 RocketMQ 部署成功。 ### 五、RocketMQ 管理控制台(可选) RocketMQ 提供了 Web 管理控制台,方便管理和监控消息队列。以下是安装和启动管理控制台的步骤。 #### 5.1 下载 RocketMQ 控制台 首先下载 RocketMQ 控制台的源代码: ```bash git clone https://github.com/apache/rocketmq-externals.git cd rocketmq-externals/rocketmq-console ``` #### 5.2 编译和启动 确保系统安装了 Maven,使用 Maven 打包并启动控制台: ```bash mvn clean package -Dmaven.test.skip=true java -jar target/rocketmq-console-ng-2.0.0.jar ``` #### 5.3 访问控制台 RocketMQ 控制台默认运行在端口 8080,可以通过浏览器访问: ``` http://localhost:8080 ``` 在控制台中,可以查看 NameServer、Broker 以及消息的详细信息。 ### 六、RocketMQ 部署注意事项 #### 6.1 JVM 调优 RocketMQ 对内存有较高的要求,建议在生产环境中调整 JVM 参数,以提升性能和稳定性。可以在启动 Broker 时设置如下 JVM 参数: ```bash nohup sh $ROCKETMQ_HOME/bin/mqbroker -n localhost:9876 \ -c $ROCKETMQ_HOME/conf/broker.conf \ -Xms4g -Xmx4g -Xmn2g & ``` #### 6.2 防火墙配置 确保 NameServer 和 Broker 所需的端口(默认9876和10911)已在防火墙中开放: ```bash firewall-cmd --zone=public --add-port=9876/tcp --permanent firewall-cmd --zone=public --add-port=10911/tcp --permanent firewall-cmd --reload ``` #### 6.3 日志管理 RocketMQ 会生成大量日志,建议定期清理或配置日志滚动策略,避免占用过多磁盘空间。可以通过修改 `$ROCKETMQ_HOME/conf/logback_broker.xml` 配置文件,调整日志滚动和保留策略。 ### 七、RocketMQ 部署步骤总结表 | 步骤 | 命令或操作 | 说明 | | --------------- | ------------------------------------------------------------ | ---------------------------------------- | | 安装 JDK | `sudo yum install java-1.8.0-openjdk -y` | 安装 RocketMQ 所需的 Java 环境 | | 下载 RocketMQ | `wget https://archive.apache.org/.../rocketmq.zip` | 下载 RocketMQ 二进制包 | | 解压文件 | `unzip rocketmq-all-4.9.2-bin-release.zip` | 解压安装包 | | 配置环境变量 | 编辑 `/etc/profile` 文件 | 添加 RocketMQ 目录至环境变量 | | 启动 NameServer | `nohup sh $ROCKETMQ_HOME/bin/mqnamesrv &` | 启动 NameServer | | 启动 Broker | `nohup sh $ROCKETMQ_HOME/bin/mqbroker -n localhost:9876 &` | 启动 Broker | | 验证部署 | 使用生产者/消费者工具进行消息发送和接收测试 | 验证 RocketMQ 是否正常工作 | | 启动管理控制台 | `java -jar target/rocketmq-console-ng-2.0.0.jar` | 启动 RocketMQ 管理控制台,进行可视化监控 | ### 八、总结 通过以上步骤,您可以在 CentOS 系统上成功部署 RocketMQ 并进行验证测试。RocketMQ 强大的分布式消息处理能力,使其在高并发、大规模消息传输场景中表现出色。为了保障系统的稳定性和高效性,建议在生产环境中进行合理的 JVM 调优、网络配置和日志管理。 最后修改:2024 年 09 月 16 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 如果觉得我的文章对你有用,请随意赞赏