消息队列_RocketMQ_01_Apache RocketMQ简介

Apache RocketMQ简介

什么是Apache RocketMQ?

RocketMQ是一款分布式消息中间件,统一消息引擎,轻量级数据处理平台。最初是由阿里巴巴消息中间件团队研发并大规模应用于生产系统,满足线上海量消息堆积的需求。

在2016年底捐赠给Apache开源基金会成为孵化项目,经过不到一年时间正式成为了Apache顶级项目;

早期阿里曾经基于ActiveMQ研发消息系统, 随着业务消息的规模增大,瓶颈逐渐显现,后来也考虑过Kafka,但因为在低延迟和高可靠性方面没有选择,最后才自主研发了RocketMQ, 各方面的性能都比目前已有的消息队列要好,RocketMQ和Kafka在概念和原理上都非常相似,所以也经常被拿来对比;RocketMQ默认采用长轮询的拉模式, 单机支持千万级别的消息堆积,可以非常好的应用在海量消息系统中。

主题(Topic)

Topic:Topic表示一类消息的集合,每个主题包括若干条消息,每条消息只能属于一个主题,是RocketMQ进行消息订阅的基本单位。 一个生产者可以同时发送多个Topic消息;而一个消费者只能对某种特定的Topic感兴趣,即只可以订阅和消费一种Topic消息。

什么是队列?什么是消息(message)?什么是消息队列?

消息: 消息系统所传输信息的物理载体,生产/消息数据的最小单位。 在RocketMQ中,每条消息必须属于一个主题(Topic),消息即数据。

队列: 首先队列是一种先进先出的数据结构。在消息队列中是指存储消息的物理实体,一个Topic中可以包含多个队列,每个队列中存放的是同一个Topic的消息,一个Topic中的队列(Queue)也被称为一个Topic中的分区。

消息队列:消息队列可以简单理解为:把要传输的消息(数据)放在队列中。

其中:把数据放到消息队列中的一方叫做生产者;从消息队列里边取数据的一方叫做消费者。

注意: 一个Topic中的一个Queue(队列)中的消息只能被同一个消费者组中的一个消费者消费。不能被同一个消费者组中的不同消费者消费。 但是可以被不同消费者组中的消费者消费。

消息标识

image

消费者组只能消费一个Topic消息,不能消费多个Topic消息,同一个消费者组中的消费者,只能消费同一个Topic。

posted @ 2021-11-12 18:40  失昼  阅读(135)  评论(0编辑  收藏  举报