2c4g服务器部署rocketmq?

服务器

在 2核4G(2C4G)的服务器上部署 Apache RocketMQ 是可行的,但需要注意资源限制,尤其是内存和线程数。RocketMQ 包含以下几个核心组件:

  • NameServer:轻量级路由注册中心
  • Broker:消息中转服务
  • Producer/Consumer:生产者和消费者客户端

对于开发或测试环境来说,2C4G 的配置是可以接受的,但在生产环境中建议使用更高配置。


✅ 部署步骤(单机模式)

📌 环境准备

  • 操作系统:Linux(如 CentOS、Ubuntu)
  • Java:JDK 1.8 或以上
  • 内存:至少 4GB RAM
  • 磁盘空间:至少 10GB 可用空间
  • 网络开放端口:9876(NameServer)、10911(Broker)

📌 步骤一:安装 JDK

# Ubuntu
sudo apt update && sudo apt install openjdk-8-jdk -y

# CentOS
sudo yum install java-1.8.0-openjdk -y

验证安装:

java -version
javac -version

📌 步骤二:下载 RocketMQ

前往官网或 GitHub 下载二进制包:

wget https://archive.apache.org/dist/rocketmq/4.9.4/apache-rocketmq-all-4.9.4-bin-release.zip
unzip apache-rocketmq-all-4.9.4-bin-release.zip -d /usr/local/rocketmq

📌 步骤三:设置环境变量(可选)

编辑 ~/.bashrc/etc/profile 添加:

export ROCKETMQ_HOME=/usr/local/rocketmq
export PATH=$PATH:$ROCKETMQ_HOME/bin

应用生效:

source ~/.bashrc

📌 步骤四:调整 JVM 参数(关键优化)

由于是 2C4G 服务器,需要降低默认 JVM 内存参数。

修改 NameServer 启动脚本:

vim $ROCKETMQ_HOME/bin/runserver.sh

修改为:

JAVA_OPT="${JAVA_OPT} -Xms256m -Xmx256m"

修改 Broker 启动脚本:

vim $ROCKETMQ_HOME/bin/runbroker.sh

修改为:

JAVA_OPT="${JAVA_OPT} -Xms256m -Xmx512m"

📌 步骤五:启动 NameServer

nohup mqnamesrv &

# 查看日志确认是否启动成功
tail -f nohup.out

📌 步骤六:启动 Broker

nohup mqbroker -n localhost:9876 -c $ROCKETMQ_HOME/conf/broker.conf &

# 如果提示内存不足,可以进一步修改 broker.conf 中的线程池大小等参数

注意:如果你看到类似 OutOfMemoryError,需要继续调低堆内存或者增加 Swap 空间。


📌 步骤七:测试 Producer 和 Consumer

发送消息:

export NAMESRV_ADDR=localhost:9876
mqadmin updateTopicPerm -n $NAMESRV_ADDR -t TopicTest -p 6

tools.sh org.apache.rocketmq.example.quickstart.Producer

消费消息:

tools.sh org.apache.rocketmq.example.quickstart.Consumer

⚠️ 常见问题及解决

问题 解决方法
OutOfMemoryError 调整 -Xms-Xmx 到更小值
Broker 启动失败 检查磁盘空间、端口是否被占用
无法连接 NameServer 检查防火墙是否放行 9876 端口
消息堆积严重 单机性能有限,考虑升级硬件或集群部署

🧠 建议与注意事项

  • 不推荐用于高并发生产环境
  • 开发/测试用途可以正常运行
  • 可以通过增加 Swap 分区缓解内存压力
  • 使用 topjstatvmstat 监控资源使用情况
  • 如需持久化消息,请确保磁盘空间充足

📦 扩展部署(Docker 方式)

也可以使用 Docker 快速部署 RocketMQ:

docker run -d -p 9876:9876 -v ~/logs:/root/logs --name rmqnamesrv rocketmqinc/rocketmq mqnamesrv

docker run -d -p 10911:10911 -p 10909:10909 
  -v ~/logs:/root/logs 
  -e "NAMESRV_ADDR=宿主机IP:9876" 
  --name rmqbroker 
  rocketmqinc/rocketmq 
  mqbroker -n 宿主机IP:9876

✅ 总结

项目 推荐配置
CPU 至少 2 核
内存 至少 4GB
JDK 1.8+
适用场景 开发/测试环境
不适合 高并发生产环境

如果你有具体需求(比如搭建双主从结构、Dledger 集群),欢迎继续提问,我可以提供详细配置方案。

未经允许不得转载:CDNK博客 » 2c4g服务器部署rocketmq?