当前位置: 首页 > 科技观察

在CentOS7上安装RocketMQ4.7.1

时间:2023-03-16 18:21:40 科技观察

前言阿里的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|grep5.修改后的Broker需要指定一个新的NameServer地址(端口)。安装RocketMQ控制台Clonerocketmq-externals项目,并编译rocketmq-console。命令示例:gitclonehttps://github.com/apache/rocketmq-externals.gitcdrocketmq-externals/rocketmq-consolemvncleanpackage-Dmaven.test.skip=true把target/rocketmq-console-ng*.jar放到RocketMQ安装目录下(这个示例在/usr/local/rocketmq下)。在RocketMQ安装目录新建一个启动RocketMQ控制台的脚本来启动RocketMQ控制台:nohupjava-jarrocketmq-console-ng*.jar--server.port=8080--rocketmq.config.namesrvAddr=localhost:9876>/dev/null2>&1&RocketMQ控制台默认不需要密码登录,具体配置请参考RocketMQ文档。参见:https://github.com/apache/rocketmq-externalshttps://github.com/apache/rocketmq-externals/tree/master/rocketmq-consoleTroubleshooting问题一:启动NameServer和Broker,还是测试报错请在您的环境中设置JAVA_HOME变量,我们需要java(x64)!但是系统已经安装了OpenJDK8,并且设置了JAVA_HOME。解决方法:运行whichjava查看java的路径,如/usr/bin/java。修改bin/runserver.sh和bin/runbroker.sh和bin/tools.sh,注释掉验证JAVA_HOME语句,明确指定JAVA路径:#[!-e"$JAVA_HOME/bin/java"]&&JAVA_HOME=$HOME/jdk/java#[!-e"$JAVA_HOME/bin/java"]&&JAVA_HOME=/usr/java#[!-e"$JAVA_HOME/bin/java"]&&error_exit"请在您的环境中设置JAVA_HOME变量,我们需要java(x64)!"#exportJAVA_HOMEexportJAVA="/usr/bin/java"

最新推荐
猜你喜欢