一、双Master RocketMq集群的搭建
1、服务器环境:
| 序号 | IP | 用户名 | 角色 | 模式 | 
| 1 | 192.168.211.128 | root | nameServer1,brokerServer1 | Master1 | 
| 2 | 192.168.211.129 | root | nameServer2,brokerServer2 | Master1 | 
2、添加hosts信息
vim /etc/hosts
| IP | NAME | 
| 192.168.211.128 | rocketmq-nameserver1 | 
| 192.168.211.128 | rocketmq-master1 | 
| 192.168.211.129 | rocketmq-nameserver2 | 
| 192.168.211.129 | rocketmq-master2 | 
3、上传解压rocketMq到服务器
  上传alibaba-rocketmq-3.2.6.tar.gz文件至/usr/local/install
	  解压tar -zxvf alibaba-rocketmq-3.2.6.tar.gz -C /usr/local/software
4、创建软连接(两台机器)
ln -s alibaba-rocketmq rocketmq
5、创建存储路径(两台机器)
  # mkdir /usr/local/software/rocketmq/store
	  # mkdir /usr/local/software/rocketmq/store/commitlog
	  # mkdir /usr/local/software/rocketmq/store/consumequeue
	  # mkdir /usr/local/software/rocketmq/store/index
6、RocketMQ配置文件(两台机器)
  # vim /usr/local/software/rocketmq/conf/2m-noslave/broker-a.properties
	  # vim /usr/local/software/rocketmq/conf/2m-noslave/broker-b.properties
1 将a.properties和b.properties文件中的内容全部清掉(用下面的内容替换掉) 2 #所属集群名字 3 brokerClusterName=rocketmq-cluster 4 #broker名字,注意此处不同的配置文件填写的不一样 例如:在a.properties 文件中写 broker-a 在b.properties 文件中写 broker-b 5 brokerName=broker-a|broker-b 6 #0 表示 Master,>0 表示 Slave 7 brokerId=0 8 #nameServer地址,分号分割 9 namesrvAddr=rocketmq-nameserver1:9876;rocketmq-nameserver2:9876 10 #在发送消息时,自动创建服务器不存在的topic,默认创建的队列数 11 defaultTopicQueueNums=4 12 #是否允许 Broker 自动创建Topic,建议线下开启,线上关闭 13 autoCreateTopicEnable=true 14 #是否允许 Broker 自动创建订阅组,建议线下开启,线上关闭 15 autoCreateSubscriptionGroup=true 16 #Broker 对外服务的监听端口 17 listenPort=10911 18 #删除文件时间点,默认凌晨 4点 19 deleteWhen=04 20 #文件保留时间,默认 48 小时 21 fileReservedTime=120 22 #commitLog每个文件的大小默认1G 23 mapedFileSizeCommitLog=1073741824 24 #ConsumeQueue每个文件默认存30W条,根据业务情况调整 25 mapedFileSizeConsumeQueue=300000 26 #destroyMapedFileIntervalForcibly=120000 27 #redeleteHangedFileInterval=120000 28 #检测物理文件磁盘空间 29 diskMaxUsedSpaceRatio=88 30 #存储路径 31 storePathRootDir=/usr/local/software/rocketmq/store 32 #commitLog 存储路径 33 storePathCommitLog=/usr/local/software/rocketmq/store/commitlog 34 #消费队列存储路径存储路径 35 storePathConsumeQueue=/usr/local/software/rocketmq/store/consumequeue 36 #消息索引存储路径 37 storePathIndex=/usr/local/software/rocketmq/store/index 38 #checkpoint 文件存储路径 39 storeCheckpoint=/usr/local/software/rocketmq/store/checkpoint 40 #abort 文件存储路径 41 abortFile=/usr/local/software/rocketmq/store/abort 42 #限制的消息大小 43 maxMessageSize=65536 44 #flushCommitLogLeastPages=4 45 #flushConsumeQueueLeastPages=2 46 #flushCommitLogThoroughInterval=10000 47 #flushConsumeQueueThoroughInterval=60000 48 #Broker 的角色 49 #- ASYNC_MASTER 异步复制Master 50 #- SYNC_MASTER 同步双写Master 51 #- SLAVE 52 brokerRole=ASYNC_MASTER 53 #刷盘方式 54 #- ASYNC_FLUSH 异步刷盘 55 #- SYNC_FLUSH 同步刷盘 56 flushDiskType=ASYNC_FLUSH 57 #checkTransactionMessageEnable=false 58 #发消息线程池数量 59 #sendMessageThreadPoolNums=128 60 #拉消息线程池数量 61 #pullMessageThreadPoolNums=128
7、修改日志文件(两台机器)
  # mkdir -p /usr/local/software/rocketmq/logs
	  # cd /usr/local/software/rocketmq/conf && sed -i ‘s#${user.home}#/usr/local/software/rocketmq#g‘ *.xml
8、修改启动脚本参数(修改启动脚本参数两台机器)
  8.1、vim /usr/local/software/rocketmq/bin/runbroker.sh
		
		  #===========================================================================================
		  # JVM Configuration
		  #===========================================================================================
		  JAVA_OPT="${JAVA_OPT} -server -Xms1g -Xmx1g -Xmn512m -
		  XX:PermSize=128m -XX:MaxPermSize=320m"
	
	  8.2、vim /usr/local/software/rocketmq/bin/runserver.sh
		  JAVA_OPT="${JAVA_OPT} -server -Xms1g -Xmx1g -Xmn512m -
		  XX:PermSize=128m -XX:MaxPermSize=320m"
9、启动NameServer(特别注意:在启动 BrokerServer 之前先关闭防火墙)
  # cd /usr/local/software/rocketmq/bin
	  # 	nohup sh mqnamesrv &
10、启动BrokerServer A【192.168.211.128】
  # cd /usr/local/software/rocketmq/bin
	  # nohup sh mqbroker -c /usr/local/software/rocketmq/conf/2m-noslave/broker-a.properties >/dev/null 2>&1 &
	  # netstat -ntlp
	  # jps
	  # tail -f -n 500 /usr/local/software/rocketmq/logs/rocketmqlogs/broker.log
	  # tail -f -n 500 /usr/local/software/rocketmq/logs/rocketmqlogs/namesrv.log
11、启动BrokerServer B 【192.168.211.129】
  # cd /usr/local/software/rocketmq/bin
	  # nohup sh mqbroker -c /usr/local/software/rocketmq/conf/2m-noslave/broker-b.properties >/dev/null 2>&1 &
	  # netstat -ntlp
	  # jps
	  # tail -f -n 500 /usr/local/software/rocketmq/logs/rocketmqlogs/broker.log
	  # tail -f -n 500 /usr/local/software/rocketmq/logs/rocketmqlogs/namesrv.log
12、停止服务
	    先停止 broker 在停止  namesrv
	    cd /usr/local/software/rocketmq/bin
	    # sh mqshutdown broker
	    # sh mqshutdown namesrv
原文:http://www.cnblogs.com/lls1413/p/6875531.html