rocketmq环境搭建

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-nameserver1
192.168.0.2 rocketmq-master1
192.168.0.3 rocketmq-nameserver2
192.168.0.3 rocketmq-master2

重启网卡 service network restart

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

mkdir /usr/rocketmq/store
mkdir /usr/rocketmq/store/commitlog
mkdir /usr/rocketmq/store/consumequeue
mkdir /usr/rocketmq/store/index

3.rocketmq配置文件

vim /usr/rocketmq/conf/2m-nosave/broker-a.properties
vim /usr/rocketmq/conf/2m-nosave/broker-b.properties
#所属集群名字
brokerClusterName=rocketmq-cluster
#broker名字,注意此处不同的配置文件填写的不一样,如broker-a.properties,brokerName=broker-a
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

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.sh
JAVA_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)

rocketmq环境搭建_第1张图片

你可能感兴趣的:(消息中间件)