安装记录 -- RocketMQ

本文最后更新于:3 个月前

下载 RocketMQ 二进制包

下载地址

找到一个镜像的 bin 文件下载到 opt 路径下

# 创建软链接
ln -s /opt/rocketmq-all-4.7.1-bin-release rocketMQ

测试

官方文档:快速开始

  1. 开启 name server

    cd /opt/rocketMQ/bin
    sh mqnamesrv
    tail -f ~/logs/rocketmqlogs/namesrv.log
    # The Name Server boot success...
  2. 开启 broker

    sh mqbroker -n localhost:9876
    tail -f ~/logs/rocketmqlogs/broker.log 
    # The broker[%s, 172.30.30.233:10911] boot success...
  3. 发送/接收消息

    export NAMESRV_ADDR=localhost:9876
    sh tools.sh org.apache.rocketmq.example.quickstart.Producer
    # SendResult [sendStatus=SEND_OK, msgId= ...
    
    sh tools.sh org.apache.rocketmq.example.quickstart.Consumer
    # ConsumeMessageThread_%d Receive New Messages: [MessageExt...
  4. 关闭 server

    sh mqshutdown broker
    # The mqbroker(36695) is running...
    # Send shutdown request to mqbroker(36695) OK
    
    sh mqshutdown namesrv
    # The mqnamesrv(36664) is running...
    # Send shutdown request to mqnamesrv(36664) OK

后续开发设置

如果上面测试通过那程序就没问题了,但是每次手动开启很麻烦,我们就需要将 RocketMQ 加入开机启动项

  1. 新增 service 文件

    # 进入 /usr/lib/systemd/system/文件夹
    cd /usr/lib/systemd/system
    sudo vim rocketmq-broker.service
    # 文件内容
    [Unit]
    Description=RocketMQ-broker
    After=network.target
    
    [Service]
    Type = simple
    ExecStart=/opt/rocketMQ/bin/mqbroker -n localhost:9876
    ExecStop=/opt/rocketMQ/bin/mqshutdown broker
    PrivateTmp=true
    
    [Install]
    WantedBy=multi-user.target
    sudo vim rocketmq-namesrv.service
    
    # 文件内容
    [Unit]
    Description=RocketMQ-namesrv
    After=network.target
    
    [Service]
    Type = simple
    ExecStart=/opt/rocketMQ/bin/mqnamesrv
    ExecStop=/opt/rocketMQ/bin/mqshutdown namesrv
    PrivateTmp=true
    
    [Install]
    WantedBy=multi-user.target

    修改 /etc/profiles 文件,在最后增加

    export NAMESRV_ADDR=localhost:9876
    export ROCKETMQ_HOME=/opt/rocketMQ
  2. 修改程序中的 sh 脚本文件

    正常情况下,直接使用命令

     sudo systemctl start rocketmq-broker.service
     sudo systemctl start rocketmq-namesrv.service
    
    # 查看启动情况
    sudo systemctl status rocketmq-broker.service
    sudo systemctl status rocketmq-namesrv.service

    一般这样就可以正常启动了,但是这里有些问题,RocketMQ 使用的 JDK 版本有问题,需要修改程序文件

    cd /opt/rocketMQ/bin
    vim runserver.sh

    找到原文件和这个部分类似的地方,修改为如下配置

    [ ! -e "$JAVA_HOME/bin/java" ] && JAVA_HOME=/opt/jdk
    #[ ! -e "$JAVA_HOME/bin/java" ] && JAVA_HOME=/usr/java
    #[ ! -e "$JAVA_HOME/bin/java" ] && error_exit "Please set the JAVA_HOME variable in your environment, We need java(x64)!"

    同理,对于 runbroker.sh 文件也类似

    如果发现 broker 被系统kill,结局方案:调小 jvm 堆