我们首先看RocketMQ的架构图
final.puml
它主要分为4个部分Broker/NameSever/Producer/Consumer
- Broker:进行消息转储的模块
- NameSever:路由信息查询模块,相当于是个注册中心(zookeeper)
- Producer:消息生产者
- Consumer:消息消费者
直接这么看其实还是不那么容易理解的,我们从最基础的开始看,把这张图简化一下,由浅入深的看下为什么RocketMQ是这样的架构。
MQ最本质做的事情就是不同模块间的相互通信,模块A调用模块B,最直接的模型就是RPC调用,MQ在普通的RPC调用的基础上加了一个Broker。我们可以理解为MQ的基本模型就是2次RPC+1次转储
1.puml
- 好处:1.异步解耦(最终一致性)。2瞬时大流量能堆积消息
- 坏处:1.”效率低”,调用变多。2.无法同步返回结果
- 存在的问题:单点