前言:
如果你现在正在看这句话,那么你需要有点时间来对这篇文章进行阅读。文章篇幅超
超超超超长,跟我一样!,文末也整合了一些RocketMQ的资料!
谢谢!如果有帮助,麻烦点赞支持我!
Windows安装部署
下载
地址:[https://www.apache.org/dyn/closer.cgi?path=rocketmq/4.5.2/rocketmq-all-4.5.2-bin-release.zip]
选择‘Binary’进行下载
解压已下载工程
配置
新增系统变量 ROCKETMQ_HOME -> F:\RocketMQ\rocketmq-4.5.2
JAVA_HOME -> F:\Java_JDK\JDK1.8 Path
系统变量新增:Maven/bin目录
PS:RocketMQ 消息存储在C:\Users\Administrator\store store目录中 文件占用较大,注意删除不必要的内容
启动
start mqnamesrv.cmd
start mqbroker.cmd -n 127.0.0.1:9876autoCreateTopicEnable=true
Rocket集成可视化监控插件
-
任意目录(拉取项目,随便哪里都行)git clone github.com/apache/rock…
-
进入‘rocketmq-externals\rocketmq-console\src\main\resources’文件夹,打开‘application.properties’进行配置
-
其实就是一个SpringBoot服务,确定好端口,别重复即可
server.port=8100
rocketmq.config.namesrvAddr=127.0.0.1:9876 -
进入‘\rocketmq-externals\rocketmq-console’文件夹
执行‘mvn clean package -Dmaven.test.skip=true’,编译生成target
java -jar rocketmq-console-ng-1.0.1.jar -
根据配置地址访问: http://127.0.0.1:8100
Rocket可视化监控插件 增加Topic | 自动增加Topic(4.5.2版本)
4.5.2 版本 支持自动创建Topic
4.3.0 版本 必须通过监控程序配置Topic,否则执行程序报错,没有此路由
SpringBoot集成 RocketMQ
<!--RocketMQ-->
<dependency>
<groupId>org.apache.rocketmq</groupId>
<artifactId>rocketmq-client</artifactId>
<version>4.5.2</version>
</dependency>
RocketMQ基本概念
概览
基于RocketMQ的分布式系统,一般可以分为四个集群:Name server、broker、producer、consumer
- name server
-
提供轻量级的服务发现和路由服务;
-
每个节点都存放了全部的路由信息和对应的读写服务;
-
存储支持水平扩展
- broker
- 提供满足TOPIC和QUEUE机制的消息存储服务;
- 有推和拉两种模式;
- 通过2或3拷贝实现高可用;
- 提供上亿消息的堆积能力;
- 提供故障恢复、统计功能和告警功能;
- producer
- 支持分布式部署,通过负载平衡模块给broker发消息
- 支持快速失败
- 低延迟
- consumer
- 支持推和拉两种模式
- 支持集群消费和广播消费
核心模块
Name Server
提供Broker管理;Routing管理(路由管理)
NameServer,很多时候称为命名发现服务,其在RocketMQ中起着中转承接的作用,是一个无状态的服务,多个NameServer之间不通信。任何Producer,Consumer,Broker与所有NameServer通信,向NameServer请求或者发送数据。而且都是单向的,Producer和Consumer请求数据,Broker发送数据。正是因为这种单向的通信,RocketMQ水平扩容变得很容易
- 提供轻量级的服务发现和路由服务;
- 每个节点都存放了全部的路由信息和对应的读写服务;
- 存储支持水平扩展
总结:相比于ZooKeeper提供的分布式锁,发布和订阅,数据一致性,选举等,在RocketMQ是不适用的,因此重写了一套更加轻量级的发现服务,主要用以存储 Broker相关信息以及当前Broker上的topic信息,路由信息等
Broker Server
提供Remoting Module、客户端管理、存储服务、HA服务(主从)、索引服务
- 提供满足TOPIC和QUEUE机制的消息存储服务;
- 有推和拉两种模式;
- 通过2或3拷贝实现高可用;
- 提供上亿消息的堆积能力;
- 提供故障恢复、统计功能和告警功能;
producer
- 支持分布式部署,通过负载平衡模块给broker发消息
- 支持快速失败
- 低延迟
consumer
- 支持推和拉两种模式
- 支持集群消费和广播消费
核心角色介绍
生产者
生产者发送业务系统产生的消息给broker, RocketMQ提供了多种发送方式:同步的、异步的、单向的
生产者组
具有相同角色的生产者被分到一组, 假如原始的生产者在事务后崩溃,broker会联系 同一生产者组中的不同生产者实例,继续提交或回滚事务
消费者
一个消费者从broker拉取信息,并将信息返还给应用。为了我们应用的正确性,提供了两种消费者类型:
拉式消费者:拉式消费者从broke