RocketMq

RocketMq分为四个组件: NameServer \ Broker \ Producer \ Consumer

  1. NameServer提供轻量级的服务发现和路由,每个NameServer记录完整的路由信息,提供等效的读写服务,支持快速的存储扩展

  2. Broker 通过提供轻量级的topic和queue机制提供消息的存储能力,支持消息的push和pull模式,通过备份机制实现容错能力,提供容灾能力、丰富的指标统计和告警机制。

  3. Producer: producer的分布式部署, 分布式环境下producer通过负载均衡策略向Broker发送消息

  4. Consumer: consumer的分布式部署,支持集群消费和广播消费

核心概念:

a. producer有多种发送策略: synchronous, asynchronous, one-way

b. consumer分为PullConsumer和PushConsumer, PushConumser就是consumer注册回调方法,message到达Broker之后通过回调将消息推给consumer

c. message: message就是一条消息,必须指定一个topic,可以带有tag或者key-value键值对

d. message queue: 类似于kafka的partition,不同的topic会被划分到一个或者多个queue中

e. message order: 分为顺序消费和并发消费,如果需要顺序消费则改topic应该只有一个queue。同时消息消费的最大并发是该队列被订阅的消费者数量

f. 事务消息:rockerMq支持事务消息,大致原理是producer先发送prepared消息到broker,然后执行本地事务,成功则通过第一阶段的回调地址修改消息的状态

Written on January 29, 2021