网易首页 > 网易号 > 正文 申请入驻

四款面向高并发、海量级分布式存储的分布式架构对比

0
分享至

一、Redis的分布式结构解读

首先redis采用去中心化的设计这个理解是不到位的。redis分布式的模式,具有主从和集群两种,redis社区的集群方案redis cluster采用的是去中心化设计。我们先看看redis的演化过程:

上图是标准的Redis主从模式,只有Master接受写入请求,并将写入的数据复制给一个或多个Slave,这就形成了良好的读写分离机制,多个Slave就可以分担读操作。所以redis主从式标准的分布式中心化思想。

由于redis的应用场景大多是极高并发的内存I/O,因此上图的主从模式下Master既要承担写入,又要承担对内各个节点复制,Master的资源消耗很大,而且随着slave节点越多,这个问题越明显,因此,redis又形成主从的一个变种形式:

上图是redis主从拓扑结构的一种树形结构,这个拓扑结构的好处在于Master不需要给无数多的slave节点进行复制数据了,交给处于下一层节点的Slave来处理。这样就能将Master的工作消耗尽量从复制中抽身。

可问题是像这种高并发的业务场景,Master始终是一个隐患,因为它承受着所有的写操作,一旦崩溃,若没有HA解决方案,集群整体就不可用了。因此redis社区推出的集群方案,其实就是解决主的压力,很自然地就考虑到使用集群的分布式无中心模式。

上图中,左边是集群的中心模式,右边就是redis cluster使用的无中心模式。

redis cluster一些细节:redis无中心采用虚拟槽概念,这是独立于物理节点的,往往很容易将这块混淆,虚拟槽有0~16383个,redis的数据进行key的hash计算(具体公式网上很多),确定这笔数据是进入哪个槽位,而物理节点负责哪些虚拟槽,这是由我们指定的。

例如:当1个G的数据按照一条条带有key的记录写入redis cluster的时候,那么集群的各个节点只要接收到数据,就计算此条记录应该归哪个槽哪个节点,归本节点就写入与槽位映射的数据,不归自己的,就反馈客户端真正需要写入的节点,客户端再向记录所属节点发起二次请求,这就完成了1个G的数据在集群中的分片。

我们先不论redis cluster更多的优劣问题,单从上面的演化可以看到redis的主从结构向cluster演化的过程,其实就是去中心的过程,就是为了让多客户端多业务请求并发性能可以得到更好负载。另外为了高可靠HA,每个节点也可以在演变成master/slave的主从模式部署,即便是主节点宕掉,salve也会顶替上来。HA的缺点是节点数量又增加了一倍。

redis与rocketmq最大的不同,redis更偏重在线联机业务的高并发处理,而后者是海量积压数据流的大吞吐接收和消费。因此其选择分布式架构的目的也不同。当然这不代表着一定是中心化就不适合高并发,例如LSM-Tree代表的oceanbase作为集中式处理的特点,就很好的做到了在线联机业务的高并发写入,以及高速的热点数据(最近时间)查找。

另外,因为redis cluster作为分布式中每个节点都是对等的,那么就一定会存在集群管理上的一致性风险,由于在生产环境中各种异常情况都很特别,就会导致不同节点对集群的认可状态不一致,所以这时候手动介入调整每个节点在集群中状态情况就会增多。

二、Kafka和RocketMQ的分布式解读

我们先看看比rocketmq更让人熟知的大师兄Kafka,解读一下Kafka集群的分布式特点。

Kafka的集群管理来自zookeeper集群,Broker的注册发现,Broker Controller的选举都是由zookeeper来协助完成,但是Controller其实也不在消息处理时做什么事情,只是在创建分区、分区再平衡等方面对其他节点做领导性工作。

Kafka真正起作用的还是分区leader和分区follower。例如:一个topic会被分成4个分区,3个副本,那么一共4*3=12个分区副本,若有4个broker,那么每个broker就会以一主两从,放置三个分区的形式均匀分布。

Kafka的分区关系就是上图这个通讯形式,生产者(Product)从任意节点获取Meta信息,找到broker中的leader分区副本,会向里面写分配好的数据,leader会向集群中其他broker的follower分区副本复制一份。

在这种分区结构关系下,其实每个broker都具有了topic分区数据请求访问以及副本复制的Master能力。所以你问我kafka是不是中心模式,下来再说。

我们再看看kafka的阿里兄弟rocketmq

rocketmq的架构已经不使用zookeeper集群作为服务的注册发现了

rocketmq队列模式很大程度上与kafka非常像,但是具体操作细节上有自己的特点,更符合高并发的,更多topic的,有顺序要求的业务消息处理,例如Topic进行了多个分片划分,分区又进行了多个Queue的划分,每个Queue只能对应一个消费者,来实现更高并发的消费端均衡负载。具体细节这就不赘述了。我们主要还是看看rocketmq的分布式特征。

其实NameServer也就是做了一个broker的注册表,新注册broker或者异常退出broker都向对应的NameSever汇报或感知,NameServer之间是无中心的,大家通过锁注册表的方式共享信息,NameServer增加/删除所辖broker到这个注册表,并定时读取最新的集群所有broker信息。

生产者(Producet)连接上一个NameServer,就能获取到想要的发送分区数据的brokers,消费者同理,发送消费的这个过程很类似Kafka操作topic,只是更细致到topic下的queue这个级别。

rocketmq还有一个特点是每个borker可以再分成主从模式,master进行队列操作,slave只做数据同步,等待master出现故障进行替换。

rocketmq的namesever相对于zookeeper具有更简单的结构,生产者和消费者对broker以及分区的获取必须来自namesever,尽管namesever集群本身是无中心的,但整个rocketmq的brokers就是被namesever中心化管理的,但整体上product、consumer、brokers集群对这种集中管理的依赖程度其实不高,只是提供了很简单的broker元信息服务,真正的数据流还是交给各个broker自己去解决。

kafka的broker分区信息是分布在每一台broker的meta缓存里面,生产者和消费者可以在任意一台borker上获取需要操作的leader分区信息,kafka这就有点去中心的意思。然而这些meta缓存信息实质是来自zookeeper,zookeeper是必须依赖的,所以本质上Kafka依然是中心化管理。

oceanbase分布式架构

oceanbase是LSM-Tree的一个典型实现,对于LSM-Tree可以看我的另一篇针对TiDB的回答文章中,主要对RocksDB的LSM-Tree的特征做了描述: 为什么分布式数据库这么喜欢用kv store?

作为oceanbase的架构,这次就不说太多了,就是想简单总结一下,oceanbase架构非常巧妙地融入了Lambda架构思想,但又和Lambda架构思想的关注点不同,Lambda架构关注的是计算,而oceanbase是存储。

oceanbase向rootServer、updateServer部署在一个节点,共同承担了分布式中心的作用。

rootServer用于管理集群。

updateServer用于增量数据更新,尽量在内存中完成增量,形成最高效的近期增量数据查询,往往是当天数据。

chunkServer用于基线数据存储,实际情况往往是隔天历史数据。

mergeServer,接受客户端的SQL进行解释,并且对updateServer查询结果、不同chunkServer节点查询结果数据合并,往往是当天增量数据和隔天历史数据的查询与合并。

这与Lambda架构的速度层、批量层、服务层的思想非常类似。当客户发起查询统计请求,updateServer满足当天增量数据的实时查询统计,chunkServer节点提供基线数据的分布式查询,最终由mergeServer对updateServer当日结果和各chunkServer基线结果进行合并后,反馈给客户端,总之oceanbase架构设计是个艺术品。

总结

这篇文章主要是介绍了分布式中redis cluster去中心化管理,kafka与rocketmq中心化管理的架构特点,顺便提了一些oceanbase的架构特色。

消息队列架构对于集中模式的依赖很轻,rocketmq也只是简单粗暴地使用了nameserver,用于broker注册发现,我认为kafka完全可以在将来的设计取消zookeeper,用更为去中心化的思路来设计注册和发现。

反观redis最成熟的方案还是主从,redis cluster带来的性能优势无法抵消去中心化带来的不成熟和不可靠问题,导致人工运维的复杂度和难度。所以redis cluster慎用!

oceanbase的架构很优雅也很艺术,抽时间好好再理解实践写一篇,oceanbase类似Google的Bigtable,Hadoop的Hbase,只是在其之上融入了Lambda架构的思想。让系统表现得更符合实际需求,也更为灵活可靠。但集群对资源需求不少。

我是“读字节”创作者,深入大数据技术、解读分布式架构

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
外媒:胡塞组织宣称对美国“艾森豪威尔”号航空母舰发动导弹攻击

外媒:胡塞组织宣称对美国“艾森豪威尔”号航空母舰发动导弹攻击

参考消息
2024-05-31 20:30:59
美军司令不顾警告,乘军机飞越南海,一下子发现122艘船只集结。

美军司令不顾警告,乘军机飞越南海,一下子发现122艘船只集结。

三分亮剑
2024-05-31 12:30:24
镓锗禁令出台不到24小时,美日欧打爆我国电话产品单价狂飙!

镓锗禁令出台不到24小时,美日欧打爆我国电话产品单价狂飙!

土家小木呀
2024-06-01 19:20:43
中国曾三次忍辱负重“装孙子”,完美躲过美国制裁!最终迎来崛起

中国曾三次忍辱负重“装孙子”,完美躲过美国制裁!最终迎来崛起

猫眼观史
2024-05-16 18:11:46
众生相!日本女排大胜疯狂庆祝犹如夺冠 蔡斌再创耻辱场边黑脸

众生相!日本女排大胜疯狂庆祝犹如夺冠 蔡斌再创耻辱场边黑脸

林子说事
2024-06-01 19:24:47
A股:3个利好消息,直奔主题,下周,A股会迎来“大动作”吗?

A股:3个利好消息,直奔主题,下周,A股会迎来“大动作”吗?

郭小凡财经
2024-06-01 11:40:33
太辣眼!沙溢牙白到失真,金晨烤瓷牙出戏,明星假牙各有各的尴尬

太辣眼!沙溢牙白到失真,金晨烤瓷牙出戏,明星假牙各有各的尴尬

西瓜爱娱娱
2024-06-01 12:01:34
成都一男子的家火了,光一个阳台就让无数人效仿,太高级了!

成都一男子的家火了,光一个阳台就让无数人效仿,太高级了!

阿离家居
2024-06-01 15:00:31
这位岳阳人履任新职!

这位岳阳人履任新职!

鲁中晨报
2024-06-01 14:07:04
寅虎危机!你已被小人的阴谋牢牢套住,竟然还浑然不觉!

寅虎危机!你已被小人的阴谋牢牢套住,竟然还浑然不觉!

书中自有颜如玉
2024-06-01 19:24:21
断崖式下跌!10元/斤!浙江人:难得一见!

断崖式下跌!10元/斤!浙江人:难得一见!

FM93浙江交通之声
2024-06-01 08:11:59
伊利输惨了!超市老板要求退货,1万5司机赔偿来了,蒙牛直接起飞

伊利输惨了!超市老板要求退货,1万5司机赔偿来了,蒙牛直接起飞

娱乐帝皇丸
2024-06-01 19:02:45
谁给它们肆无忌惮跌停的勇气?10只股票赖着不开板,直接奔退市!

谁给它们肆无忌惮跌停的勇气?10只股票赖着不开板,直接奔退市!

惜别的海岸
2024-06-01 11:47:51
毛主席气场最强大的一张照片,单一个抽烟的动作就无人能比!

毛主席气场最强大的一张照片,单一个抽烟的动作就无人能比!

兰子记
2024-05-30 20:16:24
离谱到家,《庆余年2》大结局,真是我今年看过最恶心的大结局

离谱到家,《庆余年2》大结局,真是我今年看过最恶心的大结局

娱乐圈笔娱君
2024-05-31 11:20:20
乌克兰得到一笔“前所未有”的援助

乌克兰得到一笔“前所未有”的援助

环球时报国际
2024-05-27 23:57:17
全球现役机器狗首次阵亡!身中3枪不幸牺牲!美国警方披露细节

全球现役机器狗首次阵亡!身中3枪不幸牺牲!美国警方披露细节

军武次位面
2024-05-31 10:15:35
36岁小伙查出肝癌中期,每天喝玉米须水,复查时医生:这啥办法

36岁小伙查出肝癌中期,每天喝玉米须水,复查时医生:这啥办法

荷兰豆爱健康
2024-05-31 19:50:10
美防长在香会演讲,一开口就提到中国防长

美防长在香会演讲,一开口就提到中国防长

直新闻
2024-06-01 14:40:43
中国女排1-3日本女排!谁是输球的罪魁祸首,赛后数据一目了然

中国女排1-3日本女排!谁是输球的罪魁祸首,赛后数据一目了然

小豆豆赛事
2024-06-01 18:41:58
2024-06-01 21:46:44
读字节
读字节
大数据,软件架构的深度解读
11文章数 85关注度
往期回顾 全部

科技要闻

余承东:不卷价格!雷军:将双班制生产!

头条要闻

鲍炳章被双开:搞权色交易、钱色交易 为亲属低价购房

头条要闻

鲍炳章被双开:搞权色交易、钱色交易 为亲属低价购房

体育要闻

女排最强2主攻合体 合砍40分打懵泰国

娱乐要闻

白玉兰提名:胡歌、范伟争视帝

财经要闻

实锤!普华永道,危!

汽车要闻

吉利银河E5 Flyme Auto智能座舱首发

态度原创

时尚
旅游
教育
健康
手机

伊姐周六热推:电视剧《时光正好》;综艺《快乐老友记 第二季》......

旅游要闻

台北故宫博物院新展:文书珍品里的端阳时节

教育要闻

这本百科常识把孩子小学课本之外的知识全都归类整理好了

晚餐不吃or吃七分饱,哪种更减肥?

手机要闻

全等深悬浮四曲屏!荣耀200 Pro月影白图赏

无障碍浏览 进入关怀版