rocketmq环境搭建

来源:互联网 发布:linux sqlplus 登录 编辑:程序博客网 时间:2024/06/05 04:57

RocketMq是一款分布式、队列模型的消息中间件,具有以下特点:
1.能够保证严格的消息顺序
2.提供丰富的消息拉取模式
3.高效的订阅者水平扩展能力
4.实时的消息订阅机制
5.亿级消息堆积能力

选用理由;
1.强调集群无单点,可扩展,任意一点高可用,水平可扩展
2.海量消息堆积能力,消息堆积后,写入低延迟
3.支持上万个队列
4.消息失败重试机制
5.消息可查询
6.开源社区活跃
7.成熟度(经过双十一考验)

RocketMq环境搭建(双master模式)

以下配置同时在两台master服务器上部署

1.vim /etc/hosts 配置nameserver和master,在此配置在同一台服务器上

192.168.0.2 rocketmq-nameserver1192.168.0.2 rocketmq-master1192.168.0.3 rocketmq-nameserver2192.168.0.3 rocketmq-master2

重启网卡 service network restart

2.上传解压rocketmq-3.2.6.tar.gz
创建存储路径

mkdir /usr/rocketmq/storemkdir /usr/rocketmq/store/commitlogmkdir /usr/rocketmq/store/consumequeuemkdir /usr/rocketmq/store/index

3.rocketmq配置文件

vim /usr/rocketmq/conf/2m-nosave/broker-a.propertiesvim /usr/rocketmq/conf/2m-nosave/broker-b.properties
#所属集群名字brokerClusterName=rocketmq-cluster#broker名字,注意此处不同的配置文件填写的不一样,如broker-a.properties,brokerName=broker-abrokerName=broker-a|broker-b#0 表示 Master,>0 表示 SlavebrokerId=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每个文件的大小默认1GmapedFileSizeCommitLog=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#- SLAVEbrokerRole=ASYNC_MASTER#刷盘方式#- ASYNC_FLUSH 异步刷盘#- SYNC_FLUSH 同步刷盘flushDiskType=ASYNC_FLUSH#checkTransactionMessageEnable=false#发消息线程池数量#sendMessageThreadPoolNums=128#拉消息线程池数量#pullMessageThreadPoolNums=128

4.修改启动配置参数(虚拟机内存小需要优化一下JVM,生产中可以不用修改)

# vim /usr/local/rocketmq/bin/runbroker.sh#==============================================================================# 开发环境JVM Configuration#==============================================================================JAVA_OPT="${JAVA_OPT} -server -Xms1g -Xmx1g -Xmn512m -XX:PermSize=128m -XX:MaxPermSize=320m"# vim /usr/local/rocketmq/bin/runserver.shJAVA_OPT="${JAVA_OPT} -server -Xms1g -Xmx1g -Xmn512m -XX:PermSize=128m -XX:MaxPermSize=320m"

修改日志配置,将conf目录下所有xml文件中的{user.home}替换为/usr/local/rocketmq

mkdir -p /usr/local/rocketmq/logs# cd /usr/local/rocketmq/conf && sed -i 's#${user.home}#/usr/local/rocketmq#g'*.xml

5.启动nameserver

nohup sh mqnamesrv &

tail nohup.out 查看是否启动成功

启动broker

nohup sh mqbroker -c /usr/local/rocketmq/conf/2m-noslave/broker-a.properties &

jps查看进程:

这里写图片描述

部署管控台

用于管理RocketMQ3.2.6集群服务,直接将rocketmq-console.war包放在tomcat的webapps目录下,修改webapps/rocketmq-console/WEB-INF/classes/config.properties 里的nameserver地址.
启动tomcat,访问http://192.168.0.3:8080/rocketmq-console (tomcat部署在192.168.0.3)

这里写图片描述