SpringCloudAlibaba全家桶之 RocketMQ 服务快速搭建(包含可视化console)

RocketMQ 介绍

简介

RocketMQ 是一款分布式、队列模型的消息中间件,具有以下特点:

  • 能够保证严格的消息顺序
  • 提供丰富的消息拉取模式
  • 高效的订阅者水平扩展能力
  • 实时的消息订阅机制
  • 亿级消息堆积能力
选用理由:
  • 强调集群无单点,可扩展,任意一点高可用,水平可扩展。
  • 海量消息堆积能力,消息堆积后,写入低延迟。
  • 支持上万个队列
  • 消息失败重试机制
  • 消息可查询
  • 开源社区活跃
  • 成熟度(经过双十一考验)

安装步骤(这里只示范单机模式)

1. 上传解压安装包
tar -xvf apache-rocketmq.tar.gz -C `你的rocketmq地址`
2. 创建所需目录
mkdir `你的rocketmq地址`/store
mkdir `你的rocketmq地址`/store/commitlog
mkdir `你的rocketmq地址`/store/consumequeue
mkdir `你的rocketmq地址`/store/index
3. 修改broker配置文件

vim 你的rocketmq地址/conf/2m-2s-async/broker-a.properties

#所属集群名字
brokerClusterName=rocketmq-cluster
#broker 名字,注意此处不同的配置文件填写的不一样
brokerName=broker-a
#0 表示 Master,>0 表示 Slave
brokerId=0
#nameServer 地址,分号分割
namesrvAddr=rocketmq-nameserver1: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=`你的rocketmq地址`/store
#commitLog 存储路径
storePathCommitLog=`你的rocketmq地址`/store/commitlog
#消费队列存储路径存储路径
storePathConsumeQueue=`你的rocketmq地址`/store/consumequeue
#消息索引存储路径
storePathIndex=`你的rocketmq地址`/store/index
#checkpoint 文件存储路径
storeCheckpoint=`你的rocketmq地址`/store/checkpoint
#abort 文件存储路径
abortFile=`你的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. 修改内存参数(此处为开发测试环境, 避免 broker 默认8g内存导致占用过高)

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"
5. 修改日志配置文件
mkdir -p `你的rocketmq地址`/logs
# cd `你的rocketmq地址`/conf && sed -i 's#${user.home}#/usr/local/rocketmq#g' *.xml
6. 启动nameserver
cd `你的rocketmq地址`
nohup sh bin/mqnamesrv &
7. 启动 BrokerServer A
cd `你的rocketmq地址`
nohup sh bin/mqbroker -c /usr/local/rocketmq/conf/2m-noslave/broker-a.properties >/dev/null 2>&1 &
8. 查看启动状态
jps
tail -f -n 500 /usr/local/rocketmq/logs/rocketmqlogs/broker.log
tail -f -n 500 /usr/local/rocketmq/logs/rocketmqlogs/namesrv.log
从GitHub上下载可视化后端源码并打包

GitHub下载可视化console-NG模块下载
下载好之后 直接Maven 打成一个jar包 其实就是个springboot web程序

通过命令行进入到rocketmq-console子目录,通过maven对其进行编译打包,mvn package
此时在rocketmq-console/target目录下生成了一个叫rocketmq-console-ng-1.0.1.jar的jar包

java -jar rocketmq-console-ng-1.0.1.jar 启动注意加入两个参数
  • –server.port=12581
  • –rocketmq.config.namesrvAddr=rocketmq主机地址:9876
大概长这个样子

SpringCloudAlibaba全家桶之 RocketMQ 服务快速搭建(包含可视化console)_第1张图片

有点麻烦 一步一步来 最终都会大功告成

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