我的環境 兩台阿里雲centos7服務器
首先,去官網下載解壓包,解壓。
然后進入bin目錄,需要修改runserver.sh文件和runbroker.sh文件。因為rocketmq默認配置文件需要的內存是非常高的。需要改小點。

就是把那兩個文件的這個參數改得小點。改成512m就可以了
然后啟動Name Server
nohup sh bin/mqnamesrv &
然后啟動broker(有兩種方法,我使用的是第二種方法。)
我使用的是第二種方法,也是我親自成功的。第一種方法我是一直都不成功,很郁悶。困擾我一個星期。
第一種:
先去安裝的根目錄下執行這個命令,批量創建文件目錄。因為下面的配置文件會用到
mkdir -vp store/{commitlog/,consumequeue/,index/,checkpoint/,abort/}
啟動broker復雜一點,需要跟配置文件。因為這個配置文件中包含大量的參數,比如brokerName 、namesrvAddr、autoCreateTopicEnable、數據,日志,索引,存放目錄 等等。如果你不跟這個配置文件,那你啟動的時候就必須在后面一個一個追加參數。麻煩的一比
當然,默認這個配置文件里面的配置是很少的。你需要把原來的刪除掉 給我下面的配置信息給copy過去就ok。
nohup sh bin/mqbroker ./conf/2m-noslave/broker-a.properties &
broker-a.properties
#所屬集群名字 brokerClusterName=rocketmq-cluster #broker名字,注意此處不同的配置文件填寫的不一樣 brokerName=broker-a|broker-b #0 表示 Master,>0 表示 Slave 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
第二種:
在根目錄執行這個命令
sh bin/mqbroker -m >broker.p
broker.p
打開這個文件 把我下面的全部復制上去去。替換到原來的
namesrvAddr=你的集群地址 brokerIP1=你的外網地址 brokerName=test-a brokerClusterName=DefaultCluster brokerId=0 autoCreateTopicEnable=true autoCreateSubscriptionGroup=true rejectTransactionMessage=false fetchNamesrvAddrByAddressServer=false transactionTimeOut=3000 transactionCheckMax=5 transactionCheckInterval=60000 storePathRootDir=/root/store storePathCommitLog=/root/store/commitlog flushIntervalCommitLog=500 commitIntervalCommitLog=200 flushCommitLogTimed=false deleteWhen=04 fileReservedTime=72 maxTransferBytesOnMessageInMemory=262144 maxTransferCountOnMessageInMemory=32 maxTransferBytesOnMessageInDisk=65536 maxTransferCountOnMessageInDisk=8 accessMessageInMemoryMaxRatio=40 messageIndexEnable=true messageIndexSafe=false haMasterAddress= brokerRole=ASYNC_MASTER flushDiskType=ASYNC_FLUSH cleanFileForciblyEnable=true transientStorePoolEnable=false
然后啟動
nohup sh bin/mqbroker -c broker.p &
查看是否啟動成功 有 BrokerStartup 和 NamesrvStartup 則說明啟動成功
[root@iZ2zei0nwllapkwklisoncZ apache-rocketmq]# jps 3811 Jps3722 NamesrvStartup 3758 BrokerStartup
關閉
> sh bin/mqshutdown broker The mqbroker(36695) is running... Send shutdown request to mqbroker(36695) OK > sh bin/mqshutdown namesrv The mqnamesrv(36664) is running... Send shutdown request to mqnamesrv(36664) OK
需要注意的是:需要在阿里雲上開啟三個端口
一個是9876端口 這個是nameServer的端口
一個是10909端口 這個是vip通道的端口
一個是10911端口 這個是broker的端口
坑巨多!!!慢慢發現吧
雙master雙slave的搭建也很簡單。配置文件修改三個參數
slave的brokerName和主的一樣。
brokerId要大於0
brokerRole這個值要變成SLAVE
