分享

第一章:RocketMQ安装

 小虚竹 2021-11-30
技术活,该赏
关注+一键三连(点赞,评论,收藏)再看,养成好习惯

RocketMQ使用教程相关系列 目录



第一节:下载RocketMQ

演示:RocketMQ版本:4.5.1

下载地址

https : //archive.apache.org/dist/rocketmq/4.5.1/rocketmq-all-4.5.1-bin-release.zip

环境要求

  • Linux64位系统
  • JDK1.8(64位)
  • 源码安装需要安装Maven 3.2.x

第二节:安装RocketMQ

以二进制包安装

上传下载的安装包到服务器上

0

解压安装包

先查看下有没有安装unzip

unzip

出现下图则是有安装

0

出现下图则是没有安装

0

安装命令

yum install unzip

0

解压安装包并移动到指定目录

创建对应的目录/usr/local/server/rocketmq

 cd /usr/local/
mkdir server
cd server/
mkdir rocketmq

0

unzip rocketmq-all-4.5.1-bin-release.zip -d /usr/local/server/rocketmq

0

更改文件名

cd /usr/local/server/rocketmq/
mv rocketmq-all-4.5.1-bin-release/ rocketmq
cd ..
mv rocketmq/ mq #出现两个rocketmq文件夹名,改上一个文件夹为mq

0

0

创建rocketmq存储目录

现有的目录结构是这样的

0

创建存储目录

mkdir logs
mkdir store
cd store
mkdir commitlog
mkdir consumequeue
mkdir index

0

新创建文件夹说明

  • logs:存储日志目录
  • store:存储数据文件目录
  • commitlog:存储消息信息
  • consumequeue,index:存储 消息的索引数据

rocketMQ目录介绍

  • bin:启动脚本,包括shell脚本和CMD脚本
  • conf:实例配置文件 ,包括broker配置文件、logback配置文件等
  • lib:依赖jar包,包括Netty、commons-lang、FastJSON等

conf目录文件说明

  • 2m-2s-async :2主2从-异步
  • 2m-2s-sync :2主2从-同步
  • 2m-noslave :2主无从

这里演示单结点配置:只要先修改2m-2s-async配置实现。

cd 2m-2s-async

0

broker-a.properties:单结点a配置文件
broker-a-s.properties:单结点a的从结点配置文件
broker-b.properties:单结点b配置文件
broker-b-s.properties:单结点b的从结点配置文件

第三节:单结点配置

配置hosts

vim /etc/hosts

添加nameserver和broker

# nameserver
192.168.88.131 rocketmq-nameserver1

# broker
192.168.88.131 rocketmq-master1

0

配置完成后, 重启网卡

systemctl restart network

进入conf配置文件夹

cd conf

0

进入2m-2s-async

cd 2m-2s-async

0

修改broker-a.properties

vim broker-a.properties

将下面的配置覆盖 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 对外服务的监听端口
brokerIP1=192.168.88.131
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/server/mq/rocketmq/store
#commitLog 存储路径
storePathCommitLog=/usr/local/server/mq/rocketmq/store/commitlog
#消费队列存储路径存储路径
storePathConsumeQueue=/usr/local/server/mq/rocketmq/store/consumequeue
#消息索引存储路径
storePathIndex=/usr/local/server/mq/rocketmq/store/index
#checkpoint 文件存储路径
storeCheckpoint=/usr/local/server/mq/rocketmq/store/checkpoint
#abort 文件存储路径
abortFile=/usr/local/server/mq/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 同步刷盘
flushDiskType=SYNC_FLUSH
#checkTransactionMessageEnable=false
#发消息线程池数量
#sendMessageThreadPoolNums=128
#拉消息线程池数量
#pullMessageThreadPoolNums=128

注:配置里的路径要与刚创建的文件夹路径保持一致,如有自定义修改

修改日志路径

进入conf 目录,替换所有xml中的${user.home},保证日志路径正确

0

0

语法:

sed -i 批量替换作用

sed -i 's#原字符串#新字符串#g' 替换的文件
sed -i 's#${user.home}#/usr/local/server/mq/rocketmq#g' *.xml

0

说明替换成功了

0

修改 runbroker.sh

调整内存大小(这里只是演示用途,实际的内存大小要以生产环境为准)

cd ..
cd bin/
vim runbroker.sh

0

0

 调整为1g

0

修改 runserver.sh

调整内存大小(这里只是演示用途,实际的内存大小要以生产环境为准)

vim runserver.sh

0

0

第四节:环境变量配置

vim /etc/profile

在profile文件的末尾加入如下命令

#set rocketmq
ROCKETMQ_HOME=/usr/local/server/mq/rocketmq/
PATH=$PATH:$ROCKETMQ_HOME/bin
export ROCKETMQ_HOME PATH

输入:wq! 保存并退出, 并使得配置立刻生效:

source /etc/profile

先启动namesrv

nohup sh mqnamesrv &

0

服务没启动成功,查看下日志

cd /usr/local/server/mq/rocketmq/bin/
cat nobup.out

0

原因是输入的命令写成了

nohup sh mqnamesrc &    ##应该是 nohup sh mqnamesrv &

输入

ohup sh mqnamesrv &

然后回车

通过jps查看

0

启动broker

 nohup sh mqbroker -c /usr/local/server/mq/rocketmq/conf/2m-2s-async/broker-a.properties > /dev/null 2>&1 &

注:

linux下详解shell中>/dev/null 2>&1

https://www.cnblogs.com/ultranms/p/9353157.html

0

关闭namesrv和broker

关闭namesrv服务

#进入bin
sh mqshutdown namesrv

0

关闭broker服务

sh mqshutdown broker

0

通过jps验证下

0

第五节:防火墙配置

宿主机需要远程访问虚拟机的rocketmq服务和web服务,需要开放相关的端口号,简单粗暴的方式是直接关闭防火墙

# 关闭防火墙
systemctl stop firewalld.service 
# 查看防火墙的状态
firewall-cmd --state 
# 禁止firewall开机启动
systemctl disable firewalld.service

或者为了安全,只开放特定的端口号,RocketMQ默认使用3个端口:9876 、10911 、11011 。如果防火墙没有关闭的话,那么防火墙就必须开放这些端口:

  • nameserver 默认使用 9876 端口
  • master 默认使用 10911 端口
  • slave 默认使用11011 端口

执行以下命令:

# 开放name server默认端口
firewall-cmd --remove-port=9876/tcp --permanent
# 开放master默认端口
firewall-cmd --remove-port=10911/tcp --permanent
# 开放slave默认端口 (当前集群模式可不开启)
firewall-cmd --remove-port=11011/tcp --permanent 
# 重启防火墙
firewall-cmd --reload

第六节:RocketMQ架构介绍

  • Producer:消息的发送者;举例:发信者
  • Consumer:消息接收者;举例:收信者
  • Broker:暂存和传输消息;举例:邮局
  • NameServer:管理Broker;举例:各个邮局的管理机构
  • Topic:区分消息的种类;一个发送者可以发送消息给一个或者多个Topic;一个消息的接收者可以订阅一个或者多个Topic消息
  • Message Queue:相当于是Topic的分区;用于并行发送和接收消息

0

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多