RocketMQ实战教程之RocketMQ安装(含Docker安装,建议收藏!)

RocketMQ实战教程之RocketMQ安装

这里实例采用centos系统天翼云为例,分别采用传统安装以及Docker安装的方式来进行RocketMQ的安装.JDK8我这边已经安装配置好了,这里就不在赘述.直接进入正题:

传统安装包安装

系统要求

快速安装

  • 下载RocketMQ安装包上传到虚拟机、服务器上


  • 安装unzip: yum install unzip -y


  • 使用该命令: unzip rocketmq-all-5.2.0-bin-release.zip 进行安装

1、启动NameServer 安装完RocketMQ包后,我们启动NameServer

shell 复制代码
### 后台启动namesrv(这里建议前台启动方便看日志报错信息)
$ nohup sh bin/mqnamesrv &
 
### 验证namesrv是否启动成功
$ tail -f ~/logs/rocketmqlogs/namesrv.log
The Name Server boot success...

前台启动可以直接看到日志打印成功的信息,后台启动比较麻烦(学习比较方便)

2、启动Broker+Proxy

shell 复制代码
### 先启动broker指定nameServer的ip端口
$ nohup sh bin/mqbroker -n localhost:9876 --enable-proxy &

### 验证broker是否启动成功, 比如, broker的ip是192.168.1.2 然后名字是broker-a
$ tail -f ~/logs/rocketmqlogs/proxy.log 
The broker[broker-a,192.169.1.2:10911] boot success...

注意:

我这边自己测试时没有出现以下问题,可能是修复了简单的说就是没有报错.

  1. 启动出现错误:
  • Error: VM option 'UseG1GC' is experimental and must be enabled via -XX:+UnlockExperimentalVMOptions.
  • Error: Could not create the Java Virtual Machine.
  • Error: A fatal exception has occurred. Program will exit.
  • 解决方案如下: vim runbroker.sh
  1. 启动出现错误:
  • Java HotSpot™ 64-Bit Server VM warning: INFO: os::commit_memory(0x00000005c0000000, 8589934592, 0) failed; error='Cannot allocate memory' (errno=12)
  • 解决方案如下: vim runbroker.sh

工具测试消息收发

在进行工具测试消息收发之前,我们需要告诉客户端NameServer的地址,RocketMQ有多种方式在客户端中设置NameServer地址,这里我们利用环境变量NAMESRV_ADDR

shell 复制代码
export NAMESRV_ADDR=localhost:9876

###生产者发送消息
$ sh bin/tools.sh org.apache.rocketmq.example.quickstart.Producer
 SendResult [sendStatus=SEND_OK, msgId= ...

###消费者消费消息
export NAMESRV_ADDR=localhost:9876
$ sh bin/tools.sh org.apache.rocketmq.example.quickstart.Consumer
 ConsumeMessageThread_%d Receive New Messages: [MessageExt...

可以通过先启动消费者,然后再启动生产者发送消息.就可以看到消费者消费的信息

Docker方式安装

由于我自己的服务器之前装过docker了,这里就不展示具体细节截图了,跟着命令安装docker & docker-compose即可

安装 docker & docker-compose
shell 复制代码
# 安装 docker
# 从docker官网下载安装docker脚本
$ curl -fsSL get.docker.com -o get-docker.sh
# 使用root用户执行脚本指定阿里云镜像
$ sudo sh get-docker.sh --mirror Aliyun
# $ sudo sh get-docker.sh --mirror AzureChinaCloud

# 启动 docker
$ sudo systemctl enable docker
$ sudo systemctl start docker

# 安装 docker-compose github 下载: https://github.com/docker/compose/releases
$ sudo curl -L https://github.com/docker/compose/releases/download/1.27.4/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
# 国内用户可以使用以下方式加快下载
$ sudo curl -L https://download.fastgit.org/docker/compose/releases/download/1.27.4/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
# 修改权限
$ sudo chmod +x /usr/local/bin/docker-compose
docker-compose.yaml
yaml 复制代码
version: '3'
services:
  namesrv:
    image: apache/rocketmq:5.2.0
    container_name: rmqnamesrv
    ports:
      - "9876:9876"
    command: sh mqnamesrv
    environment:
      - JAVA_OPT_EXT=-Xms128m -Xmx128m -Xmn128m

  broker:
    image: apache/rocketmq:5.2.0
    container_name: rmqbroker
    ports:
      - "10909:10909"
      - "10911:10911"
    depends_on:
      - namesrv
    command: sh mqbroker -n namesrv:9876
    environment:
      - JAVA_OPT_EXT=-Xms128m -Xmx128m -Xmn128m
      - BROKER_ID=0
      - AUTO_CREATE_TOPIC_ENABLE=true
      - AUTO_CREATE_SUBSCRIPTION_GROUP=true
shell 复制代码
# 启动
$ docker-compose up -d
相关推荐
chen_note1 小时前
Dockerfile及其部署镜像步骤
docker·容器·镜像·dockerfile
Jy_06222 小时前
K8s中,deployment 是如何从 yaml 文件最终部署成功 pod 的
云原生·容器·kubernetes
mobº2 小时前
K8s 集群环境搭建 - yaml 版本(一)
云原生·容器·kubernetes
终端行者2 小时前
K8s中部署Minio集群 如何部署minio集群
云原生·容器·kubernetes·1024程序员节
杨浦老苏7 小时前
开源云文件存储服务器MyDrive
docker·群晖·网盘
PellyKoo7 小时前
Docker容器中中文文件名显示乱码问题完美解决方案
运维·docker·容器
无妄无望8 小时前
在没有网络的环境下安装包pymysql
学习·docker
奥尔特星云大使8 小时前
Docker 拉取 MySQL 5.7 镜像、启动容器并进入 MySQL
数据库·mysql·docker·容器
big男孩8 小时前
Docker使用环境变量的整理
docker
阿里云云原生8 小时前
2025 OSCAR丨与创新者同频!Apache RocketMQ 邀您共赴开源之约
rocketmq