RocketMQ入门篇-Rocket超详细讲解

2020-05-29 11:25:05 浏览数 (2)

什么是RocketMQ?

  • 一个队列模型的消息中间件,具有高性能、高可靠、高实时、分布式的特点。
  • Producer向一些队列轮流发送消息,队列集合称为一个Topic,Consumer从队列中进行消费,如果Consumer做广播消费,则一个Consumer实例消费这个Topic对应的所有队列,Consumer如果做集群消费,则多个实例平均消费这个Topic对应的队列集合。
  • 保证严格的消息顺序,QUEUE队列的数据结构,先进先出
  • 提供丰富的消息拉取模式
  • 高效的订阅者水平拓展能力
  • 消息订阅机制实时
  • 亿计消息堆积能力

物理部署结构

物理结构

NameSrv:一个几乎无状态节点的注册中心,比zookeeper更轻量级,更好用,可集群部署,节点之间无任务信息同步,负责维护Producer和Consumer的配置信息、状态信息,并且协调各个角色的协同执行。

Broker: 消息中转对象,负责存储消息、转发消息,一般也称为Server。在JMS规范中称Provider。Broker分为Master与Slave,一个Master可以对应多个Slave,一个Slave之恩呢对应一个Master。每个Broker与Namesrv集群中所有节点建立长连接,定时注册Topic信息到所有NameSrv。

Producer: 与Namesrv集群中的一个节点建立长连接,定期从Namesrv取Topic路由信息,并向提供Topic服务的Master建立长连接,且定时向Master发送心跳。

Consumer: 与Namesrv集群中的其中一个节点建立长连接,定期从Namesrv取Topic路由信息,并向提供Topic服务,并向提供Topic服务的Master、Slave建立长连接,且定时向Master、Slave发送心跳。Consumer可以从Master订阅消息,也可以从Slave订阅消息,订阅规则由Broker配置决定。

0 人点赞