RocketMQ架构图

次要组件如下:
NameServer
NameServer集群,Topic的路由注册核心,为客户端依据Topic提供路由服务,从而为客户端获取对应的Broker进而向Broker发送音讯。NamerServer将Topic信息保留在内存里。NameServer之间的节点不通信,NameServer集群里的路由信息采纳的是最终一致性。NameServer对于RokcetMQ好比ZK对于Kafka。
Broker
音讯存储服务器,分Master与Slave,Master承当读写操作,Slave作为一个备份。每30s Master与Slave会向NameServer发送心跳包,心跳包里有Broker上所有的Topic路由信息。Broker会将Topic信息长久化。
Client
音讯客户端,包含Producer与Consumer。个别状况下同一时间一个客户端只会连贯一台NameServer,只有在异样的时候才会尝试连贯另外一台。客户端每30s向NamerServer发动Topic的路由信息查问

音讯订阅模型

RocketMQ音讯生产模式采纳的是公布与订阅模式。

  • Topic: 一类音讯的汇合,不同类型的音讯归属于不同的主题
  • ConsumerGroup:音讯生产组,一个生产单位的汇合,生产组启动时须要订阅须要生产的Topic。一个Topic能够被多个生产组订阅,同样一个生产组也能够订阅多个主题。一个生产组有多个消费者。