Rocketmq 安装及主从配置

1、rocketmq依赖jdk,执行java -version看是否有安装java【若未安装则安装下java即可】

2、下载apache最新rocketmq二进制压缩文件

3、解压安装
unzip -d /opt/rocketmq rocketmq-all-4.2.0-bin-release.zip

4、添加环境变量
添加nameserver环境变量:
添加export NAMESRV_ADDR=127.0.0.1:9876
echo #/usr/local/bin bash>/etc/profile.d/rocketmq.sh
echo #rocketmq>>/etc/profile.d/rocketmq.sh
echo export NAMESRV_ADDR=127.0.0.1:9876>>/etc/profile.d/rocketmq.sh
source /etc/profile

5、启动
bin目录,启动nameserver和broker:
nohup sh mqnamesrv &
nohup sh mqbroker -n localhost:9876 &
查看进程:jps
启动broker时会卡顿,因为虚拟机内存和broker配置内存跟不上。
设置:给虚拟机预留1g的内存,这样启动时不太会卡:虚拟机设2g,nameserver和broker共用1g
清理缓存:echo 3 > /proc/sys/vm/drop_caches

6、启动失败
查看启动日志:cat nohup.out
启动失败: Native memory allocation (malloc) failed to allocate 8589934592 bytes for committing reserved memory.
因为nameserver和broker的默认配置内存超过虚拟机的内存,需根据宿主机配置调整虚拟机内存,并调整nameserver和broker的默认内存配置。
bin目录:
vi runserver.sh 
vi runbroker.sh
修改结果:
runserver.sh

runbroker.sh


7、启动成功后警告

bin目录:
vi mqadmin.xml  
vi mqbroker.xml  
vi mqnamesrv.xml  
vi mqfiltersrv.xml
删除红色部分:

vi tools.sh
vi ../benchmark/runclass.sh
删除红色部分:

8、查看日志
启动成功后查看mq动态日志:
tail -f ~/logs/rocketmqlogs/namesrv.log
tail -f ~/logs/rocketmqlogs/broker.log

9、调试过程中出现的问题
代码是基于springboot的简单示例
配置正确情况下,启动后尝试发布消息,仍报远程mq服务器topic不存在异常。
检查linux防火墙:service firewalld status
因centos7默认使用firewalld防火墙,而不是iptables,卸载firewalld,再安装iptables
步骤:
卸载firewalld:yum remove firewalld
安装iptables:yum install iptables-services
查看防火墙状态:service iptables status
停止防火墙:service iptables stop
启动防火墙:service iptables start
设为开机不启动:systemctl disable iptables.service
设为开机启动:systemctl enable iptables.service
如果要开启防火墙,则需要开放特定端口,例:开放3306端口
编辑:vi /etc/sysconfig/iptables
添加配置:-A INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT
重启防火墙使配置生效:systemctl restart iptables.service
其它相关命令:
查看防火墙规则:iptables -L
清空防火墙规则:iptables -F
保存使操作生效:/etc/sysconfig/iptables save
停止防火墙:/etc/sysconfig/iptables stop

10、关闭服务
sh /opt/rocketmq/bin/mqshutdown namesrv
sh /opt/rocketmq/bin/mqshutdown broker

11、多主多从配置
环境信息:

host1 rocketmq group a master
host2 rocketmq group a slave
host3 rocketmq group b master
host4 rocketmq group b slave

/opt/rocketmq/conf/目录下有不同的目录,达人店,达卡环境采用的时同步方式(2m-2s-sync)如下图:
2m-2s-async 目录下的配置指的是 异步方式【此种方式主备同步不同时,若出现主备切换时,有可能会丢失少量数据
2m-2s-sync 目录下的配置指的是 同步方式 【此种方式主备同时同步,性能上相对异步方式会稍微差点

同一个组中主备配置文件差异如下:


配置文件完成后,启动服务,以达卡举例:
## host1节点
nohup sh /opt/rocketmq/bin/mqnamesrv &
nohup sh /opt/rocketmq/bin/mqbroker -c /opt/rocketmq/conf/2m-2s-sync/broker-a.properties >/dev/null 2>&1 &

## host2节点
nohup sh /opt/rocketmq/bin/mqnamesrv &
nohup sh /opt/rocketmq/bin/mqbroker -c /opt/rocketmq/conf/2m-2s-sync/broker-a-s.properties >/dev/null 2>&1 &

## host3节点
nohup sh /opt/rocketmq/bin/mqnamesrv &
nohup sh /opt/rocketmq/bin/mqbroker -c /opt/rocketmq/conf/2m-2s-sync/broker-b.properties >/dev/null 2>&1 &

## host4节点
nohup sh /opt/rocketmq/bin/mqnamesrv &
nohup sh /opt/rocketmq/bin/mqbroker -c /opt/rocketmq/conf/2m-2s-sync/broker-b-s.properties >/dev/null 2>&1 &

参考文献:https://www.jianshu.com/p/04a98ba770a4

猜你喜欢

转载自blog.csdn.net/weixin_41953276/article/details/80930962