rocketmq搭建(代码片段)

yjl_2130 yjl_2130     2023-02-17     412

关键词:

双主双从集群搭建

暂定两台机器

服务器A

nameserverA  brokerA  brokerB-slave

服务器B

nameserverB  brokerB  brokerA-slave

启动顺序

  • 启动nameserver 服务(类似注册中心)
  • 依次启动 brokerA 、brokerB、brokerA-slave 、 brokerB-slave

关闭顺序

  • sh mqshutdown broker
  • sh mqshutdown namesrv

依赖环境

  1. 64 位操作系统,Linux/ Unix/Mac OS
  2. 64位JDK 1.8+

1、下载安装包

rocketmq-all-4.9.2-bin-release.zip

2、加压安装包

unzip rocketmq-all-4.9.2-bin-release.zip

3、默认配置修改

修改rocketmq/bin目录下 runbroker.sh 、runserver.sh jvm参数(按服务器内存大小适配置,官方推荐8g)

  • runbroker.sh
    JAVA_OPT="$JAVA_OPT -server -Xms4g -Xmx4g -Xmn2g -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
    
    
  • runbroker.sh
    JAVA_OPT="$JAVA_OPT -server -Xms8g -Xmx8g"
    JAVA_OPT="$JAVA_OPT -XX:MaxDirectMemorySize=15g"
    

4、broker配置文件

  • 服务器A brokerA
#RocketMQ Name Server地址列表,多个NameServer地址用分号隔开
namesrvAddr=192.168.209.242:9876;192.168.209.243:9876
#集群名
rokerClusterName=game-rocketmq-cluster
brokerIP1=192.168.209.242
brokerName=broker-a
brokerId=0
#删除文件时间点,默认凌晨4点
deleteWhen=04
#文件保留时间,默认 48 小时
fileReservedTime=48
#- ASYNC_MASTER 异步复制Master   - SYNC_MASTER 同步双写Master   - SLAVE 
brokerRole=SYNC_MASTER
#- ASYNC_FLUSH 异步刷盘  SYNC_FLUSH 同步刷盘 
flushDiskType=ASYNC_FLUSH
listenPort=10911
#是否允许 Broker 自动创建Topic,建议线下开启,线上关闭
autoCreateTopicEnable=false
#是否允许 Broker 自动创建订阅组,建议线下开启,线上关闭
autoCreateSubscriptionGroup=false
#在发送消息时,自动创建服务器不存在的topic,默认创建的队列数 
defaultTopicQueueNums=4
#Broker 对外服务的监听端口
listenPort=10911
#commitLog每个文件的大小默认1G 
mapedFileSizeCommitLog=1073741824 
#ConsumeQueue每个文件默认存30W条,根据业务情况调整 
mapedFileSizeConsumeQueue=300000 

#存储路径
storePathRootDir=/root/data/mq/rocketmq/store
#commitLog 存储路径 
storePathCommitLog=/root/data/mq/rocketmq/store/commitlog 
#消费队列存储路径存储路径 
storePathConsumeQueue=/root/data/mq/rocketmq/store/consumequeue
#消息索引存储路径
storePathIndex=/root/data/mq/rocketmq/store/index
#checkpoint 文件存储路径 
storeCheckpoint=/root/data/mq/rocketmq/store/checkpoint 
#abort 文件存储路径 
abortFile=/root/data/mq/rocketmq/store/abort 

#限制的消息大小
maxMessageSize=65536
#并发send线程数,多线程来发送消息可能会出现broker busy
sendMessageThreadPoolNums=128
useReentrantLockWhenPutMessage=true
  • 服务器A brokerB-slave
#RocketMQ Name Server地址列表,多个NameServer地址用分号隔开
namesrvAddr=192.168.209.242:9876;192.168.209.243:9876
#集群名
rokerClusterName=game-rocketmq-cluster
brokerIP1=192.168.209.242
brokerName=broker-b
brokerId=1
#删除文件时间点,默认凌晨4点
deleteWhen=04
#文件保留时间,默认 48 小时
fileReservedTime=48
#- ASYNC_MASTER 异步复制Master   - SYNC_MASTER 同步双写Master   - SLAVE 
brokerRole=SLAVE
#- ASYNC_FLUSH 异步刷盘  SYNC_FLUSH 同步刷盘 
flushDiskType=ASYNC_FLUSH
listenPort=10911
#是否允许 Broker 自动创建Topic,建议线下开启,线上关闭
autoCreateTopicEnable=false
#是否允许 Broker 自动创建订阅组,建议线下开启,线上关闭
autoCreateSubscriptionGroup=false
#在发送消息时,自动创建服务器不存在的topic,默认创建的队列数 
defaultTopicQueueNums=4
#Broker 对外服务的监听端口
listenPort=10911
#commitLog每个文件的大小默认1G 
mapedFileSizeCommitLog=1073741824 
#ConsumeQueue每个文件默认存30W条,根据业务情况调整 
mapedFileSizeConsumeQueue=300000 

#存储路径
storePathRootDir=/data/mq/rocketmq/store
#commitLog 存储路径 
storePathCommitLog=/data/mq/rocketmq/store/commitlog 
#消费队列存储路径存储路径 
storePathConsumeQueue=/data/mq/rocketmq/store/consumequeue
#消息索引存储路径
storePathIndex=/data/mq/rocketmq/store/index
#checkpoint 文件存储路径 
storeCheckpoint=/data/mq/rocketmq/store/checkpoint 
#abort 文件存储路径 
abortFile=/data/mq/rocketmq/store/abort 

#限制的消息大小
maxMessageSize=65536

#并发send线程数,多线程来发送消息可能会出现broker busy
sendMessageThreadPoolNums=128
useReentrantLockWhenPutMessage=true
  • 服务器B brokerB
#RocketMQ Name Server地址列表,多个NameServer地址用分号隔开
namesrvAddr=192.168.209.242:9876;192.168.209.243:9876
#集群名
rokerClusterName=game-rocketmq-cluster
brokerIP1=192.168.209.243
brokerName=broker-b
brokerId=0
#删除文件时间点,默认凌晨4点
deleteWhen=04
#文件保留时间,默认 48 小时
fileReservedTime=48
#- ASYNC_MASTER 异步复制Master   - SYNC_MASTER 同步双写Master   - SLAVE 
brokerRole=SYNC_MASTER
#- ASYNC_FLUSH 异步刷盘 
#- SYNC_FLUSH 同步刷盘 
flushDiskType=ASYNC_FLUSH
listenPort=10911
#是否允许 Broker 自动创建Topic,建议线下开启,线上关闭
autoCreateTopicEnable=false
#是否允许 Broker 自动创建订阅组,建议线下开启,线上关闭
autoCreateSubscriptionGroup=false
#在发送消息时,自动创建服务器不存在的topic,默认创建的队列数 
defaultTopicQueueNums=4
#Broker 对外服务的监听端口
listenPort=10911
#commitLog每个文件的大小默认1G 
mapedFileSizeCommitLog=1073741824 
#ConsumeQueue每个文件默认存30W条,根据业务情况调整 
mapedFileSizeConsumeQueue=300000 

#存储路径
storePathRootDir=/root/data/mq/rocketmq/store
#commitLog 存储路径 
storePathCommitLog=/root/data/mq/rocketmq/store/commitlog 
#消费队列存储路径存储路径 
storePathConsumeQueue=/root/data/mq/rocketmq/store/consumequeue
#消息索引存储路径
storePathIndex=/root/data/mq/rocketmq/store/index
#checkpoint 文件存储路径 
storeCheckpoint=/root/data/mq/rocketmq/store/checkpoint 
#abort 文件存储路径 
abortFile=/root/data/mq/rocketmq/store/abort 

#限制的消息大小
maxMessageSize=65536

#并发send线程数,多线程来发送消息可能会出现broker busy
sendMessageThreadPoolNums=128
useReentrantLockWhenPutMessage=true
  • 服务器B brokerA-slave
#RocketMQ Name Server地址列表,多个NameServer地址用分号隔开
namesrvAddr=192.168.209.242:9876;192.168.209.243:9876
#集群名
rokerClusterName=game-rocketmq-cluster
brokerIP1=192.168.209.243
brokerName=broker-a
brokerId=1
#删除文件时间点,默认凌晨4点
deleteWhen=04
#文件保留时间,默认 48 小时
fileReservedTime=48
#- ASYNC_MASTER 异步复制Master   - SYNC_MASTER 同步双写Master   - SLAVE 
brokerRole=SLAVE
#- ASYNC_FLUSH 异步刷盘 
#- SYNC_FLUSH 同步刷盘 
flushDiskType=ASYNC_FLUSH
listenPort=10911
#是否允许 Broker 自动创建Topic,建议线下开启,线上关闭
autoCreateTopicEnable=false
#是否允许 Broker 自动创建订阅组,建议线下开启,线上关闭
autoCreateSubscriptionGroup=false
#在发送消息时,自动创建服务器不存在的topic,默认创建的队列数 
defaultTopicQueueNums=4
#Broker 对外服务的监听端口
listenPort=10911
#commitLog每个文件的大小默认1G 
mapedFileSizeCommitLog=1073741824 
#ConsumeQueue每个文件默认存30W条,根据业务情况调整 
mapedFileSizeConsumeQueue=300000 

#存储路径
storePathRootDir=/data/mq/rocketmq/store
#commitLog 存储路径 
storePathCommitLog=/data/mq/rocketmq/store/commitlog 
#消费队列存储路径存储路径 
storePathConsumeQueue=/data/mq/rocketmq/store/consumequeue
#消息索引存储路径
storePathIndex=/data/mq/rocketmq/store/index
#checkpoint 文件存储路径 
storeCheckpoint=/data/mq/rocketmq/store/checkpoint 
#abort 文件存储路径 
abortFile=/data/mq/rocketmq/store/abort 

#限制的消息大小
maxMessageSize=65536


#并发send线程数,多线程来发送消息可能会出现broker busy
sendMessageThreadPoolNums=128
useReentrantLockWhenPutMessage=true

5、初始文件夹

mkdir -p /usr/local/rocketmq/store
mkdir -p /usr/local/rocketmq/store/commitlog
mkdir -p /usr/local/rocketmq/store/consumequeue
mkdir -p /usr/local/rocketmq/store/index
mkdir -p /usr/local/rocketmq/store/checkpoint
mkdir -p /usr/local/rocketmq/store/abort

6、启动脚本

nameserver 启动

nohup sh mqnamesrv -n IP:PORT > /root/data/mq/rokermq/nameserv.log 2>&1 &

broker 启动

nohup sh /root/data/www/rocketmq-4.9.2/bin/mqnamesrv -n IP:PORT > /root/data/mq/roketmq 2>&1 &

broker-a
nohup sh /root/data/www/rocketmq-4.9.2/bin/mqbroker -n IP:PORT  -c /root/data/www/rocketmq-4.9.2/conf/2m-2s-sync/broker-a.properties > /root/data/mq/roketmq 2>&1 &

broker-a-s
nohup sh /root/data/www/rocketmq-4.9.2/bin/mqbroker -n IP:PORT  -c /root/data/www/rocketmq-4.9.2/conf/2m-2s-sync/broker-a-s.properties > /root/data/mq/roketmq 2>&1 &

broker-b-s
nohup sh /root/data/www/rocketmq-4.9.2/bin/mqbroker -n IP:PORT  -c /root/data/www/rocketmq-4.9.2/conf/2m-2s-sync/broker-b-s.properties > /root/data/mq/roketmq 2>&1 &

broker-b
nohup sh /root/data/www/rocketmq-4.9.2/bin/mqbroker -n IP:PORT  -c /root/data/www/rocketmq-4.9.2/conf/2m-2s-sync/broker-b.properties > /root/data/mq/roketmq 2>&1 &

#集群机器查询
sh bin/mqadmin clusterList -n 192.168.209.243:9876


windows搭建rocketmq服务(代码片段)

安装RocketMQ注:仅支持64位Windows,请安装64位JDK,最好用jdk7的。2.1下载编译好的RocketMQ下载编译好的RocketMQ的发布版,也可以自行编译:https://github.com/alibaba/RocketMQ/releases  2.2解压缩,并进入bin目录(最好解压到根目录)&nbs... 查看详情

rocketmq集群搭建及安装rocketmq-console(代码片段)

 RocketMQ集群搭建-4.2.0版本https://juejin.im/post/5a911ea16fb9a0633f0e36a1直接在官网下载的二进制包,编译容易出现问题启动broker,报错:rocketmqCannotallocatememory可根据机器内存大小,配置jvm参数http://www.cnblogs.com/quchunhui/p/8350904.html&n 查看详情

rocketmq环境搭建(代码片段)

下载RocketMQ版本:4.5.1下载地址环境Linux64位系统JDK1.8(64位)安装上传二进制包到/usr/local/rocketmq目录解压unziprocketmq-all-4.5.1-bin-release.zip-bash:unzip:未找到命令yuminstall-yunzipzip解压目录bin:启动脚本,包括shell脚本和CMD 查看详情

rocketmq集群的搭建(代码片段)

一、环境hosts192.168.200.136nodeA192.168.200.139nodeB192.168.200.140nodeC192.168.200.141nodeD案例版本rocketmq:4.5.1jdk:1.8在nodeA上安装好rocketmqRocketMQ安装配置免密钥登入cd/root/ls-acd.ssh/ls#生成密钥(四台机子都要)ssh-keygen#生成三个文件 查看详情

深入理解rocketmq---实战(控制台搭建)(代码片段)

 rocketMQ控制台搭建(1)下载rocketmq-console代码:https://github.com/875279177/incubator-rocketmq-externals(2)修改配置application配置文件,主要修改端口号及rocketmq.config.dataPathserver.contextPath=server.port=8080#spring.application.index=truespring.application.n... 查看详情

rocketmq源码本地搭建调试(代码片段)

1GitHub源码gitclonehttps://github.com/apache/rocketmq.git导入IDEA,可在命令行执行mvncompile一下,保证源码能够正确编译。本次我使用的master分支的版本-4.8.0。下面我们开始准备启动Namesrv。2启动Namesrv到namesrv模块找到NamesrvStartup,... 查看详情

rocketmq集群搭建2(代码片段)

1.修改配置配件本次搭的集群是双主双从的同步模式  双主双从的配置文件再上图所示的里面服务器:192.168.100.128内需配置(下图中的:broker-a.properties和broker-b-s.properties)   broker-a.properties中的配置文件如下#所... 查看详情

rocketmq集群搭建--双master方案(代码片段)

安装环境   jdk1.7   alibaba-rocketmq-3.2.6.tar.gz  VM虚拟机redhat6.5-x64:192.168.1.201  192.168.1.202  Xshell4部署方案序号IP角色模式1192.168.1.201nameServer1,brokerServer1Master12192.168.1.202nameS 查看详情

rocketmq安装及集群搭建(代码片段)

...里写自定义目录标题一、下载安装1.下载2.基础概念3.启动RocketMQ二、安装RocketMQconsole1.使用git拉取项目2.修改配置文件3.打包4.启动项目三、搭建双主双从集群1.创建服务器1中的消息存储路径2.修改服务器1配置文件3.创建服务器2中... 查看详情

15centos单机搭建rocketmq运行环境(代码片段)

先把rocketmq上传到/hom/data/目录下;为了方便,我们统一用finalshell工具上传;/home/下面再新建一个mq目录用来存放rocketmq安装文件;进入data目录,解压rocketmq压缩包到mq目录unziprocketmq-all-4.9.0-bin-release.zip-d../mq假如... 查看详情

rocketmq---架构原理及环境搭建(代码片段)

一、架构简述RocketMQ阿里开源的一个分布式消息传递和流媒体平台,具有低延迟,高性能和可靠性,万亿级容量和灵活的可伸缩性。跟其它中间件相比,RocketMQ的特点是纯JAVA实现,在发生宕机和其它故障时消息丢失率更低。它由四... 查看详情

rocketmq4.5.1单机环境搭建以及生产消费测试(代码片段)

为了学习和方便测试,总是要启动一个单机版的。下载 http://rocketmq.apache.org/dowloading/releases/1.要先配置环境变量ROCKETMQ_HOMEE:\\rocketmq-all-4.5.1-bin-release2.然后进入bin目录启动NameServer3.启动Broker启动E:\\rocketmq-all-4.5.1-bin-rele 查看详情

rocketmq2主2从集群搭建(代码片段)

安装环境   jdk1.7   alibaba-rocketmq-3.2.6.tar.gz  VM虚拟机redhat6.5-x64:192.168.1.201  192.168.1.202 192.168.1.203  192.168.1.204  Xshell4部署方案IP主机名用途Broker角色192.168.1.201b 查看详情

rocketmq单机环境搭建(代码片段)

大家好,我是冰河~~今天,带来一篇搭建RocketMQ单机环境的文章,为后面的分布式事务专栏做准备。RocketMQ是阿里巴巴开源的一款高性能分布式消息中间件,有关RocketMQ的详细讲解,后面会单独开设一个RocketMQ专... 查看详情

rocketmq搭建趟坑记(代码片段)

...过,我就是这样~~明明很简单的配置,搞了半天我用的是rocketmq4.1.0,配置了jvm参数,都能正常启动,且能在线上运行demo,但是线下就是连不上在conf目录下有个broker.conf,我以为他默认会读取这个文件,拼命在改这个文件。。实... 查看详情

一文带你搭建rocketmq源码调试环境(代码片段)

tothetargetVM,address:\'127.0.0.1:52279\',transport:\'socket\'Thebroker[broker-a,192.168.10.197:10911]bootsuccess.serializeType=JSONandnameserveris127.0.0.1:98764.3查看启动日志另外我们到logs目录看下启动的详细日志,打开broker. 查看详情

rocketmq集群搭建(代码片段)

1、下载rocketmq包2、解压zip包3、编译部署4、配置环境变量5、启动NameServer(每台机器都要启动)6、启动broker(每台机器都要)7、测试验证  1、下载rocketmq包  下载地址:http://rocketmq.apache.org/dowloading/releases/  我用的版... 查看详情

windows下安装rocketmq(代码片段)

RocketMQ安装内容一、RocketMQ环境搭建1.下载RocketMQ2.window的安装配置2.1使用rocketmq-4.5.1.zip解压到指定目录2.2需要配置环境变量ROCKETMQ_HOME3.修改broker的配置文件3.1打开broker.conf文件3.2添加配置4.先启动mqnamesrv5.启动broker6.启动管理控制台... 查看详情