1、rocketmq是java语言写,需要在jdk环境运行
下载jdk、rocketmq
Oracle | Cloud Applications and Cloud Platform
RocketMQ · 官方网站 | RocketMQ
2、安装jdk
tar -zxvf jdk-8u351-linux-x64.tar.gz
vi /etc/profile
最后面添加
export JAVA_HOME=/usr/local/jdk1.8.0_351
export PATH=$PATH:$JAVA_HOME/bin
source /etc/profile
3、安装rocketmq
yum install -y unzip zip
unzip rocketmq-all-5.0.0-bin-release.zip
mv rocketmq-all-5.0.0-bin-release/ /usr/local/rocketmq
启动nameserver
nohup sh bin/mqnamesrv &
---tail -f /root/logs/rocketmqlogs/namesrv_default.log 查看运行状态没显示成功
tail -1000f nohup.out
启动broker(需要调用nameserver (端口9876))
vi bin/runbroker.sh 把jvm所需内存改小(默认8G)
nohup sh bin/mqbroker -n localhost:9876 &
jps 查看线程
4、测试
producer::
export NAMESRV_ADDR=localhost:9876 --设置环境变量
sh bin/tools.sh org.apache.rocketmq.example.quickstart.Producer --使用demo发送消息
consumer::
export NAMESRV_ADDR=localhost:9876 --设置环境变量
sh bin/tools.sh org.apache.rocketmq.example.quickstart.Consumer --使用demo消费消息
5、关闭
关闭nameserver
sh bin/mqshutdown namesrv
关闭broker
sh bin/mqshutdown broker
6、搭建集群
准备两台服务器 (m1 s2) 和 (m2 s1)
vi /etc/hosts
域名映射
#nameserver
192.168.159.131 rmq-ns1
192.168.159.132 rmq-ns2
#broker
192.168.159.131 rmq-m1
192.168.159.131 rmq-s2
192.168.159.132 rmq-m2
192.168.159.132 rmq-s1
systemctl restart network
配置环境变量
vi /etc/profile
#set rocketmq
ROCKETMQ_HOME=/usr/local/rocketmq/rocketmq-all-5.0.0-bin-release
PATH=$PATH:$ROCKETMQ_HOME/bin
export ROCKETMQ_HOME PATH
创建消息存储的路径
mkdir /usr/local/rocketmq/store
mkdir /usr/local/rocketmq/store/commitlog
mkdir /usr/local/rocketmq/store/consumequeue
mkdir /usr/local/rocketmq/store/index
配置broker(如之前开启namesrv\broker需要停止)
cd conf/2m-2s-sync
broker-a.properties
修改为如下:
屏蔽:
#所属集群名字
brokerClusterName=rocketmq-cluster
#broker名字,注意此处不通的配置文件填写的不一样
brokerName=broker-a
#0 表示 Master,>0 表示Slave
brokerId=1
#nameserver地址,分号分割
namesrvAddr=rmq-ns1:9876;rmq-ns2:9876
#在发送消息时,自动创建服务器不存在的topic,默认创建的队列数
defaultTopicQueueNums=4
#是否允许 Broker 自动创建Topic,建议线下开启,线上关闭
autoCreateTopicEnable=true
#是否允许 Broker 自动创建订阅组,建议线下开启,线上关闭
autoCreateSubscriptionGroup=true
#Broker 对外服务的监听端口
listenPort=11011
#删除文件时间点,默认凌晨4点
deleteWhen=04
#文件保留时间,默认48小时
fileReserverTime=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=SYNC_MASTER
#刷盘方式
#- ASYNC_FLUSH 异步刷盘
#- SYNC_FLUSH 同步刷盘
#- SLAVE
flushDiskType=SYNC_FLUSH
#checkTransactionMessageEnable=false
#发消息线程池数量
#sendMessageThreadPoolNums=128
#拉消息线程池数量
#pullMessageThreadPoolNums=128