Rocketmq入门-基本概念
名词解释
名称服务器(NameServer)
- 定义: 名称服务器是RocketmMQ的注册中心,负责管理集群中的所有Broker地址信息。
- 作用: Producer和Consumer通过NameServer获取Broker的地址信息,从而进行消息的发送和消费。
消息队列(Message Queue)
- 定义: 消息队列是消息的实际存储单元,每个topic下可以有多个Message Queue。
- 作用: 消息队列用于存储同一topic下的消息,可以实现负载均衡和提高吞吐量。
主题(Topic)
- 定义: 主题是消息的分类标识,类似于文件夹的概念。
- 作用: 用于对消息进行分类,不同的业务场景可以使用不同的Topic。
标签(Tag)
- 定义: 标签是对消息的进一步细分,类似于文件夹下的子文件夹。
- 作用: 用于更细粒度的过滤消息,方便消息的管理和筛选。
生产者(Producer)
- 定义: 生产者是消息的发送方,负责向Broker发消息。
- 作用: 将消息发送到指定的Topic和Tag。
消费者(Consumer)
- 定义: 消费者是消息的接收方,负责从Broker拉取消息并进行消费。
- 作用: 根据配置订阅特定的Topic和Tag,并处理接收的消息。
拉取模式(Pull)
- 定义: 消费者主动从Broker中拉取消息。
- 作用: 提高了消息的实时性和可靠性。
推送模式(Push)
- 定义: Broker主动将消息推送给消费者。
- 作用: 简化了消费者的实现,降低了消费者的复杂度。
消息模型(Message Model)
- 定义: 消息模型定义了消息的消费模式。
- 作用: 主要有两种
- 集群消费(Cluster Consuming): 每条消息只会被集群中的一个消费者消费。
- 广播消费(Broadcast Consuming): 每条消息会被集群中的所有消费者消费。
关键组件
Broker
- 定义: Broker负责消息的存储和转发。
- 作用: 接收Producer发送的消息,并存储起来;同时向Consumer提供消息。
消息存储
- 定义: RocketMQ使用文件系统来存储消息。
- 作用: 高效地存储大量消息,并支持持久化。
工作流程
- 生产者发送消息
- 生产者通过NameServer获取Broker的地址信息。
- 将消息发送到指定的Topic和Tag。
- Broker存储消息
- Broker接收消息并存储到本地文件系统中。
- 更新消息索引信息以便快速查找。
- 消费者拉取消息
- 消费者通过NameServer获取Broker的地址信息。
- 订阅指定的Topic和Tag,并从Broker中拉取消息。
- 消息消费
- 消费者处理接收到的消息,并确认消费结果(成功或失败)。