RocketMQ基于DLedger集群搭建

本文档详细介绍了如何构建和部署Apache RocketMQ集成DLedger的环境,包括RocketMQ与DLedger的源码编译、rocketmq-console控制台构建、配置修改及启动与停止命令。此外,还提供了常见问题的解决方案,如内存不足时调整JVM参数。

目录

相关资料地址

构建 DLedger

构建 RocketMQ

构建rocketmq-console控制台

修改RocketMQ配置文件

启动命令

停止命令

常见问题


相关资料地址

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
dLegerGroupDLedger Raft Group的名字,建议和 brokerName 保持一致RaftNode00
dLegerPeersDLedger 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" 大小

 

 

 

### RocketMQ 高可用集群搭建教程 #### 了解RocketMQ架构 Apache RocketMQ 是一款分布式消息中间件,支持高吞吐量和低延迟的消息传递。为了确保系统的高可用性和可靠性,在生产环境中通常会部署多副本的Broker实例来组成集群[^2]。 #### 准备工作环境 在开始之前,确认已准备好至少两台服务器用于构建主从结构的Broker节点。每一对Broker之间保持网络互通,并且时间同步服务正常运行。此外,还需安装JDK并设置好JAVA_HOME环境变量[^4]。 #### 安装与初始化 下载官方发布的最新稳定版本二进制包至各目标机器上解压。对于每一个打算作为Name Server的角色来说,只需启动该进程而无需额外配置;而对于计划成为Broker的服务端,则需依据实际需求调整`broker.conf`中的参数设定[^1]。 #### 修改默认配置文件 进入解压缩后的目录下的`conf/2m-2s-sync`路径找到适用于双Master加双Slave模式同步刷盘方式的模板文件。重点编辑如下几项: - `brokerRole=ASYNC_MASTER` 或者 `SYNC_MASTER`: 设置当前Broker角色为主节点还是异步复制类型的从节点。 - `flushDiskType=ASYN_FLUSH` : 控制磁盘刷新机制为异步操作以提高性能。 - 更新监听IP(`listenPort`) 和其他必要的连接属性以便于远程访问控制。 ```properties # Example of broker configuration file snippet. brokerClusterName=DefaultCluster brokerName=broker-a brokerId=0 namesrvAddr=localhost:9876 storePathRootDir=/home/wangym/rocketmq/store storePathCommitLog=/home/wangym/rocketmq/store/commitlog ``` #### 启动组件 按照先启动NameServer再依次开启各个Broker的原则执行命令行指令完成整个集群的激活过程。注意观察日志输出确保没有任何错误提示发生。 ```bash nohup sh bin/mqnamesrv & nohup sh bin/mqbroker -n localhost:9876 & ``` #### 测试验证 通过发送测试消息到主题(Topic),然后尝试读取消息的方式检验集群是否能够正确处理请求。可以借助工具类如`tools.sh`来进行简单的生产和消费模拟实验[^3]。
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值