我的环境是:CentOS release 6.5 (Final) + 1.8.0_144
rocketmq-4.9.2安装包和RocketMQ-console-图形化界面控制台可以在这个地址下载得到:
rocketmq-4.9.2版本-Java文档类资源-CSDN下载
rocketmq-externals-master-Java文档类资源-CSDN下载
4台机器,2m-2s
集群中的m-s使用的是sync方式(async)
上传安装包到虚拟机,并解压,我上传的路径是:/opt/rocketmq-4.9.2,有一个细节,要注意,上传到,切换到bin目录,执行受权命令,让所有可执行文件可以执行:
chmod 777 *
然后配置环境变量:
vi /etc/profile
export ROCKETMQ_HOME=/opt/rocketmq-4.9.2
export PATH=$PATH:$JAVA_HOME/bin:$ROCKETMQ_HOME/bin
修改成功后保存,退出。
执行:. /etc/profile 或source /etc/profile
使用文件生效
然后在命令行输入mq,然后按“tab"键,如果能自动提示,证明环境变更设置成功,否则失败:
在关闭防火墙:
永久关闭防火墙: chkconfig iptables off
分别在4台服务器上执行,创建目录:
mkdir -p /var/rocketmq/{logs,store/{commitlog,consumequeue,index}}
然后选择其中一台,进入
/opt/rocketmq-4.9.2/conf
可以看看,官方已经准备有配置文件了,我们只需要复制一份就行。
执行命令:
cp -r 2m-2s-sync/ 22conf
然后修改22conf目录下的文件,一共有4个文件,每个文件分别添加以下的配置就行。
namesrvAddr=192.168.1.26:9876;192.168.1.27:9876;192.168.1.28:9876
这个配置要根据自己虚拟机的IP,我的是这个。
添加以下的配置:
flushDiskType=ASYNC_FLUSH
namesrvAddr=192.168.1.26:9876;192.168.1.27:9876;192.168.1.28:9876
storePathRootDir=/var/rocketmq/store
storePathCommitLog=/var/rocketmq/store/commitlog
storePathIndex=/var/rocketmq/store/index
storePathConsumeQueue=/var/rocketmq/store/consumequeue
然后再修改日志路径,切换到:/opt/rocketmq-4.9.2/conf ,执行:
sed -i 's#${user.home}#/var/rocketmq#g' *.xml
注意,要修改默认内存,默认是4G内存,如果虚拟机配置不够,会导致服务无法启动,得修改两个配置文件: runbroker.sh 和runserver.sh
vi runbroker.sh
vi runserver.sh
修改:
JAVA_OPT="${JAVA_OPT} -server -Xms1g -Xmx1g -Xmn128m"
修改完成,然后把这个22conf目录,分别发送剩下的3台服务器,放的位置在:
/opt/rocketmq-4.9.2/conf/22conf
3、启动服务启动nameserver
我的三台服务器:192.168.1.26 ,192.168.1.27,192.168.1.28,分别执行命令:
mqnamesrv
#或者用后台启动, 这样启动的好处是按ctrl+C 程序不会停:
nohup sh mqnamesrv &
启动broker,分别在4台机器上执行以下命令:
192.168.1.26:
mqbroker -c /opt/rocketmq-4.9.2/conf/22conf/broker-a.properties
或者:nohup mqbroker -c /opt/rocketmq-4.9.2/conf/22conf/broker-a.properties &
192.168.1.27:
mqbroker -c /opt/rocketmq-4.9.2/conf/22conf/broker-a-s.properties
或者 nohup mqbroker -c /opt/rocketmq-4.9.2/conf/22conf/broker-a-s.properties &
192.168.1.28:
mqbroker -c /opt/rocketmq-4.9.2/conf/22conf/broker-b.properties
或者 nohup mqbroker -c /opt/rocketmq-4.9.2/conf/22conf/broker-b.properties &
n192.168.1.29:
mqbroker -c /opt/rocketmq-4.9.2/conf/22conf/broker-b-s.properties
或者 nohup mqbroker -c /opt/rocketmq-4.9.2/conf/22conf/broker-b-s.properties &
至此集群搭建好了。
用代码验证一下:
@Test
public void admin() throws Exception {
DefaultMQAdminExt admin = new DefaultMQAdminExt();
admin.setNamesrvAddr("192.168.1.26:9876;192.168.1.27:9876;192.168.1.28:9876");
admin.start();
ClusterInfo clusterInfo = admin.examineBrokerClusterInfo();
HashMap brokerAddrTable = clusterInfo.getBrokerAddrTable();
Set> entries = brokerAddrTable.entrySet();
Iterator> iter = entries.iterator();
while(iter.hasNext()){
Map.Entry next = iter.next();
System.out.println(next.getKey()+ " "+ next.getValue());
}
// TopicList topicList = admin.fetchAllTopicList();
// topicList.getTopicList().forEach(s->{
// System.out.println(s);
// });
}
4、安装RocketMQ-console-图形化界面控制台
可以看我写一另个博客:
window 10安装rocketmq-4.9.2,并安装RocketMQ-console-图形化界面控制台_fyihdg的博客-CSDN博客
不同的是,application.properties这个配置要修改:
配置后,本地windwos打包,把rocketmq-console-ng-2.0.0.jar上传到192.168.1.26服务器,
我上传到了/opt,执行命令:
java -jar rocketmq-console-ng-2.0.0.jar
#也可用这个后台运行:
nohup java -jar rocketmq-console-ng-2.0.0.jar >mq.log &
集群就这样搭建好了。是不是很简单
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)