阿里 钱赟 云原生influxdb高可用架构设计

CodeWarrior

2019/07/08 发布于 编程 分类

GIAC2019 

文字内容
1. 云原生influxdb®高可用架构设计 钱赟 阿⾥巴巴 技术专家
2. 云原生influxdb®高可用架构设计 钱赟 阿⾥巴巴 技术专家
3. InfluxDB是什么 InfluxDB是一款开源时序型数据库。它由Go写成,着力于高性能地查询与存储时序型数据。 InfluxDB被广泛应用于存储系统的监控数据,IoT行业的实时数据等场景。 InfluxDB是DB-Engines中排名第一的时序数据库
4. 熟悉⽽⼜陌⽣的时序数据 古代的时序数据
5. 熟悉而又陌生的时序数据 当代的时序数据
6. 时序数据库的概念 时序数据库是一类专门为处理时间序列数据而设计并优化的数据库管理系统。 相较传统的关系型数据库,时序数据库的特点如下: l 存储的任何一条数据记录都必然带一个时间戳 l 通常高频访问热数据 l 数据写入频率相对稳定,且远大于数据读取的频率 l 通常按照时间窗口查询数据 l 基本不提供单点数据的更新或删除功能 l 无需提供类似关系型数据库事务级别的数据强一致性
7. 时序数据库应用日益广泛 l l l l l l 电力行业 交通行业 石油石化 物流行业 环境监测 军工行业 l 制造业 l 物联网 l 互联网
8. 时序数据库的迅猛发展 DB-Engine数据库类别增长趋势 2014年开始,DB-Engine把时间序列数 据库作为了独立的类别来统计。近24个月, 增长趋势在所有数据库类别中排在第一位。
9. InfluxDB - 完整的TICK⽣态 Telegraf: Telegraf是一个开源的时序数据 收集器。它收集各种不同的时序数据, 并把数据通过InfluxDB标准API发送给 InfluxDB。Telegraf采用插件的方式,目前 支持200多种不同服务的时序数据收集, 用户可以开发自定义的插件收集数据。 Chronograf: Chronograf是整个TICK生态的 UI界面层。它让用户可以通过图形界面展 现InfluxDB中的数据,同时它可以配置 InfluxDB参数以及收集Kapacitor发送的报 警信息。开源的Grafana也具有同样的图 形展示功能 Kapacitor: Kapacitor是一个事件处理及报 警引擎,它能够根据建立的规则对异常 时序数据进行报警,同时能够将这些警 告发送给其他系统。
10. InfluxDB ‒ 易⽤性 • 数据写入:方便简洁的行协议 • 数据查询: 类SQL语句,SQL用法无缝衔接 • 先进的时序数据分析技术 • 四大类分析函数:Aggregation(聚合),Selector(选择),Transformation(转换),预 测(Prediction) • 八个专用分析方法
11. InfluxDB ‒ 低成本存储 • 灵活的存储保留策略:及时删除过期的数据,释放硬盘空间 • 高效压缩算法: 不同类型数据,采用不同压缩算法,最大节省硬盘使 用空间(压缩到1/10)
12. InfluxDB ‒ ⾼可⽤ 开源InfluxDB不提供高可用特性 InfluxDB HA ✘
13. 阿⾥云InfluxDB® 阿里云托管运维InfluxDB ® 阿里云InfluxDB®特性 • TICK生态兼容 • 所有服务全部托管 • 保留开源InfluxDB所有特性 • 全自动化数据迁移 • 基于阿里云99.9999999%高效云盘 • 提供高可用版本,高SLA服务承诺
14. 什么是⾼可⽤性 高可用性,是指系统无中断地执行其功能的能力,代表系统的可用性程度。是进行系统设计 时的准则之一。高可用性系统与构成该系统的各个组件相比可以更长时间运行。 一般高可用性,用一个百分数来表示。高可用性越好,百分数越大
15. 阿⾥云InfluxDB®高可用方案讨论(一)- 集群方案 应用 HTTPS Query Write HTTP Proxy Grafana Telegraf 读写请求 读写请求 Data HA Group1 Node1 Data HA Group2 Node2 Node1 Node2 raft raft Node3 Node3 集群管理 集群管理 Meta Servers HA Group raft Meta Server 1 Meta Server 2 Meta Server 3
16. 阿⾥云InfluxDB®高可用方案讨论(二)- 三节点方案 应用 HTTPS Query Write HTTP Proxy Grafana Telegraf 读写请求 Data HA Group InfluxDB Node1 InfluxDB Node2 raft InfluxDB Node3
17. 阿⾥云InfluxDB®高可用方案讨论(三)- 两节点方案 应用 两节点高可用方案: 两节点无法保证数据库的高可靠,但是 阿里云的高效云盘可以 两节点无法保证数据的一致性,时序数 据对一致性要求不高 HTTPS Query Grafana Write HTTP Proxy Telegraf 读写请求 Data HA Group 两节点可以通过ant-entropy算法来实现数 据同步,实现数据的最终一致性 两节点只需要两台机器,即可以基于阿 里云的高效云盘实现高可用,成本更加 底 InfluxDB Node1 Data Sync InfluxDB Engine InfluxDB Engine Consistency Repairer 高效云盘 InfluxDB Node2 Anti-Entropy Repair Consistency Repairer 高效云盘
18. 阿⾥云InfluxDB®高可用方案讨论(四)- 单节点高可用 • 一般高可用通过冗余来保证,单节点能否实现冗余? • 单节点是否能保证数据可靠性? • 单节点数据是否有一致性的问题? • 实例进程出现了故障退出以后,如何处理? • 机器出现问题后,如何处理?
19. 阿⾥云InfluxDB®高可用方案讨论(四)- 单节点高可用 • 一般高可用通过冗余来保证,单节点能否实现冗余? - 高可用的实质是提高可用性,并不一定需要冗余来保证 • 单节点是否能保证数据可靠性? - 阿里云的高效云盘提供99.9999999%的数据可靠性 • 单节点数据是否有一致性的问题? - 单节点方案没有一致性问题,只有一个数据写入源,无需数据同步 • 实例进程出现了故障退出以后,如何处理? - 直接重启实例即可 • 机器出现问题后,如何处理? - 阿里云InfluxDB ®提供高效自动的failover机制,实现全自动故障转移
20. 阿⾥云InfluxDB®高可用方案讨论(四)- 单节点高可用 umount/mount 客户端 客户端 客户端 Working Host Working Host Working Host InfluxDB InfluxDB InfluxDB 高效云盘 高效云盘 高效云盘 管控平台 Backup Host InfluxDB 高效云盘 Failover机制
21. 阿⾥云InfluxDB®高可用最终方案 Ø 集群方案 • • • • • • 系统可用性极高 水平可扩展 数据一致性高 meta信息一致性高 成本较高 适合数据量很大的用户 Ø 单节点方案 • • • • 系统可用性高 数据一致性高 成本较少 满足数据规模不是特别大(32T以下)的用户
22. 阿⾥云InfluxDB®公测上线 购买链接: https://commonbuy.aliyun.com/?spm=5176.11451019.0.0.144575d16d7RE1&commodityCode=hitsdb_influxdb_pre&accounttraceid=7545a e3e-f0e4-4df9-a0fc-b931328048fd#/buy 钉钉群 阿里云InfluxDB®文档
23. 欢迎关注msup微信公众账号 关注大会微信公共账号,及时了解大会动态、 日程及每日更新的案例! 关注公众号获得 更多案例实践