网站首页 > 博客文章 正文
本文给大家分享一下在macOS 中如何安装和配置RocketMQ的详细过程。
RocketMQ 使用Java语言开发,可以在任意安装了JRE 环境(1.8或以上)的平台上运行。
欢迎关注《Apache RocketMQ 深入浅出》系列文章,架构师将循序渐进地讲解Apache RocketMQ的开发实践。
1. Apache RocketMQ 入门介绍和整体架构图
一、下载并解压RocketMQ
下载当前最新 Release 版本:
下载页面:https://www.apache.org/dyn/closer.cgi?path=rocketmq/4.9.3/rocketmq-all-4.9.3-bin-release.zip
解压后,目录结构如下图所示:
其中 conf 文件夹存放的是 RocketMQ 的配置文件,提供了各种部署结构的示例配置。例如 2m-2s-async 是 2 主 2 从异步复制的配置示例;2m-noslave 是 2 主的示例配置。
二、配置环境变量
因为是在zsh shell环境中,我们修改zprofile文件:sudo vim /etc/zprofile
在 zprofile 配置文件中添加如下配置项:
# RocketMQ
export ROCKETMQ_HOME=/Users/rickie/apps/rocketmq-4.9.3
export PATH=$PATH:$ROCKETMQ_HOME/bin
保存zprofile,然后执行 source /etc/zprofile 命令,使上述配置生效。
三、配置文件
查看 ROCKET_HOME/conf目录下的broker.conf文件,文件默认内容如下所示:
brokerClusterName = DefaultCluster
brokerName = broker-a
brokerId = 0
deleteWhen = 04
fileReservedTime = 48
brokerRole = ASYNC_MASTER
flushDiskType = ASYNC_FLUSH
简要说明:
brokerClusterName:集群名称
brokerName:broker 名字,注意此处不同的配置文件填写的不一样
brokerId:0 表示 Master,> 0 表示 Slave
deleteWhen:删除文件时间点,默认凌晨4点
fileReservedTime:文件保留时间,默认48小时
brokerRole:broker 角色,ASYNC_MASTER 异步复制Master,SYNC_MASTER 同步双写Master,SLAVE
flushDiskType:ASYNC_FLUSH 异步刷盘,SYNC_FLUSH 同步刷盘
由于本文主要是搭建一个学习环境,故采取的部署架构为 1 主的部署架构,关于生产环境下如何搭建 RocketMQ 集群、如何调优参数等可以参考相关文章。
下面是更新后的 conf/broker.conf 配置文件:
#所属集群名字
brokerClusterName=rocketmq-cluster
#broker名字,名字可重复,为了管理,每个master起一个名字,它的slave可以采用相同名称,eg: master叫broker-a,slave也叫broker-a
brokerName=broker-a
#0 表示 Master,>0 表示 Slave
brokerId=0
brokerIP1=127.0.0.1
brokerIP2=127.0.0.1
#nameServer地址,分号分割
namesrvAddr=127.0.0.1:9876
#在发送消息时,自动创建服务器不存在的topic,默认创建的队列数
defaultTopicQueueNums=8
#是否允许 Broker 自动创建Topic,建议线下开启,线上关闭
autoCreateTopicEnable=true
#是否允许 Broker 自动创建订阅组,建议线下开启,线上关闭
autoCreateSubscriptionGroup=true
#Broker 对外服务的监听端口
listenPort=10911
#删除文件时间点,默认凌晨 4点
deleteWhen=04
#文件保留时间,默认 48 小时
fileReservedTime=48
#commitLog每个文件的大小默认1G
mapedFileSizeCommitLog=1073741824
#ConsumeQueue每个文件默认存30W条,根据业务情况调整
mapedFileSizeConsumeQueue=300000
destroyMapedFileIntervalForcibly=120000
#redeleteHangedFileInterval=120000
#检测物理文件磁盘空间
diskMaxUsedSpaceRatio=88
#存储路径
storePathRootDir=/Users/rickie/apps/rocketmq-4.9.3/store
#commitLog 存储路径
storePathCommitLog=/Users/rickie/apps/rocketmq-4.9.3/store/commitlog
#限制的消息大小
maxMessageSize=65536
flushCommitLogLeastPages=4
flushConsumeQueueLeastPages=2
flushCommitLogThoroughInterval=10000
flushConsumeQueueThoroughInterval=60000
#Broker 的角色
brokerRole=ASYNC_MASTER
#刷盘方式
flushDiskType=ASYNC_FLUSH
#checkTransactionMessageEnable=false
#发消息线程池数量
sendMessageTreadPoolNums=128
#拉消息线程池数量
pullMessageTreadPoolNums=128
简要说明:RocketMQ中broker配置brokcerIP1和brokerIP2的作用
brokerIP1:当前broker监听的IP;
brokerIP2:存在broker主从时,在broker主节点上配置了brokerIP2的话,broker从节点会连接主节点配置的brokerIP2来同步。
默认不配置brokerIP1和brokerIP2时,都会根据当前网卡选择一个IP使用。当你的机器有多块网卡时,很有可能会有问题。比如,我遇到的问题是机器上有两个IP,一个公网IP,一个私网IP,结果默认选择的走公网IP,这是不正确的,我期望的是所有业务内部通信都走内网。
此时,需要执行如下命令创建RocketMQ的配置目录,如下所示:
# ~ % cd $ROCKETMQ_HOME
# rocketmq-4.9.3 % pwd
/Users/rickie/apps/rocketmq-4.9.3
# rocketmq-4.9.3 % mkdir store
# rocketmq-4.9.3 % cd store
# store % mkdir commitlog
四、修改 broker jvm 和 nameserver jvm参数
这里修改 JVM 参数主要目的是个人学习电脑内存不够,默认 nameserver 会占用 4G,broker 会占用 8G。
(1)broker jvm
修改 bin/runbroker.sh 文件中的 jvm 参数,如下所示:
修改前配置如下:
JAVA_OPT="${JAVA_OPT} -server -Xms8g -Xmx8g"
修改后配置如下:
JAVA_OPT="${JAVA_OPT} -server -Xms1g -Xmx1g"
(2)nameserver jvm
如下是修改前后的配置:
#JAVA_OPT="${JAVA_OPT} -server -Xms4g -Xmx4g -Xmn2g -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
JAVA_OPT="${JAVA_OPT} -server -Xms512m -Xmx512m -Xmn256m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
下一篇文件将介绍RocketMQ 的启动,以及验证RocketMQ 是否启动成功。
猜你喜欢
- 2024-11-18 快速使用docker方式部署安装RocketMQ
- 2024-11-18 docker-4:mac使用docker部署开发用rocketmq
- 2024-11-18 扩展RocketMQ 使其支持任意时间精度的消息延迟
- 2024-11-18 RocketMQ如何突破内网限制,实现内外网互通
- 2024-11-18 SpringBoot3.0 + RocketMq 构建企业级数据中台完结
- 2024-11-18 centos7安装部署RocketMQ分布式集群
- 2024-11-18 「转」Spring Cloud异步场景分布式事务怎样做?试试RocketMQ
- 2024-11-18 RocketMQ集群搭建
- 2024-11-18 RocketMQ 的持久化配置
- 2024-11-18 RocketMQ,如何处理消息积压问题
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- powershellfor (55)
- messagesource (56)
- aspose.pdf破解版 (56)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- vue回到顶部 (57)
- qcombobox样式表 (68)
- vue数组concat (56)
- tomcatundertow (58)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)