RocketMQ介绍
简介: RocketMQ是由阿里捐赠给Apache的一款低延迟、高并发、高可用、高可靠的分布式消息中间件。经历了淘宝双十一的洗礼。RocketMQ既可为分布式应用系统提供异步解耦和削峰填谷的能力,同时也具备互联网应用所需的海量消息堆积、高吞吐、可靠重试等特性。
图中所涉及到的概念如下所述:
Name Server:是一个几乎无状态节点,可集群部署,在消息队列RocketMQ版中提供命名服务,更新和发现Broker服务。
Broker:消息中转角色,负责存储消息,转发消息。分为Master Broker和Slave Broker,一个Master Broker可以对应多个Slave Broker,但是一个Slave Broker只能对应一个Master Broker。Broker启动后需要完成一次将自己注册至Name Server的操作;随后每隔30s定期向Name Server上报Topic路由信息。
生产者(Producer):与Name Server集群中的其中一个节点(随机)建立长链接(Keep-alive),定期从Name Server读取Topic路由信息,并向提供Topic服务的Master Broker建立长链接,且定时向Master Broker发送心跳。
消费者(Consumer):与Name Server集群中的其中一个节点(随机)建立长连接,定期从Name Server拉取Topic路由信息,并向提供Topic服务的Master Broker、Slave Broker建立长连接,且定时向Master Broker、Slave Broker发送心跳。Consumer既可以从Master Broker订阅消息,也可以从Slave Broker订阅消息,订阅规则由Broker配置决定。
废话不多说,直接开始安装步骤吧
一、下载安装Apache RocketMQ
官网下载地址: http://rocketmq.apache.org/dowloading/releases/
这里演示的是以4.7.1版本
二、环境要求
1、Linux64 位系统
2、JDK1.8(64 位)
3、Source源码安装需要安装 Maven 3.2,Binary的不需要
三、解压、环境变量配置
将下载好的rocketmq-all-4.7.1-bin-release.zip传到虚拟机或者在虚拟机里直接下载,这里就不演示上传了(使用Xttp或者其他工具)
我这里是将安装包放在了/usr/local/app_tar
然后解压:
unzip rocketmq-all-4.7.1-bin-release.zip
配置环境变量:
vi /etc/profile
加上这几句配置
export ROCKETMQ_HOME=/usr/local/src/rocketmq-all-4.7.1-bin-release
export NAMESRV_ADDR=localhost:9876
PATH=$ROCKETMQ_HOME/bin:$JAVA_HOME/bin:$PATH:$HOME/.local/bin:$HOME/bin
四、修改配置
先进入到解压的目录
进入bin目录下修改runserver.sh
vi runserver.sh
修改这三个参数,默认是4g,很多机器都达不到要求,我这里改成了512g和256g
同理修改runbroker.sh,默认参数是8、8、4 g这里也改成了512g和256g,如果你的内存配的够的话不用改也行
vi runbroker.sh
修改conf目录下的broker.conf文件,这个文件是broker运行时的启动配置文件
vi broker.conf
加上这一行
五、启动
先启动namesvr,后台方式启动
nohup bin/mqnamesrv &
查看日志有success就是启动成功
tail nohup.out
然后启动broker,指定配置文件启动
nohup bin/mqbroker -c conf/broker.conf &
查看日志,也是success
六、测试
启动消息生产者发送消息:默认会发1000条消息,这是是自带的测试包
bin/tools.sh org.apache.rocketmq.example.quickstart.Producer
然后启动消息消费者接收消息:消费者不会停止,会持续监听
bin/tools.sh org.apache.rocketmq.example.quickstart.Consumer
到这就演示结束了,这里演示的是rocketmq的单机版本,集群版本后续有时间再更新一篇。本人也是一个菜鸟学生,我会继续努力学习的,在这里祝大家代码永远没bug!再见!