linux下rocketmq部署,两主两从同步写模式配置

架构图




 2、部署

2.1下载

Apache:

https://www.apache.org/dyn/closer.cgi?path=rocketmq/4.2.0/rocketmq-all-4.2.0-bin-release.zip

Alibba:

https://github.com/alibaba/RocketMQ/releases

2.2解压:

unzip rocketmq-all-4.2.0-bin-release.zip -d/root/svr/rocketmq

 

 

 

2.3配置host(给nameServer用):

命令:vim /etc/hosts

192.168.0.12 rocketmq1

192.168.0.13 rocketmq2

配置环境变量:vim/etc/profile

export ROCKETMQ_HOME=/root/svr/rocketmq

export PATH=$PATH::$ROCKETMQ_HOME/bin

执行:source/etc/profile

export ROCKETMQ_HOME=/usr/local/rocketmq

export PATH=$PATH::$ROCKETMQ_HOME/bin

2.4配置集群参数

命令(master):vim /root/svr/rocketmq/conf/2m-2s-sync/broker-a.properties

brokerClusterName=tl-rocketmq-cluster

brokerName=broker-a

brokerId=0

namesrvAddr=rocketmq1:9876;rocketmq2:9876

defaultTopicQueueNums=4

autoCreateTopicEnable=true

autoCreateSubscriptionGroup=true

listenPort=10911

deleteWhen=04

fileReservedTime=120

mapedFileSizeCommitLog=1073741824

mapedFileSizeConsumeQueue=300000

destroyMapedFileIntervalForcibly=120000

redeleteHangedFileInterval=120000

diskMaxUsedSpaceRatio=88

storePathRootDir=/root/svr/rocketmq/data/store_m

storePathCommitLog=/root/svr/rocketmq/data/store_m/commitlog

maxMessageSize=65536

flushCommitLogLeastPages=4

flushConsumeQueueLeastPages=2

flushCommitLogThoroughInterval=10000

flushConsumeQueueThoroughInterval=60000

checkTransactionMessageEnable=false

sendMessageThreadPoolNums=128

pullMessageThreadPoolNums=128

brokerRole=SYNC_MASTER

flushDiskType=ASYNC_FLUSH

 

命令(slave):vim /root/svr/rocketmq/conf/2m-2s-sync/broker-b-s.properties

 

brokerClusterName=tl-rocketmq-cluster

brokerName=broker-a

#0 表示 Master,>0 表示 Slave

brokerId=1

namesrvAddr=rocketmq1:9876;rocketmq2:9876

defaultTopicQueueNums=4

autoCreateTopicEnable=true

autoCreateSubscriptionGroup=true

listenPort=10911

deleteWhen=04

fileReservedTime=120

mapedFileSizeCommitLog=1073741824

mapedFileSizeConsumeQueue=300000

destroyMapedFileIntervalForcibly=120000

redeleteHangedFileInterval=120000

diskMaxUsedSpaceRatio=88

storePathRootDir=/root/svr/rocketmq/data/store_s

storePathCommitLog=/root/svr/rocketmq/data/store_s/commitlog

maxMessageSize=65536

flushCommitLogLeastPages=4

flushConsumeQueueLeastPages=2

flushCommitLogThoroughInterval=10000

flushConsumeQueueThoroughInterval=60000

checkTransactionMessageEnable=false

sendMessageThreadPoolNums=128

pullMessageThreadPoolNums=128

#角色

brokerRole=SLAVE

flushDiskType=ASYNC_FLUSH

2.5创建存储&日志文件

mkdir /root/svr/rocketmq/data (也要创建store文件夹)

mkdir /root/svr/rocketmq/data/store_m

mkdir /root/svr/rocketmq/data/store_s


mkdir /root/svr/rocketmq/data/store_m/commitlog

mkdir /root/svr/rocketmq/data/store_m/consumequeue

mkdir /root/svr/rocketmq/data/store_m/index

mkdir /root/svr/rocketmq/data/store_s/commitlog

mkdir /root/svr/rocketmq/data/store_s/consumequeue

mkdir /root/svr/rocketmq/data/store_s/index


注意:如果一台虚拟机部署多个需要用文件进行区分

2.6修改日志配置文件

mkdir -p /root/svr/rocketmq/logs

cd /root/svr/rocketmq/conf && sed -i 's#${user.home}#/root/svr/rocketmq#g'

*.xml

注意logback.*.xml配置文件中${user.home}需要替换自己指定的目录

2.7改参数

runbroker.sh,runserver.sh启动参数默认对jvm的堆内存设置比较大(不改启动不起来),如果是虚拟机非线上环境需要改下参数

默认大小

-Xms8g -Xmx8g -Xmn4g

改为:

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

该配置视环境情况而定,配置一定要在环境内存允许的情况下,否则启动会报错,本地虚拟机配置很多问题都出在这一步

2.8复制

scp其他服务器

scp -r rocketmq/root@192.168.0.13:/root/svr/

 

 

3、启动服务

 3.1启动Nameserver服务

在cd /root/svr/rocketmq/bin目录下执行命令:

nohup sh mqnamesrv &

 

3.2启动BrokerServer

在cd /root/svr/rocketmq/bin目录下执行命令:

nohup sh mqbroker -c /root/svr/rocketmq/conf/2m-2s-sync/broker-a.properties&

3.3是否启动成功

输入命令jps或者查看rocketmq/logs下日志是否输出正常。

安装成功。

查看集群监控状态:

sh mqadmin clusterlist -n 192.168.0.12:9876

测试:

export NAMESRV_ADDR=’rocketmq1:9876;rocketmq2:9876’

测试发送端

 > sh bin/tools.sh org.apache.rocketmq.example.quickstart.Producer

测试消费端

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

服务停止:

在cd /root/svr/rocketmq/bin目录下执行命令或者jps查看进程号 kill -9pid

sh mqshutdown broker

sh mqshutdown namesrv

 

 

 

 

常见错误

 

 

Jvm参数没有配置启动错误:

 

# There is insufficient memory for the Java RuntimeEnvironment to continue.

# Native memory allocation (malloc) failed to allocate8589934592 bytes for committing reserved memory.

# An error report file with more information is saved as:

# /root/svr/rocketmq/bin/hs_err_pid30288.log

[root@localhost bin]# ll

 

启动日志报:Please set the JAVA_HOME variable inyour environment, We need java(x64)! !!

需要设置vim /etc/profile环境变量

export JAVA_HOME=/root/svr/jdk

source/etc/profile

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值