目录
相关资料地址
1、官网地址
http://rocketmq.apache.org/docs/quick-start/
2、gitee中文资料地址
https://gitee.com/apache/rocketmq/tree/master/docs/cn
3、DLedger github源码地址
https://github.com/openmessaging/openmessaging-storage-dledger
4、RocketMQ github源码地址
https://github.com/apache/rocketmq
5、rocketmq-console 控制台github源码地址
https://github.com/apache/rocketmq-externals
构建 DLedger
在服务器执行以下命令:
git clone https://github.com/openmessaging/openmessaging-storage-dledger.git
或者直接下载zip包再上传服务器解压
https://github.com/openmessaging/openmessaging-storage-dledger/archive/refs/heads/master.zip
进入目录编译
cd openmessaging-storage-dledger
mvn clean install -DskipTests
构建 RocketMQ
git clone https://github.com/apache/rocketmq.git
cd rocketmq
git checkout -b store_with_dledger origin/store_with_dledger
mvn -Prelease-all -DskipTests clean install -U
或者直接下载已编译好的zip包,上传服务器再解压
https://www.apache.org/dyn/closer.cgi?path=rocketmq/4.8.0/rocketmq-all-4.8.0-bin-release.zip
构建rocketmq-console控制台
git clone https://github.com/apache/rocketmq-externals.git
cd /rocketmq-externals-master/rocketmq-console
mvn package -DskipTests
启动命令:
java -jar rocketmq-console-ng-2.0.0.jar --server.port=8080 --rocketmq.config.namesrvAddr=10.0.0.131:9876
多个namesrvAddr可用分号隔开:
namesrvAddr=10.0.0.131:9876;10.0.0.132:9876;10.0.0.133:9876
修改RocketMQ配置文件
1、在编译好或者解压后的RocketMQ目录下
cd conf/dledger
2、每个 RocketMQ-on-DLedger Group 至少准备三台机器
在node01机器上修改broker-n0.conf,在node02机器上修改broker-n1.conf,在node03机器上修改broker-n2.conf,
分别修改如下两个参数为自己三台机器地址
namesrvAddr=10.0.0.131:9876;10.0.0.132:9876;10.0.0.133:9876
dLegerPeers=n0-10.0.0.131:40911;n1-10.0.0.132:40912;n2-10.0.0.133:40913
3、关键配置介绍:
name | 含义 | 举例 |
---|---|---|
enableDLegerCommitLog | 是否启动 DLedger | true |
dLegerGroup | DLedger Raft Group的名字,建议和 brokerName 保持一致 | RaftNode00 |
dLegerPeers | DLedger Group 内各节点的端口信息,同一个 Group 内的各个节点配置必须要保证一致 | n0-127.0.0.1:40911;n1-127.0.0.1:40912;n2-127.0.0.1:40913 |
dLegerSelfId | 节点 id, 必须属于 dLegerPeers 中的一个;同 Group 内各个节点要唯一 | n0 |
sendMessageThreadPoolNums | 发送线程个数,建议配置成 Cpu 核数 | 16 |
启动命令
1、启动NameServer
nohup sh mqnamesrv &
日志可见/root/logs/rocketmqlogs/namesrv.log日志打印:The Name Server boot success. serializeType=JSON 即成功
2、启动broker
nohup sh mqbroker -c /usr/local/rocketmq-all-4.8.0-bin-release/conf/dledger/broker-n0.conf
或者
./mqbroker -c /usr/local/rocketmq-all-4.8.0-bin-release/conf/dledger/broker-n0.conf
停止命令
cd /bin
./mqshutdown namesrv
./mqshutdown broker
常见问题
启动broker失败 Cannot allocate memory
原因:jvm启动初始化内存分配大于物理内存,默认数值给的都很大,改小即可
解决:修改bin/runbroker.sh
调整JAVA_OPT="${JAVA_OPT} -server -Xms8g -Xmx8g -Xmn4g" 大小
修改bin/runserver.sh
调整JAVA_OPT="${JAVA_OPT} -server -Xms4g -Xmx4g -Xmn2g -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m" 大小