rocketMQ双master

本文详细介绍如何在两台Linux虚拟机上部署RocketMQ集群,包括软件准备、系统配置、存储路径设置、Broker配置、日志配置及启动过程。此外还提供了性能优缺点分析。

优点:配置简单,单个Master 宕机或重启维护对应用无影响,在磁盘配置为 RAID10 时,即使机器宕机不可恢复情况下,由与 RAID10 磁盘非常可靠,消息也不会丢(异步刷盘丢失少量消息,同步刷盘一条不丢) 。性能最高。

缺点:单台机器宕机期间,这台机器上未被消费的消息在机器恢复之前不可订 阅,消息实时性会受到受到影响。

### 先启动 NameServer ### 在机器 A,启动第一个 Master ### 在机器 B,启动第二个 Master

一:准备工作

1.软件:

alibaba-rocketmq-3.2.6.tar

rocketmq-console.war

apache-tomcat-7.0.29.tar

jdk1.7

2.系统:linux

两台linux虚拟机,对应的ip如下:

192.168.183.131

192.168.183.134

3.mq解压存放目录

#tar -zxvf alibaba-rocketmq-3.2.6.tar.gz -C /usr/local

# mv alibaba-rocketmq alibaba-rocketmq-3.2.6

# ln -s alibaba-rocketmq-3.2.6 rocketmq

4.tomcat、 jdk位置

[root@131 local]# pwd
/usr/local
[root@131 local]# ll
total 100
drwxr-xr-x.  5 root  root   4096 Mar  9 19:34 activemq-cluster
drwxr-xr-x. 11 52583 users  4096 Mar 13 00:00 alibaba-rocketmq-3.2.6
drwxr-xr-x.  9 root  root   4096 Mar 10 00:58 apache-tomcat-7.0.29
drwxr-xr-x.  8 uucp    143  4096 Jul 25  2014 jdk1.7
lrwxrwxrwx.  1 root  root     22 Mar 12 23:22 rocketmq -> alibaba-rocketmq-3.2.6
drwxr-xr-x.  2 root  root   4096 Mar 10 00:57 software
drwxr-xr-x. 11   501 games  4096 Mar  8 23:47 zookeeper
-rw-r--r--.  1 root  root  73728 Mar  9 17:53 zookeeper.out

二:配置详情

1.[root@131 local]# vi /etc/hosts

2.[root@134 local]# vi /etc/hosts

配置mq服务在linux上的唯一名称:

131配置如下:

192.168.183.131 rocketmq-nameServer1
192.168.183.131 rocketmq-master1
192.168.183.134 rocketmq-nameServer2
192.168.183.134 rocketmq-master2

134配置如下:

192.168.183.131 rocketmq-nameServer1
192.168.183.131 rocketmq-master1
192.168.183.134 rocketmq-nameServer2
192.168.183.134 rocketmq-master2

对,没有区别!你没看错!!!双主嘛

3.创建存储路径(两台机器一样)

# mkdir /usr/local/rocketmq/store

# mkdir /usr/local/rocketmq/store/commitlog

# mkdir /usr/local/rocketmq/store/consumequeue

# mkdir /usr/local/rocketmq/store/index

4.131 # vim /usr/local/rocketmq/conf/2m-noslave/broker-a.properties

5.134 # vim /usr/local/rocketmq/conf/2m-noslave/broker-b.properties

4、5唯一的区别在于131服务器和134服务器配置文件名称a、b,然配置如下:

#所属集群名字 

brokerClusterName=rocketmq-cluster 

#broker名字,注意此处不同的配置文件填写的不一样

brokerName=broker-a|broker-b (注意:131为a,134为b)

#0 表示 Master,>0 表示 Slave brokerId=0 #nameServer地址,分号分割

brokerId=0 

#nameServer地址,分号分割

namesrvAddr=rocketmq-nameserver1:9876;rocketmq-nameserver2:9876 

#在发送消息时,自动创建服务器不存在的topic,默认创建的队列数 

defaultTopicQueueNums=4 

#是否允许 Broker 自动创建Topic,建议线下开启,线上关闭 

autoCreateTopicEnable=true 

#是否允许 Broker 自动创建订阅组,建议线下开启,线上关闭 

autoCreateSubscriptionGroup=true 

#Broker 对外服务的监听端口 

listenPort=10911 

#删除文件时间点,默认凌晨 4点 

deleteWhen=04 

#文件保留时间,默认 48 小时 

fileReservedTime=120 

#commitLog每个文件的大小默认1G 

mapedFileSizeCommitLog=1073741824 

#ConsumeQueue每个文件默认存30W条,根据业务情况调整 

mapedFileSizeConsumeQueue=300000 

#destroyMapedFileIntervalForcibly=120000 

#redeleteHangedFileInterval=120000 

#检测物理文件磁盘空间 

diskMaxUsedSpaceRatio=88 

#存储路径 

storePathRootDir=/usr/local/rocketmq/store 

#commitLog 存储路径 

storePathCommitLog=/usr/local/rocketmq/store/commitlog 

#消费队列存储路径存储路径 

storePathConsumeQueue=/usr/local/rocketmq/store/consumequeue 

#消息索引存储路径 

storePathIndex=/usr/local/rocketmq/store/index 

#checkpoint 文件存储路径 

storeCheckpoint=/usr/local/rocketmq/store/checkpoint 

#abort 文件存储路径 

abortFile=/usr/local/rocketmq/store/abort 

#限制的消息大小 

maxMessageSize=65536 

#flushCommitLogLeastPages=4 

#flushConsumeQueueLeastPages=2 

#flushCommitLogThoroughInterval=10000 

#flushConsumeQueueThoroughInterval=60000 

#Broker 的角色 

#- ASYNC_MASTER 异步复制Master 

#- SYNC_MASTER 同步双写Master 

#- SLAVE 
brokerRole=ASYNC_MASTER 

#刷盘方式 

#- ASYNC_FLUSH 异步刷盘 

#- SYNC_FLUSH 同步刷盘 

flushDiskType=ASYNC_FLUSH 

#checkTransactionMessageEnable=false

#发消息线程池数量 

#sendMessageThreadPoolNums=128

#拉消息线程池数量 

#pullMessageThreadPoolNums=128

貌似该第6步了...........

6.修改日志配置文件(两台机器)

# mkdir -p /usr/local/rocketmq/logs

# cd /usr/local/rocketmq/conf && sed -i 's#${user.home}#/usr/local/rocketmq#g' *.xml

继续......

7.如果正式环境建议保持默认,虚拟机测试建议配置如下:(同时修改两台机器)

# vim /usr/local/rocketmq/bin/runbroker.sh

#============================================================
==================
# 开发环境JVM Configuration
#============================================================
==================
JAVA_OPT="${JAVA_OPT} -server -Xms1g -Xmx1g -Xmn512m -
XX:PermSize=128m -XX:MaxPermSize=320m"

# vim /usr/local/rocketmq/bin/runserver.sh

JAVA_OPT="${JAVA_OPT} -server -Xms1g -Xmx1g -Xmn512m -
XX:PermSize=128m -XX:MaxPermSize=320m"

8.启动NameServer

    # cd /usr/local/rocketmq/bin

    # nohup sh mqnamesrv &

9. 启动BrokerServer A-131

# cd /usr/local/rocketmq/bin
# nohup sh mqbroker -c /usr/local/rocketmq/conf/2m-noslave/broker-a.properties >/dev/null 2>&1 &

10.启动BrokerServerB-134

# cd /usr/local/rocketmq/bin
# nohup sh mqbroker -c /usr/local/rocketmq/conf/2m-noslave/broker-b.properties >/dev/null 2>&1 &

11.好的吧,咱们再来一遍tomcat和jdk的配置.....我配置在131的服务器。

 /usr/local下的jdk1.7和tomcat7.0事先已经就位,咱们要做的...........

 # vim /etc/profile

# /etc/profile

export JAVA_HOME=/usr/local/jdk1.7
export ZOOKEEPER_HOME=/usr/local/zookeeper
export PATH=.:$JAVA_HOME/bin:$ZOOKEEPER_HOME/bin:$PATH

#cd /usr/local/apache-tomcat-7.0.29/webapps

#ll

total 24
drwxr-xr-x. 13 root root 4096 Mar 10 00:58 docs
drwxr-xr-x.  6 root root 4096 Mar 10 00:58 examples
drwxr-xr-x.  5 root root 4096 Mar 10 00:58 host-manager
drwxr-xr-x.  5 root root 4096 Mar 10 00:58 manager
drwxr-xr-x.  6 root root 4096 Mar 10 01:08 rocketmq-console
drwxr-xr-x.  3 root root 4096 Mar 10 00:58 ROOT

直接将事先备好的rocketmq-console.war 放进来

#vim /usr/local/apache-tomcat-7.0.29/webapps/rocketmq-console/WEB-INF/classes/config.properties

将地址改成自己的:

rocketmq.namesrv.addr=192.168.183.131:9876;192.168.183.134:9876

访问131服务器的tomcat

http://192.168.183.131:8080/rocketmq-console/

104303_ZSM8_2453460.png

12.数据清理

# cd /usr/local/rocketmq/bin
# sh mqshutdown broker
# sh mqshutdown namesrv
# --等待停止
# rm -rf /usr/local/rocketmq/store
# mkdir /usr/local/rocketmq/store
# mkdir /usr/local/rocketmq/store/commitlog
# mkdir /usr/local/rocketmq/store/consumequeue
# mkdir /usr/local/rocketmq/store/index
# --按照上面步骤重启NameServer与BrokerServer

 

转载于:https://my.oschina.net/2286252881/blog/858088

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值