RocketMQ

rocketmq概览

2018-03-01  本文已影响87人  一抹斜阳丶

简介

image

上图是一个典型的消息中间件收发消息的模型,RocketMQ也是这样的设计,简单说来,RocketMQ具有以下特点:

rocketmq的物理部署结构:


image

支持的特性

架构图

通信关系:


rocketmq各模块通信.png

对比其他mq

kafka模块通信.png

消息存储

为提高消息读写并发能力,将一个topic消息进行拆分,kafka称为分区,rocketmq称为队列。

producer端发现

Producer端如何来发现新的broker地址。

消费offset的存储

consumer负载均衡

对于负载均衡,在出现分区或者队列增加或者减少的时候、Consumer增加或者减少的时候都会进行reblance操作。

Name Server和zk

Name Server和ZooKeeper的作用大致是相同的,从宏观上来看,Name Server做的东西很少,就是保存一些运行数据,Name Server之间不互连,这就需要broker端连接所有的Name Server,运行数据的改动要发送到每一个Name Server来保证运行数据的一致性(这个一致性确实有点弱),这样就变成了Name Server很轻量级,但是broker端就要做更多的东西了。

而ZooKeeper呢,broker只需要连接其中的一台机器,运行数据分发、一致性都交给了ZooKeeper来完成。

源码解读

参考文章

RocketMQ源码分析(一)整体架构
Kafka设计解析(四):Kafka Consumer解析
分布式开放消息系统(RocketMQ)的原理与实践
十分钟入门RocketMQ

上一篇 下一篇

猜你喜欢

热点阅读