RocketMQ学习一RocketMQ初探

RocketMQ架构图 【RocketMQ学习一RocketMQ初探】RocketMQ学习一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可以被多个消费组订阅,同样一个消费组也可以订阅多个主题。一个消费组有多个消费者。

    推荐阅读