文章目录
一. RocketMQ简介
1.1 功能作用优点
-
RocketMQ作为一款纯java 分布式 队列模型的开源消息中间件,支持事务消息 顺序消息 批量消息 定时消息 消息回溯等功能
-
支持发布/订阅(Pub/Sub)和点对点(P2P)消息模型
-
在一个队列中可靠的先进先出(FIFO)和严格的顺序传递 (RocketMQ可以保证严格的消息顺序,而ActiveMQ无法保证)
-
支持拉(pull)和推(push)两种消息模式 (Push好理解,比如在消费者端设置Listener回调;而Pull,控制权在于应用,即应用需要主动的调用拉消息方法从Broker获取消息,这里面存在一个消费位置记录的问题(如果不记录,会导致消息重复消费) )
-
单一队列百万消息的堆积能力 (RocketMQ提供亿级消息的堆积能力,这不是重点,重点是堆积了亿级的消息后,依然保持写入低延迟)
-
支持多种消息协议,如JMS,MQTT等
-
分布式高可用的部署架构,满足至少一次消息传递语义(RocketMQ原生就是支持分布式的,而ActiveMQ原生存在单点性)
-
提供docker镜像用于隔离测试和云集群部署
-
提供配置、指标和监控等功能丰富的Dashboard
1.2 图示
1.3 基本概念
- Producer:消息生产者
- Producer Group:消息生产者组,发送同类消息的一个消息生产组
- Consumer:消费者
- Consumer Group:消费同个消息的多个实例
- Tag:标签,子主题(二级分类),用于区分同一个主题下的不同业务的消息
- Topic:主题
- Message:消息
- Broker:MQ程序,接收生产的消息,提供给消费者消费的程序
- Name Server:给生产和消费者提供路由信息,提供轻量级的服务发现和路由
二. 下载安装与配置
环境:
- Windows 10
- Java :jdk1.8.0_191
- Apache Maven 3.6.1
1. 下载安装
- 官网地址:http://rocketmq.apache.org/release_notes/release-notes-4.7.0/
- 选择:Binary: rocketmq-all-4.7.0-bin-release.zip [PGP] [SHA512]下载
- 将下载后的zip文件解压到非中文且没有空格的目录,比如:
D:\rocketmq-all-4.7.0-bin-release
2. RocketMQ 配置
2.1 配置环境变量
点击新建
这里给出变量名:ROCKETMQ_HOME
2.2 本地部署
2.2.1 启动RocketMQ
- 进入RocketMQ 的bin目录–启动mq–如下图 启动命令是: start mqnamesrv.cmd
执行上面命令后如果报错:找不到或无法加载主类,有两种情况:- rocketmq解压路径有空格,放入非中文没有空格的路径
- Java 的环境变量有空格,把jdk的地址复制放入非中文没有空格的路径并且修改环境变量
注意jdk的版本最好是JDK 8 或者 JDK 9;版本太高会报错
- 出现这个说明启动成功,注意不要关闭窗口