前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >一个简单的问题 | 分布式副本一致性

一个简单的问题 | 分布式副本一致性

作者头像
王知无-import_bigdata
发布2019-12-20 16:55:05
1.2K0
发布2019-12-20 16:55:05
举报

当我们开发大数据应用时, 通常会接触到数据一致性,通常为了提高数据的高可用性,防止单点数据故障,我们会提供数据副本, 这时候冗余副本的数据库一致性问题就是需要考虑的问题。在此处整理了三种方式, 并展现了HDFS 与 ES使用的副本数据一致性的架构方案。

1. 首先我们这里提供一个比较简单粗暴的方式

将请求分发到多个节点,每个节点进行数据的写入, 写完进行回复, 当有指定个节点写入成功后即算一次写入成功。

这种情况下的优缺点: 优点:写入时间取决于最慢的那个节点的写入时间 缺点:网络IO大, 客户端要向每个节点发送数据。

2. HDFS 副本写入一致性

HDFS副本写入一致性使用的是一种链式pipeline的形式。

这个流程是先写入第一个datanode中,然后读取namenode中其他datanode的位置,通过datanode类似pipeline形式一级一级往下写,然后一级一级向上返回,最终返回给客户端。 优点:能保证数据的强一致性 缺点:需要所有副本正常插入数据,才能算写成功, 效率不够高

3. ES 副本写入一致性

这个写入流程是先通过写主节点, 当主节点写入成功后, 将数据请求同时向所有的副本节点发送, 副本节点进行处理然后应答主节点, 当主节点收到所有副本节点的应答之后就开始向客户端返回本次写入成功。 优点: 性能较好, 写入时间取决于主节点写入时间+max(副本节点写入时间) 缺点: 依赖主节点, 数据量大的时候网络IO有压力。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-12-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 大数据技术与架构 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
大数据
全栈大数据产品,面向海量数据场景,帮助您 “智理无数,心中有数”!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档