搭建RocketMQ
特点:Apache RocketMQ是一个分布式消息传递和流媒体平台,具有低延迟、高效性和可靠性,万亿级容量和灵活的可伸缩性。它由四个部分组成,nameserver,broker,生产者和消费者,他们中的每一个都可以水平扩展,而没有单个故障点。
nameserver:提供轻量级的服务发现和路由。每个名称服务器记录完整的路由信息,提供相应的读写服务,并支持快速的存储扩展。
Broker:通过提供轻量级的TOPIC和QUEUE机制来寸尺消息
2、创建一个存放mq压缩包的文件夹
/usr/local/rocketmq/rocketmq40
解压zip文件 : unzip rocketmq-all-4.7.1-bin-release.zip
如果提示-bash: unzip: command not found
执行:yum install -y unzip 安装upzip命令,安装完成之后再解压
3、创建文件夹
进入store
cd /usr/local/bin/rocketmq/rocketmq40/
mkdir store mkdir logs
cd store
mkdir commitlog mkdir index mkdir consumequene mkdir checkponitt
4、配置环境变量ROCKET_HOME(!!!!)
vim /etc/profile
在后面添加
export ROCKETMQ_HOME=/usr/local/rocketmq/rocketmq40
5、进入
/usr/local/rocketmq/rocketmq40/conf/2m-2s-async
打开broker-a.properties,替换为下面内容
#所属集群名字
brokerClusterName=rocketmq-cluster
#broker名,,注意此处不同的配置文件填写的不一样
brokerlName-broker-a
#0表示Master, o表示
slavebrokerId=0
#nameServer地址,分号分割
namesrvAddr=mqnameserver1:9876
#在发送消息时, 自动创建服务器不存在的Topic,默认创建的队列数
defaultTopicQueueNums=4
#是否允许Broker 自动创建Topic,建议线下开启,线上关闭
autoCreateTopicEnable=true
#是否允许Broker自动创建订阅组,建议线下开启,线上关闭
autocreatesubscriptionGroup-true
#Broker对外服务的监听端口
listenPort=10911
#删除文件时间点,默认是凌晨4点
deletewhen=04
#文件保留时间,默认48小时
fileReservedTime=120
#commitLog每个文件的大小默认
16mapedFilesizeCommitLog=1073741824
#ConsumeQueue每个文件默认存30W条,根据业务情况调整
#destroyMapedFileIntervalForciblv=120000 #redeleteHangedFileInterval=120000#检测
物理文件磁盘空间
diskMaxUsedSpaceRatio=88
# 存储路径
storePathRootDir = /usr/local/rocketmq/rocketmq40/store
# commitLog存储路径
storePathCommitLog = /usr/local/rocketmq/rocketmq40/store/commitlog
#消费队列存储路径
storePathConsumeOueue=/usr/local/rocketmq/rocketmq40/store/consumequeue
# 消息索引存储路径
storePathIndex=/usr/local/rocketmq/rocketmq40/store/indext
# checkpoint文件存储路径
storeCheckpoint=/usr/local/rocketmq/rocketmq40/store/checkpointt
# abort文件存储路径
abortFile=/usr/local/rocketmq/rocketmq40/store/abort
#限制的消息大小
maxMessageSize=65536
# flushCommitLogLeastPages=4
# flushConsumeQueueLeastPages=2
# flushcommitLogThoroughInterval=10006
# flushConsumeOueueThoroughInterval=60000
# Broker的角色
#- ASYNCMASTER异步复制Master
#- SYNC MASTER同步双写Master
#-SLAVE
brokerRole=ASYNC_MASTER
#刷盘方式
#-ASYNC-FLUSH异步刷盘
#-SYNC FLUSH同步刷盘
flushDiskType=ASYNC FLUSH
#checkTransactionMessageEnable=false#发消息线程池数量
#sendMessageTreadPoolNums=128
#拉消息线程池数量
#pullMessageTreadPooINums=128
mapedFilesizeConsumeOueue=309000
6、进入
/usr/local/rocketmq/rocketmq40/conf/logback_namesrv.xml
将里面的rockethome改成实际的地址。
7、将内存改小,改为512m 512m 256m
vi runserver.sh
vi runbroker.sh
8、启动rocketMQ,有两个步骤,先启动mqNameserver ,再启动mqbroker,首先要切换到rocketMQ的bin目录下。
先启动mqNameserver:
直接启动: sh ./mqnamesrv
后台启动: nohup sh ./mqnamesrv &
查看日志
tail -f ~/logs/rocketmqlogs/namesrv.log
9、 启动mqBorker
nohup sh mqbroker -c /usr/local/rocketmq/rocketmq40/conf/2m-2s-async/broker-a.properties -n 192.168.43.219:9786 autoCreateTopicEnable=true &
查看日志
tail -f ~/logs/rocketmqlogs/broker.log
10、通过jps命令查看