RocketMQ核心概念

2021-06-24  本文已影响0人  美美的苹果核

基本概念

Broker

Broker相当于一个RocketMQ存储实例,一般情况下一台机器上部署一个Broker。多个Borker主节点会均分Topic的消息。生产者和消费者都会与Broker建立长连接。

Topic

Topic表示一类消息的集合,每个主题包含若干条消息,每条消息只能属于一个主题,是RocketMQ进行消息订阅的基本单位。

Tag

为消息设置的标志,用于同一主题下区分不同类型的消息。它不能控制消息的路由,用于消息真正被某个消费者节点接收后进行业务逻辑区分的标识。

Queue

类似于HashMap中数组的节点,提升并发(多个生产者或消费者)时的读写性能。每个Topic在单个Broker节点都会分为多个Queue。

GID

一类Producer或Consumer,这类Producer或Consumer通常生产或消费同一类消息,GID是分组的标识。广播消费模式下相同分组的每个Consumer实例都接收全量的消息;集群消费模式下,相同分组的每个Consumer实例平均分摊消息。

高可用

RocketMQ高可用架构.png

NameServer集群

NameServer是专为 RocketMQ 设计的轻量级名称服务,具有简单、可集群横向扩展、无状态,节点之间互不通信等特点。

Broker集群

Broker用于接收生产者发送消息,或者消费者消费消息的请求。一个Broker集群由多组Master/Slave组成,Master可写可读,Slave只可以读,Master将写入的数据同步给Slave。每个Broker节点,在启动时,都会遍历NameServer列表,与每个NameServer建立长连接,注册自己的信息,之后定时上报。

Producer集群

消息的生产者,通过NameServer集群获得Topic的路由信息,包括Topic下面有哪些Queue,这些Queue分布在哪些Broker上等。Producer只会将消息发送到Master节点上,因此只需要与Master节点建立连接。

Consumer集群

消息的消费者,通过NameServer集群获得Topic的路由信息,连接到对应的Broker上消费消息。注意,由于Master和Slave都可以读取消息,因此Consumer会与Master和Slave都建立连接。

客户端负载均衡

生产端

消费端

上一篇 下一篇

猜你喜欢

热点阅读