RocketMQ 是一款分布式戳晌、隊列模型的消息中間件干签,具有以下特點:
- 能夠保證嚴(yán)格的消息順序
- 提供豐富的消息拉取模式
- 高效的訂閱者水平擴展能力
- 實時的消息訂閱機制 億級消息堆積能力
更多介紹參考github地址:rocketmq
Rocketmq[雙master模式搭建]
一哟玷、服務(wù)器及環(huán)境說明
1.服務(wù)器說明
IP | 角色 | 模式 |
---|---|---|
192.168.1.121 | rocketmqnameserver1,broker-a | Master1 |
192.168.1.122 | rocketmqnameserver2,broker-b | Master2 |
2.系統(tǒng)環(huán)境
visualbox 5.1.8 及 centos 6.5
二、Rocketmq安裝與配置
- 分別設(shè)置兩個虛擬機的靜態(tài)IP地址
# vim /etc/sysconfig/network-scripts/ifcfg-eth0
然后重新啟動網(wǎng)卡service network restart
另外一臺機器也是同樣的設(shè)計知識ip地址設(shè)置的不一樣 - 設(shè)置主機名
以121機器為例
# vim /etc/hosts 添加如下
192.168.1.121 rocketmq-nameserver1
192.168.1.121 rocketmq-nameserver2
不僅修改hosts文件,還要修改/etc/sysconfig/network收毫,筆者在這里坑了好久
# vim /etc/sysconfig/network 添加如下
NETWORKING=yes
HOSTNAME=rocketmq-nameserver1
使用source /etc/sysconfig/network命令,使修改立即生效或者注銷系統(tǒng)殷勘,新打開終端此再,看是命令提示符的主機是否已經(jīng)更新了。注:另一臺機器也是如此操作玲销! - 防火墻設(shè)置
如果是開發(fā)環(huán)境 #service iptables stop
直接關(guān)閉防火墻
若是生產(chǎn)環(huán)境就需要配置防火墻输拇,增加端口規(guī)則,默認(rèn)nameserver端口是9876贤斜,筆者直接就關(guān)閉防火墻服務(wù)
注:另一臺機器也是如此操作策吠! - JDK安裝設(shè)置
- jdk-8u111-linux-x64.tar.gz 下載jdk放置/usr/local/software
-
tar -zxvf jdk-8u111-linux-x64.tar.gz -C .
解壓到當(dāng)前文件夾 -
mv jdk-8u111-linux-x64 jdk1.8
重命名 -
vim /etc/profiles 設(shè)置環(huán)境變量
-
source /etc/profile
讓配置生效
注:另一臺機器也是如此操作!
- Rocketmq安裝與配置(以3.2.6為例)
- 下載alibaba-rocketmq-3.2.6.tar.gz 放置/usr/local/software
-
tar -zxvf alibaba-rocketmq-3.2.6.tar.gz -C /usr/local
解壓 -
ln -s alibaba-rocketmq-3.2.6 rocketmq
建立軟連接 -
mkdir /usr/local/rocketmq/store
存儲路徑 -
mkdir /usr/local/rocketmq/store/commitlog
commitLog 存儲路徑 -
mkdir /usr/local/rocketmq/store/consumequeue
消費隊列存儲路徑存儲路徑 -
mkdir /usr/local/rocketmq/store/index
消息索引存儲路徑 - 修改broker的配置文件瘩绒,注意現(xiàn)在搭建的是2master模式配置文件就在2m-nosalve下
# vim /usr/local/rocketmq/conf/2m-noslave/broker-a.properties
這里主要注意的是brokerName以及namesrnName的地址需要與hosts設(shè)置的一致
注:另一臺機器編輯的是 # vim /usr/local/rocketmq/conf/2m-noslave/broker-b.properties文件猴抹,brokerName=broker-b - 修改日志配置文件
#mkdir -p /usr/local/rocketmq/logs
#cd /usr/local/rocketmq/conf && sed -i 's#${user.home}#/usr/local/rocketmq#g' *.xml
注:另一臺機器也是如此操作! - 修改啟動參數(shù)
因為是開發(fā)環(huán)境并且是虛擬機锁荔,內(nèi)存沒有那么大蟀给,所以需要將他們的參數(shù)調(diào)小,但是最好不要低于1G堕战。若是生產(chǎn)環(huán)境坤溃,當(dāng)然越大越好,默認(rèn)配置是4G嘱丢。
#vim /usr/local/rocketmq/bin/runbroker.sh
#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"
注:另一臺機器也是如此操作薪介! - 啟動兩臺的namesrv
#cd /usr/local/rocketmq/bin
#nohup sh mqnamesrv &
因為rocketmq是java開發(fā)的,所以通過jps命令查看namesrv有沒有啟動越驻,當(dāng)然通過日志文件也可以汁政,namesrv正常啟動之后道偷,后續(xù)再分別啟動Broker - 啟動BrokerServer[192.168.1.121]
#cd /usr/local/rocketmq/bin
#nohup sh mqbroker -c /usr/local/rocketmq/conf/2m-noslave/broker-a.properties >/dev/null 2>&1 &
#jps
查看進(jìn)程
#tail -f -n 500 /usr/local/rocketmq/logs/rocketmqlogs/broker.log
#tail -f -n 500 /usr/local/rocketmq/logs/rocketmqlogs/namesrv.log
- 啟動BrokerServer[192.168.1.122]
#cd /usr/local/rocketmq/bin
#nohup sh mqbroker -c /usr/local/rocketmq/conf/2m-noslave/broker-b.properties >/dev/null 2>&1 &
#jps
查看進(jìn)程
#tail -f -n 500 /usr/local/rocketmq/logs/rocketmqlogs/broker.log
#tail -f -n 500 /usr/local/rocketmq/logs/rocketmqlogs/namesrv.log