16 | InfluxDB企业版一致性实现剖析:他山之石,可以攻玉
该思维导图由 AI 生成,仅供参考
- 深入了解
- 翻译
- 解释
- 总结
InfluxDB企业版一致性实现剖析:他山之石,可以攻玉 本文深入剖析了InfluxDB企业版的一致性实现,以时序数据库为例,介绍了其背景知识和架构特点。文章首先解释了时序数据库的概念和特点,强调了时序数据的海量性和监控的重要性。随后,对InfluxDB企业版的架构进行了详细介绍,包括META节点和DATA节点的特点和功能。针对META节点的一致性实现,文章指出其需要强一致性,采用了Raft算法来实现。而对于DATA节点的一致性实现,则介绍了自定义副本数和Hinted-handoff的实现方式,以及如何处理数据的最终一致性。 通过本文的阐述,读者可以深入了解时序数据库的特点和InfluxDB企业版的架构设计,以及其一致性实现的关键技术。同时,文章通过实际案例和技术细节,帮助读者理解了分布式系统中一致性实现的复杂性和重要性,为读者提供了宝贵的技术参考和实战经验。 文章还提到了时序数据的一致性问题,强调了实现最终一致性的重要性,并介绍了反熵的实现方式。此外,针对需要强一致性的场景,文章提出了Quorum NWR的实现方法。最后,文章强调了技术的用途是解决场景需求,而不是追求完美的技术,需要根据场景特点设计适合的分布式系统。 总的来说,本文通过深入剖析InfluxDB企业版的一致性实现,帮助读者全面了解了时序数据库的特点、InfluxDB企业版的架构设计以及一致性实现的关键技术,为读者提供了宝贵的技术参考和实战经验。
《分布式协议与算法实战》,新⼈⾸单¥59
全部留言(27)
- 最新
- 精选
- Geek_3894f9课后思考题,答案是QNWR,Wn,R1。wn是因为对写入的时间要求不高,r1是因为可以读取任意一节点,读性能好。
作者回复: 加一颗星:)。
2020-03-18221 - Michael Tesla我觉得思考题的场景特点是:读多写少,读的性能要求高,数据要保证强一致性。 如果使用 Raft 算法 保证强一致性,那么读写操作都应该在领导者节点上进行。这样的话,读的性能相当于单机,不是很理想。 应该采用 Quorum NWR 技术,设置 W = N,R = 1。每次都要写入全部节点,写操作的性能会比较差。但是,因为写操作比较少,所以这个缺点可以忍受。而读操作只需要读任意一个节点就能返回最新的数据,性能非常高。
作者回复: 加一颗星:),这是个解决办法,与这个办法“类似”的二阶段提交协议,也是个办法。
2020-04-06315 - 阿卡牛这个实战太企业了,新手完全无从下门,有没有些入门的课程
作者回复: 主要感觉哪方面学习起来比较困难呢?能具体说说吗? 看到了反馈,我补充下,其实,技术是一点一点学习的,关键要找到一个点,在深度上进行突破,然后再在广度上扩展开来了,比如,可以先聚焦在实战篇的分布式KV系统,将代码玩起了,吃透分布式系统的架构和开发方法,多玩代码,少想理论。代码玩出了感觉后,聚焦和吃透Raft算法。最后,再聚焦和吃透其他理论。
2020-03-2558 - Kvicii.Y1.META节点是Raft算法实现,那是不是存在这如果节点过多消息同步慢的问题呢?存在的话如何解决呢?(只能减少Raft节点?) 2.思考题使用quorum nwr可以达到最终一致性,这里说的强一致是最终一致的意思吗?
作者回复: 1. 不推荐节点数过多,一般推荐3个节点,也就是能容错一个节点故障,就可以了。 2. 通过反熵,可以实现最终一致性。通过quorum nwr,可以让业务按需选择一致性级别,比如说,可以是强一致性,也可以是最终一致性。
2020-03-304 - Following Uhello,讲师好,influxdb 企业版你这边的分布式版本的github 地址吗?
作者回复: https://github.com/freetsdb/freetsdb,现在是Alpha版,还在准备中。项目中一些有意思的技术点和设计,我也会在第一时间和大家分享同步:)。
2020-07-123 - 每天晒白牙感觉自己对这些知识理解的还是不够,更不能进行实战应用,还得好好学学。 对于思考题,首先要求强一致性,读多写少,那是不是可以像 META 节点一样,采用 Raft 算法实现强一致性。但这样对性能可能就有影响了,不过这个 KV 系统是读多写少,应该也可以 然后就是从性能考虑,可以在 AP 系统中实现强一致性。根据文中提示,可以采用 Quorun NWR 实现
作者回复: 加一颗星:),如果直接使用Raft集群,读性能满足不了,可以增加几台内存缓存服务器,来提升读性能。
2020-03-1823 - 欧阳除了quorum NWR。kfk的分区是不是也是一种思路
作者回复: 加一颗星:),目标不同,quorum NWR实现的是自定义一致性级别,kfk分区是为了实现水平扩展、负载均衡,提升读写性能。
2020-03-3022 - 姜川老师,raft要实现强一致是不是就需要收到所有节点的ACK才可以,半数以上那种只能是最终一致性吧,因为会有短暂的不一致发生
作者回复: 加一颗星:),不需要,在领导者节点上执行读操作,可以实现强一致性:)
2020-03-262 - 夜空中最亮的星喜欢案例,让案例来的更猛烈些吧
作者回复: 好的,也期待你的更多反馈:)。
2020-03-182 - Heaven读多写少啊,只需要保证在每次都必须要写入到每一个节点上就可以了,然后读的时候直接去读,自然是最新的
作者回复: 加一颗星:)
2020-08-211