学习分布式协议与算法实战 ~ 6

时序数据,就是按照时间顺序记录系统、设备状态变化的数据,时序数据最大的特点是数据量很大,可以不夸张地说是海量。时序数据主要来自监控(监控被称为业务之眼),而且在不影响业务运行的前提下,监控埋点是越多越好,这样才能及时发现问题、复盘故障

META 节点存放的是系统运行的关键元信息,比如数据库(Database)、表(Measurement)、保留策略(Retention policy)等。它的特点是一致性敏感,但读写访问量不高,需要一定的容错能力,META 节点来说,节点数的多少代表的是容错能力DATA 节点存放的是具体的时序数据。它有这样几个特点:最终一致性、面向业务、性能越高越好,除了容错,还需要实现水平扩展,扩展集群的读写性能,DATA 节点而言,节点数的多少则代表了读写性能

META 节点存放的是系统运行的关键元信息,那么当写操作发生后,就要立即读取到最新的数据,需要强一致性

InfluxDB 企业版中,Hinted-handoff解决一个节点接收到写请求时,需要将写请求中的数据转发一份到其他副本所在的节点,那么在这个过程中,远程 RPC 通讯是可能会失败的问题,写失败的请求,会缓存到本地硬盘上 ;周期性地尝试重传 ;相关参数信息,比如缓存空间大小 (max-szie)、缓存周期(max-age)、尝试间隔(retry-interval)等,是可配置的。还不行就通过反熵来处理:数据副本之间的数据不一致,是因为数据写失败导致数据丢失了,也就是说,存在的都是合理的,缺失的就是需要修复的。这时我们可以采用两两对比、添加缺失数据的方式,来修复各数据副本的不一致了

实现强一致性(Werner Vogels 提到的强一致性),每次读操作都要能读取最新数据,不能读到旧数据。那么在一个 AP 型的分布式系统中,通过Quorum NWR实现

通过 Raft 算法,我们能实现强一致性的分布式系统,能保证写操作完成后,后续所有的读操作,都能读取到最新的数据。通过自定义副本数、Hinted-handoff、反熵、Quorum NWR 等技术,我们能实现 AP 型分布式系统,还能通过水平扩展,高效扩展集群的读写能力

原文地址:https://www.cnblogs.com/it-worker365/p/14554480.html