前言
🍊作者简介: 不肯过江东丶,一个来自二线城市的程序员,致力于用“猥琐”办法解决繁琐问题,让复杂的问题变得通俗易懂。
🍊支持作者: 点赞👍、关注💖、留言💌~
关于消息队列,我们之前讲解过关于 RabbitMQ 的内容,今天咱们一起来聊一聊另一款消息队列中间件 —— RocketMQ。
RocketMQ 是阿里巴巴在2012年开发的分布式消息中间件,专为万亿级超大规模的消息处理而设计,具有高吞吐量、低延迟、海量堆积、顺序收发等特点。它是阿里巴巴双十一购物狂欢节和众多大规模互联网业务场景的必备基础设施。在同一年,阿里巴巴正式开源了 RocketMQ 的第一个版本,并且 RocketMQ 成为阿里巴巴的首选消息中间件,实现了内部应用的百分百接入。在2016年,RocketMQ在阿里云上开发了首个全托管服务,帮助大量数字化转型的企业构建现代应用,并开始体验大规模的云计算实践。同年,RocketMQ被捐赠给Apache基金会,并入选孵化器项目,旨在未来为更多开发者服务。
正好最近的项目中用到了 RocketMQ,借此机会和大家分享一下我学习 RocketMQ 的心得,今天就先讲第一篇内容 —— 如何在 Win10 环境下安装部署 RocketMQ。
📢 RabbitMQ的内容这里就不再赘述了,各位小伙伴可点击传送门:大聪明教你学Java | Win10 环境下安装部署 RabbitMQ
Windows 环境下安装部署 RocketMQ
首先我们需要在官网下载 RocketMQ 的安装包,这里我选择的是 RocketMQ 5.1.3 👇
下载完成后,我们将压缩包进行解压。待压缩包解压到指定目录后(目录中),我们开始配置环境变量 👇
变量名:ROCKETMQ_HOME
变量值:F:\RocketMQ\rocketmq-all-5.1.3-bin-release(即压缩包解压后的路径)
PATH下同样也需要新增一行:%ROCKETMQ_HOME%\bin
配置完成后,我们就可以尝试启动 RocketMQ 了。启动步骤也非常简单,在 cmd 窗口中切换到 RocketMQ 的解压缩目录,然后执行下面的命令即可 👇
start mqnamesrv.cmd
🔊 注: 因为 RocketMQ 在 runbroker.cmd 和 runserver.cmd 中启动的时候都指定了垃圾回收机制等 JVM 参数,默认在 JDK 1.8 上运行是可以的。如果小伙伴们使用的不是 JDK 1.8,那么就需要对 runbroker.cmd(Linux环境中对应 runbroker.sh) 和 runserver.cmd(Linux环境中对应 runserver.sh) 中的 JVM 配置进行修改。这里以 JDK11 为例,修改方式如下所示 👇
① 修改 runserver.cmd
set CLASSPATH=.;%BASE_DIR%conf;%BASE_DIR%lib\*;%CLASSPATH%
# 1. 修改jvm启动内存
set "JAVA_OPT=%JAVA_OPT% -server -Xms256m -Xmx256m -Xmn128m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
# 2. 注释以下2行
rem set "JAVA_OPT=%JAVA_OPT% -XX:+UseConcMarkSweepGC -XX:+UseCMSCompactAtFullCollection -XX:CMSInitiatingOccupancyFraction=70 -XX:+CMSParallelRemarkEnabled -XX:SoftRefLRUPolicyMSPerMB=0 -XX:+CMSClassUnloadingEnabled -XX:SurvivorRatio=8 -XX:-UseParNewGC"
rem set "JAVA_OPT=%JAVA_OPT% -verbose:gc -Xloggc:"%USERPROFILE%\rmq_srv_gc.log" -XX:+PrintGCDetails -XX:+PrintGCDateStamps"
set "JAVA_OPT=%JAVA_OPT% -XX:-OmitStackTraceInFastThrow"
set "JAVA_OPT=%JAVA_OPT% -XX:-UseLargePages"
set "JAVA_OPT=%JAVA_OPT% -cp "%CLASSPATH%""
"%JAVA%" %JAVA_OPT% %*
② 修改 runbroker.cmd
rem ===========================================================================================
rem JVM Configuration
rem ===========================================================================================
# 1. 修改jvm启动内存
set "JAVA_OPT=%JAVA_OPT% -server -Xms256m -Xmx256m"
# 2. 注释以下3行
rem set "JAVA_OPT=%JAVA_OPT% -XX:+UseG1GC -XX:G1HeapRegionSize=16m -XX:G1ReservePercent=25 -XX:InitiatingHeapOccupancyPercent=30 -XX:SoftRefLRUPolicyMSPerMB=0 -XX:SurvivorRatio=8"
rem set "JAVA_OPT=%JAVA_OPT% -verbose:gc -Xloggc:%USERPROFILE%\mq_gc.log -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCApplicationStoppedTime -XX:+PrintAdaptiveSizePolicy"
rem set "JAVA_OPT=%JAVA_OPT% -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=5 -XX:GCLogFileSize=30m"
set "JAVA_OPT=%JAVA_OPT% -XX:-OmitStackTraceInFastThrow"
set "JAVA_OPT=%JAVA_OPT% -XX:+AlwaysPreTouch"
set "JAVA_OPT=%JAVA_OPT% -XX:MaxDirectMemorySize=15g"
set "JAVA_OPT=%JAVA_OPT% -XX:-UseLargePages -XX:-UseBiasedLocking"
set "JAVA_OPT=%JAVA_OPT% -cp %CLASSPATH%"
"%JAVA%" %JAVA_OPT% %*
小结
本人经验有限,有些地方可能讲的没有特别到位,如果您在阅读的时候想到了什么问题,欢迎在评论区留言,我们后续再一一探讨🙇
希望各位小伙伴动动自己可爱的小手,来一波点赞+关注 (✿◡‿◡) 让更多小伙伴看到这篇文章~ 蟹蟹呦(●’◡’●)
如果文章中有错误,欢迎大家留言指正;若您有更好、更独到的理解,欢迎您在留言区留下您的宝贵想法。
你在被打击时,记起你的珍贵,抵抗恶意;
你在迷茫时,坚信你的珍贵,抛开蜚语;
爱你所爱 行你所行 听从你心 无问东西