目录
什么是MQ
RocketMQ的发展历程
RocketMQ概念术语
什么是MQ
消息:是MQ中最小的概念,本质就是一段数据。
队列:在MQ中使用队列的数据结构来存储消息。
MQ是把消息和队列结合起来,称为消息队列(Message Queue),是基础数据结构中“先进先出”的一种数据结构。指把要传输的数据(消息)放在队列中,用队列机制来实现消息传递—— 生产者产生消息并把消息放入队列,然后由消费者去处理。消费者可以到指定队列拉取消息,或者订阅相应的队列,由MQ服务端给其推送消息。
MQ的应用场景
应用解耦
系统的耦合性越高,容错性就越低。以电商应用为例,用户创建订单后,如果耦合调用库存系统、物流系统、支付系统,任何一个子 系统出了故障或者因为升级等原因暂时不可用,都会造成下单操作 异常,影响用户使用体验。
串行方式注册流程:
并行方式注册流程:
异步解耦方式:
流量削峰
应用系统如果遇到系统请求流量的瞬间猛增,有可能会将系统压垮。有了消息队列可以将大量请求缓存起来,分散到很长一段时间处理,这样可以大大提高系统的稳定性和用户体验。 举例:业务系统正常时段的QPS如果是1000,流量最高峰是 10000,为了应对流量高峰配置高性能的服务器显然不划算,这时可以使用消息队列对峰值流量削峰。
实时效果反馈
1.MQ的功能包括哪些?
A 应用解耦
B 削峰填谷
C 缓存同步
D 以上都是
各大MQ产品比较
实时效果反馈
1.RocketMQ的特点里不包括哪个?
A 商业支持
B 支持事务
C 采用数据库持久化
D 性能较高
RocketMQ的发展历程
RocketMQ概念术语
1、生产者和消费者
生产者负责生产消息,一般由业务系统负责生产消息,消费者即后台系统,它负责消费消息。
2、消息模型(Message Model)
消息模型主要有队列模型和发布订阅模型,RabbitMQ采用的是队列模型,如下图所示
RocketMQ采用发布订阅模型,模型如图所示:
3、主题(Topic)
表示一类消息的集合,每个主题包含若干条消息,每条消息只能属于一个主题,是RocketMQ进行消息订阅的基本单位。
4、代理服务器(Broker Server)
消息中转角色,负责存储消息、转发消息。
5、名字服务(Name Server)
名称服务管理代理服务器broker,相当于一个管理机构。
6、生产者组(Producer Group)
同一类Producer的集合,这类Producer发送同一类消息且发送逻辑一致。
7、消费者组(Consumer Group)
同一类Consumer的集合,这类Consumer通常消费同一类消息且消费逻辑一致。
8、拉取式消费(Pull Consumer)
Consumer消费的一种类型,应用通常主动调用Consumer的拉消息方法从Broker服务器拉消息、主动权由应用控制。一旦获取了批量消息,应用就会启动消费过程。
9、推动式消费(Push Consumer)
Consumer消费的一种类型,该模式下Broker收到数据后会主动推送给消费端,该消费模式一般实时性较高。
10、普通顺序消息(Normal Ordered Message)
普通顺序消费模式下,消费者通过同一个消息队列( Topic 分区,称作 Message Queue) 收到的消息是有顺序的,不同消息 队列收到的消息则可能是无顺序的。
11、严格顺序消息(Strictly Ordered Message)
严格顺序消息模式下,消费者收到的所有消息均是有顺序的。
实时效果反馈
1.RocketMQ的消息类型不包括哪个?
A 顺序消息
B 事务消息
C 定时消息
D 异步消息