RocketMQ部署文档

RocketMQ下载:

本文档选择5.3.0版本的“Binary 下载”,上传至服务器并解压。说明:本文档仅介绍RocketMQ的简单部署,未涉及集群和分布式的部署,其中 NameServer 和 Broker 安装在同一台服务器上。

官网下载链接

一、环境设置

JDK环境

服务器需要提前安装好Java环境,测试环境JDK版本为1.8.0。

JVM参数调整

根据机器配置,调整JVM的-Xms、-Xmx以及-Xmn参数大小。

JVM参数说明:-Xms参数用于设置Java堆内存的初始大小;-Xmx参数用于设置Java堆内存的最大大小;-Xmn参数允许指定年轻代的大小。

修改 JVM 参数方式:

# 在bin目录下的 runserver.sh 中进行修改
vim bin/runserver.sh

# 在bin目录下的 runbroker.sh 中进行修改
vim bin/runbroker.sh

(1)在 runserver.sh 以下部分中修改:

choose_gc_options()
{
    # Example of JAVA_MAJOR_VERSION value : '1', '9', '10', '11', ...
    # '1' means releases before Java 9
    JAVA_MAJOR_VERSION=$("$JAVA" -version 2>&1 | awk -F '"' '/version/ {print $2}' | awk -F '.' '{print $1}')
    if [ -z "$JAVA_MAJOR_VERSION" ] || [ "$JAVA_MAJOR_VERSION" -lt "9" ] ; then
      JAVA_OPT="${JAVA_OPT} -server -Xms4g -Xmx4g -Xmn2g -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
      JAVA_OPT="${JAVA_OPT} -XX:+UseConcMarkSweepGC -XX:+UseCMSCompactAtFullCollection -XX:CMSInitiatingOccupancyFraction=70 -XX:+CMSParallelRemarkEnabled -XX:SoftRefLRUPolicyMSPerMB=0 -XX:+CMSClassUnloadingEnabled -XX:SurvivorRatio=8 -XX:-UseParNewGC"
      JAVA_OPT="${JAVA_OPT} -verbose:gc -Xloggc:${GC_LOG_DIR}/rmq_srv_gc_%p_%t.log -XX:+PrintGCDetails -XX:+PrintGCDateStamps"
      JAVA_OPT="${JAVA_OPT} -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=5 -XX:GCLogFileSize=30m"
    else
      JAVA_OPT="${JAVA_OPT} -server -Xms4g -Xmx4g -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
      JAVA_OPT="${JAVA_OPT} -XX:+UseG1GC -XX:G1HeapRegionSize=16m -XX:G1ReservePercent=25 -XX:InitiatingHeapOccupancyPercent=30 -XX:SoftRefLRUPolicyMSPerMB=0"
      JAVA_OPT="${JAVA_OPT} -Xlog:gc*:file=${GC_LOG_DIR}/rmq_srv_gc_%p_%t.log:time,tags:filecount=5,filesize=30M"
    fi
}

由于测试环境的JDK版本为1.8,低于9版本,则需要在第7行处修改JVM参数值;若JDK版本高于9版本,需在第12行处修改。测试环境中调整 JVM 参数为 -Xms1g -Xmx1g -Xmn512m

(2)在 runbroker.sh 以下部分中修改:

JAVA_OPT="${JAVA_OPT} -server -Xms8g -Xmx8g"

测试环境中调整 JVM 参数为 -Xms1g -Xmx1g

二、启动服务

启动顺序:先启动 NameServer,再启动 Broker。

启动NameServer

### 启动namesrv
$ nohup sh bin/mqnamesrv &

Tips:使用nohup命令可以在Linux下永久地在后台执行程序,不受终端关闭的影响。nohup 命令,在默认情况下(非重定向时),会将日志输出到一个名叫 nohup.out的文件中,而不是显示在控制台上。

启动成功后 nohup.out 记录的日志输出:

The Name Server boot success. serializeType=JSON, address 0.0.0.0:9876

启动Broker

NameServer成功启动后,再启动Broker。在启动Broker时,需要指定NameServer的地址。可以在启动命令中传入NameServer地址(eg. localhost:9876),也可在shell环境变量中配置NameServer地址。

方式1:启动命令中传参

### 启动broker
$ nohup sh bin/mqbroker -n localhost:9876 --enable-proxy &

方式2:配置环境变量后启动

# 编辑bash_profile文件
vim ~/.bash_profile
# 在其中添加一行内容
export NAMESRV_ADDR='localhost:9876'

# 重新加载设置,使更改生效
source ~/.bash_profile

启动broker:

nohup sh bin/mqbroker &

nohup.out 文件中出现以下语句,则Broker启动成功。

The broker[xxx-xxx-xxx-xxx, xxx.xxx.xxx.xxx:10911] boot success. serializeType=JSON and name server is localhost:9876

查看状态

使用 jps 命令查看所有正常运行的java进程,查看进程中是否存在NameServer和Broker。

[root@xxx-xxx-xxx-xxx rocketmq-5.3.0]# jps
74181 Jps
73877 NamesrvStartup
74027 BrokerStartup

重启Broker

sh bin/mqshutdown broker

三、运行示例

生产消息

[root@xxx-xxx-xxx-xxx rocketmq-5.3.0]# bin/tools.sh org.apache.rocketmq.example.quickstart.Producer

消费消息

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

执行过程中,若出现无权限的错误,运行以下命令修改权限,递归地修改目录及其所有子文件和子目录的权限:

chmod -R 755 /opt/rocketmq-5.3.0

四、Dashboard安装部署

部署

从官网下载Dashboard源码,下载链接:Dashboard 2.0.0

修改项目中application.yml文件中的如下内容,修改Dashboard访问端口为8088,配置NameServer的ip和端口:

server:
  port: 8088

rocketmq:
  config:
    namesrvAddrs:
      - 127.0.0.1:9876 # 修改为真实地址

使用IEDA打开项目文件,注意修改IDEA“项目结构”中的“SDK”为1.8版本。

通过如下命令打包,在target目录下生成 rocketmq-dashboard-2.0.0.jar。

mvn clean package -Dmaven.test.skip=true

将打包后的jar包传入服务器后,通过如下命令启动:

java -jar rocketmq-dashboard-2.0.0.jar

验证

访问启动服务的地址的8088端口,进入可视化页面。
DashBoard界面Dashboard 使用介绍见博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值