zoukankan      html  css  js  c++  java
  • RocketMQ单机版安装

    一、环境信息

    • centos7
    • jdk 8
    • rocketmq 4.7.0

    二、安装

    进入软件安装包目录

    cd /home/software/
    

    下载RocketMQBinary版安装包,也可以上传自己编译的

    wget https://mirror.bit.edu.cn/apache/rocketmq/4.7.0/rocketmq-all-4.7.0-bin-release.zip   
    

    解压文件并重命名目录

    unzip rocketmq-all-4.7.0-bin-release.zip
    # 重命名目录名
    mv rocketmq-all-4.7.0-bin-release rocketmq
    

    将目录移动 /usr/local 目录下

    mv rocketmq /usr/local
    

    查看目录包含内容

    cd /usr/local/rocketmq 
    ll
    
    drwxr-xr-x 2 root root  4096 Mar  5 19:44 benchmark
    drwxr-xr-x 3 root root  4096 Mar  4 09:59 bin
    drwxr-xr-x 6 root root  4096 Mar  4 09:59 conf
    drwxr-xr-x 2 root root  4096 Mar  5 19:44 lib
    -rw-r--r-- 1 root root 17336 Mar  4 09:59 LICENSE
    -rw-r--r-- 1 root root  1338 Mar  4 09:59 NOTICE
    -rw-r--r-- 1 root root  4948 Mar  4 09:59 README.md
    
    • LICENSE、NOTICE、README.md 包含一些版本声明和功能声明信息;

    • benchmark 里包含运行 benchmark 程序的 shell 脚本;

    • bin 目录包含各种使用 RocketMQshellcmd 脚本,如启动 NameServer 的脚本 mqnamesrv,启动 Broker 的脚本 mqbroker 等;

    • conf ** 目录存放配置文件,包括三种方式的 broker 配置文件 、logback** 日志配置文件等;

    • lib 目录包含 RocketMQ各模块的 jar 包和依赖的其他 jar 包。

    三、启动服务

    3.1 启动顺序

    先启动 NameServer,然后启动 Broker

    3.2 启动 NameServer

    nohup sh bin/mqnamesrv &
    

    通过 JPS 命令查看Java 进程

    [root@VM_0_15_centos rocketmq]# jps
    12833 Jps
    

    发现 NameServer并没有启动,我们来查看日志看看错误原因:

    tail -n 30 nohup.out
    

    信息如下:

    # There is insufficient memory for the Java Runtime Environment to continue.
    # Native memory allocation (mmap) failed to map 2147483648 bytes for committing reserved memory.
    # An error report file with more information is saved as:
    # /usr/local/rocketmq/hs_err_pid12459.log
    

    可以看到是因为内存不足导致无法启动,这是因为RocketMQ 默认的配置需要在4G内存以上的环境才能正常需要,我们的服务器只有2G所以会启动失败,我们要调整下它的配置:

    vim bin/runserver.sh
    

    可以看到默认的内存是 4G

    JAVA_OPT="${JAVA_OPT} -server -Xms4g -Xmx4g -Xmn2g -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
    

    我们将其都调整为 1G

    JAVA_OPT="${JAVA_OPT} -server -Xms1g -Xmx1g -Xmn1g -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
    

    同理 Broker 也会有这个问题,我们也来一起配置下

    vim bin/runbroker.sh
    
    JAVA_OPT="${JAVA_OPT} -server -Xms8g -Xmx8g -Xmn4g"
    

    调整为 1G:

    JAVA_OPT="${JAVA_OPT} -server -Xms1g -Xmx1g -Xmn1g"
    

    重新启动 NameServer:

    nohup sh bin/mqnamesrv &
    

    查看进程:

    [root@VM_0_15_centos bin]# jps
    1781 NamesrvStartup
    1800 Jps
    

    可以看到已经启动了

    3.3 启动 Broker

    nohup ./bin/mqbroker -n monchickey:9876 &
    

    查看进程:

    [root@localhost rocketmq]# jps
    1844 Jps
    1781 NamesrvStartup
    1837 BrokerStartup
    

    可以看到 Broker 也启动了。

    3.4 启动消息生产消费测试

    设置环境变量:服务器的位置

    export NAMESRV_ADDR=localhost:9876       
    

    生产消息:

    sh bin/tools.sh org.apache.rocketmq.example.quickstart.Producer
    
    SendResult [sendStatus=SEND_OK, msgId=C0A8892F09D44DC639966908745C0000, offsetMsgId=C0A8892F00002A9F00000000000249FA, messageQueue=MessageQueue [topic=TopicTest, brokerName=localhost, queueId=1], queueOffset=209]
    SendResult [sendStatus=SEND_OK, msgId=C0A8892F09D44DC63996690874790001, offsetMsgId=C0A8892F00002A9F0000000000024AAC, messageQueue=MessageQueue [topic=TopicTest, brokerName=localhost, queueId=2], queueOffset=209]
    

    消费消息:

    sh bin/tools.sh org.apache.rocketmq.example.quickstart.Consumer
    
    ConsumeMessageThread_1 Receive New Messages: [MessageExt [brokerName=localhost, queueId=3, storeSize=180, queueOffset=32, sysFlag=0, bornTimestamp=1584753866001, bornHost=/192.168.137.47:46826, storeTimestamp=1584753866003, storeHost=/192.168.137.47:10911, msgId=C0A8892F00002A9F0000000000005AFA, commitLogOffset=23290, bodyCRC=724156045, reconsumeTimes=0, preparedTransactionOffset=0, toString()=Message{topic='TopicTest', flag=0, properties={MIN_OFFSET=0, MAX_OFFSET=208, CONSUME_START_TIME=1584754056909, UNIQ_KEY=C0A8892F08E74DC639966903F1100082, WAIT=true, TAGS=TagA}, body=[72, 101, 108, 108, 111, 32, 82, 111, 99, 107, 101, 116, 77, 81, 32, 49, 51, 48], transactionId='null'}]] 
    
    

    注:我们这里使用官方提供的 demo 程序来验证下 MQ 的生产和消费

    3.5 停止服务

    # 停止 Broker
    sh bin/mqshutdown broker
    # 停止 NameServer  
    sh bin/mqshutdown namesrv
    
  • 相关阅读:
    16-异常
    Linux 常用命令
    项目依赖子项目的类
    Struts2
    博客园【上吊猫】
    LayUI【基本使用】
    idea中隐藏.iml文件
    Session 使用
    博客园右下角看板娘特效,多种样式可选
    枚举
  • 原文地址:https://www.cnblogs.com/markLogZhu/p/12536664.html
Copyright © 2011-2022 走看看