RocketMQ在Linux中安装启动
RocketMQ:
RocketMQ是阿里开源的一款非常优秀中间件产品,脱胎于阿里的另一款队列技术MetaQ,后捐赠给Apache基金会作为一款孵化技术,仅仅经历了一年多的时间就成为Apache基金会的顶级项目。
RocketMQ:java语言实现,十万级数据吞吐量,处理速度ms级,分布式架构,功能强大,扩展性强。
RocketMQ在Linux中安装:
RocketMQ是基于java开发的,运行使用需要有JDK环境,所以首先要在Linux中安装JDK(以JDK8为例)。
安装与RocketMQ对应的JDK之前需要将Linux操作系统默认安装的OpendJDK删除:
# 查看 rpm -qa | grep java # 删除(把上一个命令看到的所有的jdk文件 用 如下命令删除) rpm -e --nodeps java-1.8.0-openjdk-1.8.0.232.b09-0.el7_7.x86_64 rpm -e --nodeps java-1.8.0-openjdk-headless-1.8.0.232.b09-0.el7_7.x86_64 rpm -e --nodeps java-1.7.0-openjdk-headless-1.7.0.241-2.6.20.0.el7_7.x86_64 rmp -e --nodeps java-1.7.0-openjdk-1.7.0.241-2.6.20.0.el7_7.x86_64 rpm -e --nodeps java-1.7.0-openjdk-1.7.0.241-2.6.20.0.el7_7.x86_64
将默认安装的OpenedJDK删除后,导入JDK8的压缩包:
#1,解压 jdk tar -zxvf jdk-8u171-linux-x64.tar.gz #2,配置环境变量 vim /etc/profile export JAVA_HOME=/opt/jdk1.8.0_171 export PATH=$PATH:${JAVA_HOME}/bin #3,重新加载配置 source /etc/profile #4,查看jdk是否配置成功 java -version
JDK安装并且配置完成后,导入对应的RocketMQ压缩包:
#解压缩即可 unzip rocketmq-all-4.5.2-bin-release.zip
RocketMQ启动:
#步骤1:启动命名服务器(bin目录下) sh mqnamesrv #步骤2:启动消息服务器(bin目录下) sh mqbroker -n localhost:9876
运行rockmq时,若出现There is insufficient memory for the Java Runtime Environment,类似报错信息需要修改bin目录下的 runbroker.sh、runserver.sh、tools.sh文件内的配置信息即可:
#修改指令(在bin目录下) vim runbroker.sh #将内存配置修改即可 JAVA_OPT="${JAVA_OPT} -server -Xms8g -Xmx8g -Xmn4g" #修改后 JAVA_OPT="${JAVA_OPT} -server -Xms256 -Xmx256 -Xmn128"
测试服务器环境:
#步骤1:配置命名服务器地址 export NAMESRV_ADDR=localhost:9876 #步骤2:启动生产者程序客户端(bin目录下) sh tools.sh org.apache.rocketmq.example.quickstart.Producer #启动后产生大量日志信息(注意该信息是测试程序中自带的,不具有通用性,仅供学习查阅参考) #步骤3:启动消费者程序客户端(bin目录下) sh tools.sh org.apache.rocketmq.example.quickstart.Consumer
远程调用时(代码运行)出现RemotingTooMuchRequestException: sendDefaultImpl call timeou错误,需要在conf目录下broker.conf文件中添加如下配置:
#配置自己Linux的ip brokerIP1 = 192.168.1.1
修改配置文件后,在mqbroker启动时,指定配置文件启动,例如:
#在bin目录下-n ip -c 配置文件路径 sh mqbroker -n 192.168.1.1:9876 -c ../conf/broker.conf
若还是报错检查防火墙是否关闭
# 关闭防火墙 systemctl stop firewalld.service # 查看防火墙的状态 firewall-cmd --state # 禁止firewall开机启动 systemctl disable firewalld.service
赞 (0)