前言阿里的fastjson低版本(<=1.2.68)被曝存在安全漏洞,而RocketMQ4.7.0使用的是fastjson1.2.62,所以RocketMQ需要升级到RocketMQ4.7.1(fastjson1.2.69)。本文介绍在CentOS7上安装RocketMQ4.7.1的过程,仅用作开发测试环境:单机部署,NameServer和Broker安装在一台服务器上;减少了RocketMQ的默认JVM大小;没有设置自动启动和守护进程。安装过程服务器上已经安装了OpenJDK8,并设置了JAVA_HOME。下载并解压RocketMQ在RocketMQ官网找到RocketMQ4.7.1的下载链接,下载并解压RocketMQ:#downloadwgethttp://ftp.cuhk.edu.hk/pub/packages/apache.org/rocketmq/4.7。1/rocketmq-all-4.7.1-bin-release.zip#unzipunziprocketmq-all-4.7.1-bin-release.zip#安装到/usr/local/rocketmqmvrocketmq-all-4.7.1-bin-release/usr/localln-s/usr/local/rocketmq-all-4.7.1-bin-release/usr/local/rocketmq降低RocketMQ的JVM大小RocketMQ默认的JVM太大,无法用于开发测试环境并且需要减小JVM的大小。在RocketMQ安装目录下(本例为/usr/local/rocketmq),找到sh脚本中的JVM参数设置:find.-name'*.sh'|xargsegrep'Xms'需要修改如下的JVM参数shscript:bin修改/runserver.shbin/runbroker.shbin/tools.sh前记得备份对应的脚本。具体JVM大小根据实际情况设置。-bin/runserver.sh修改前:JAVA_OPT="${JAVA_OPT}-server-Xms4g-Xmx4g-Xmn2g-XX:MetaspaceSize=128m-XX:MaxMetaspaceSize=320m"修改后:JAVA_OPT="${JAVA_OPT}-server-xms256m-Xmx256m-Xmn128m-XX:MetaspaceSize=128m-XX:MaxMetaspaceSize=320m"-bin/runserver.sh修改前:JAVA_OPT="${JAVA_OPT}-server-Xms4g-Xmx4g-Xmn2g-XX:MetaspaceSize=128m-XX:MaxMetaspaceSize=320m"修改后:JAVA_OPT="${JAVA_OPT}-server-Xms256m-Xmx256m-Xmn128m-XX:MetaspaceSize=128m-XX:MaxMetaspaceSize=320m"-bin/tools.sh修改前:JAVA_OPT="${JAVA_OPT}-server-Xms1g-Xmx1g-Xmn256m-XX:MetaspaceSize=128m-XX:MaxMetaspaceSize=128m"修改后:JAVA_OPT="${JAVA_OPT}-server-Xms256m-Xmx256m-Xmn128m-XX:MetaspaceSize=128m-XX:MaxMetaspaceSize=128m"启动NameServer#后台启动nohupshbin/mqnamesrv>/dev/null2>&1&NameServer默认端口为9876,运行shbin/mqnamesrv-p查看NameServer的配置项,可以通过-cnamesrv.conf指定的方法ies启动配置文件;RocketMQ默认的日志路径是`~/logs/rocketmqlogs/``;可以将启动NameServer的命令保存为脚本,方便下次启动。启动Broker启动Broker时,需要指定要连接的NameServer:#Backgroundstartnohupshbin/mqbroker-nlocalhost:9876>/dev/null2>&1&可以将启动Broker命令保存为脚本,方便下次启动。查看RocketMQ进程ps-ef|grep-vgrep|greprocketmq测试RocketMQ测试收发消息使用RocketMQ自带的消息生产者和消费者示例测试收发消息:exportNAMESRV_ADDR=localhost:9876shbin/tools.shorg。apache.rocketmq.example.quickstart.Producershbin/tools.shorg.apache.rocketmq.example.quickstart.ConsumerShutdownRocketMQShutdownBrokershbin/mqshutdownbrokershutdownBroker命令可以保存为脚本,方便下次关机。ShutdownNameServershbin/mqshutdownnamesrv在关闭NameServer之前需要关闭Broker;您可以将关闭名称服务器命令保存为脚本,以方便下次关闭。修改NameServer的端口RocketMQNameServer的默认端口是9876,可以通过以下方法修改NameServer的端口:添加一个新的NameServer配置文件namesrv.conf,内容保存为:listenPort=100762.指定启动NameServer文件时的配置:nohupshbin/mqnamesrv-cnamesrv.conf>/dev/null2>&1&3.查看RocketMQ进程:ps-ef|greprocketmq4.查看RocketMQNameServer的端口号:netstat-tnlp|grep
