Linux环境下RocketMQ的部署及简单应用
RocketMQ的部署
简介:Rocketmq是一款分布式,队列模型的消息中间件,由阿里巴巴研发,借鉴参考了JMS规范的MQ实现,更参考了优秀的开源消息中间件KAFKA,并且结合阿里实际业务需求在天猫双十一的场景,实现业务削峰,分布式事务的优秀框架。
1、获取最新版本RocketMQ
在github上找到对应的版本,获取到下载链接,https://github.com/apache/rocketmq/releases 选择自己想安装的版本,这里选择的是最新的4.9.3版本
2、执行下载命令
1、在Linux选择要安装的目录执行命令:
wget https://github.com/apache/rocketmq/archive/rocketmq-all-4.9.3.tar.gz
2、下载完成进行解压
tar -zxvf rocketmq-all-4.7.1.tar.gz
3、安装Maven插件
对源码进行编译要使用到maven,若linux没有安装则需要进行安装配置maven环境。用命令mvn -v 查看maven信息,如果安装过则跳过该步骤。
1、在目录/usr/local/src执行命令下载maven包
wget https://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz
2、解压maven包
tar -zxvf apache-maven-3.6.3-bin.tar.gz
3、新增maven镜像,进入settings.xml文件新增如下内容
4、配置maven环境变量
通过命令:vi /etc/profile 增加以下内容:
export MAVEN_HOME=/usr/local/src/apache-maven-3.6.3
export PATH=${PATH}:${MAVEN_HOME}/bin
5、验证maven是否安装成功,如下则安装成功了!
4、编译RocketMQ
进入RocketMQ解压后的目录执行命令:
mvn -Prelease-all -DskipTests clean install -U
5、配置ROCKETMQ_HOME
export ROCKETMQ_HOME=/data/rocketmq-rocketmq-all-4.9.3/distribution/target/rocketmq-4.9.3/rocketmq-4.9.3
export PATH=$PATH:$ROCKETMQ_HOME/bin:$PATH
export NAMESRV_ADDR=127.0.0.1:9876
注:ROCKETMQ_HOME的地址是RocketMQ编译后的地址
6、启动RocketMQ
1、启动namesrv服务
修改bin目录下的runserver.sh文件
JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn128m -XX:PermSize=128m -XX:MaxPermSize=320m"
进入编译后的RocketMQ地址,执行启动命令:
nohup sh bin/mqnamesrv &
通过jps查看,如下看到NamesrvStartup进程则启动成功!
2、启动broker服务
启动前先修改broker.conf配置文件,在文件后面新增这两行
namesrvAddr=127.0.0.1:9876
brokerIP1=120.77.18.162
注:brokerIP1:指本机公网id
修改runbroker.sh文件,不然启动时,需要占用大量内存导致启动失败。
JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m
修改保存后,执行启动命令:
nohup sh bin/mqbroker -n localhost:9876 -c conf/broker.conf &
通过jps查看,如下看到BrokerStartup进程则启动成功!
7、开放安全组端口
进入阿里云服务器开放安全组端口9876,10911,没开放则通过项目调用无法进行访问。
至此RocketMQ已完成部署,接下来对RocketMQ消息队列进行简单的操作。
通过demo对RocketMQ进行简单应用
1、依赖配置
选择合适的版本,进行import依赖引入操作
2、创建生产者
3、创建消费者
4、生产消息
5、消费消息
6、运行结果展示
启动消费者,消费者在订阅消息
启动生产者,生产消息
消费消息