写点什么

influxDB 集群模式实践

  • 2019-12-09
  • 本文字数:2004 字

    阅读完需:约 7 分钟

influxDB集群模式实践

1 基础概念

TSDB 与传统 DB 比较

  1. 传统数据库多用于记录数据的当前值。

  2. 时序数据库记录基于时间的一系列数据。

TSDB 应用场景

由时序产生,并且需要展现其历史趋势、周期规律、异常性的,进一步对未来做出预测分析的,都是时序数据库适合的场景。具体场景:各类设备的监控数据,医学中的血糖、血压、心率的监控数据,金融业中交易、成交数据等。

为什么选择 influxdb

  1. 开发者社区活跃,使用者众多,开源时间较长。性能经过检验;

  2. 类 SQL 的插入、查询语言,不会增加太大的学习成本;

  3. 原生 HTTP 接口支持各类语言调用;

  4. 仅仅作为存储方案,可插拔。

influxdb 之 TSM 存储引擎概述

  • TSM 存储引擎主要由几个部分组成:

  • cache。在内存中是一个简单的 map 结构默认配置文件中为 1g。

  • wal。记录内容和 cache 一样,目的是为了持久化 cache 数据,influxdb 启动时会加载 wal 的数据到内存。

  • tsm file。用于数据存储。

  • compactor。主要进行两类操作:

  • cache->snapshot->tsm;

  • 合并小 tsm 成为大的 tsm。

Shard——TSM 存储引擎之上的概念


  1. 按时间戳所在不同范围创建不同 Shard;

  2. 根据时间可以快速定位要查询的数据资源,加快查询的过程;

  3. 让根据时间的批量删除操作变得非常简单且高效。

2 项目由来

  1. influxdb 社区版默认并未提供集群解决方案。

  2. 官方开源的 influxdb-relay 仅仅支持双写功能,并未支持负载均衡能力。

  3. 饿了么开源的 influx-proxy 集群方案组件众多,安装部署、后期维护成本高、复杂度大。

  4. 360 公司内部需求:提供十万台主机的两百个监控项数据的实时出图、访问,基于这些监控项的告警以及故障预测。

  5. 基于上述需求,于是有了 influxDB-HA 项目。

3 程序架构

官方开源 influxdb-relay 方案


未解决的问题:


  1. 采用双写仅仅解决了数据备份的问题,并未解决 influxdb 读写性能的问题;

  2. 只是写入了数据,查询还是需要去读 influxdb。增加了配置文件的复杂度不易维护;

  3. 并未对写入失败的数据做任何重试机制的处理。

饿了么 influxdb 高可用解决方案


优势:


  1. influx-proxy 是饿了么在 influxdb-relay 满足不了其性能要求、配置维护要求痛定思痛后重构的产物;

  2. influxdb 机器支持动态扩缩;

  3. 增加了强大的请求失败后的重试机制。


劣势:


  1. 架构中使用的组件较多,增加了使用者的学习成本,且不易于后期的维护;

  2. 请求失败重试本身是双刃剑,试想机器性能达到极限,重试无形中又增加了机器的负载;

  3. 与自身场景需求不相符,我们内部只是做监控数据的持久化存储,应该是最简单的接入和与 influxdb 最小的架构改造。

360 内部 influxDB-HA 解决方案


优势:


  1. 以 measurement 为最小拆分单元,从而保证以时序查询 influxdb 的高效性。

  2. 支持业务层动态的拆库、拆表操作。

4 性能比较

与单机 influxdb 磁盘 IO 对比。



与单机 influxdb CPU 使用对比。


5 业务方接入 influxDB-HA 说明

influxDB-HA 管理 influxdb 实例配置。



Grafana 接入 influxDB-HA 说明。



三方程序接入 influxDB-HA 写入数据说明。


  1. 完全兼容 influxdb 原生的/write 接口方式写入,且支持原生查询接口的所有参数;

  2. 如果您说您以前习惯了使用 influxdb 的 SDK 方式写入,那也恭喜您。influxDB-HA 支持任何语言的 influxdb SDK 接入。

6 后期迭代计划

一个优秀的项目需要经历无数的版本迭代和优化,而对于开发者而言,能兼容各类需求、适应各类场景是沉淀、提升技术的不二法门。鉴于此,我们应该不断完善 influxDB-HA 以支持 360 内部各类使用场景。接来下,仅提出未来可见的优化点:


  1. 接入 kafka、RabbitMQ 做写入请求之前的缓冲,降低数据丢失的风险;

  2. influxDB-HA 配置文件的热加载(目前已经通过 golang 的 fsnotify 库实现,将来更大规模的 influxDB-HA 集群应该通过 etcd 等外部的配置统一管理来实现);


对接业务方分表,以支持更大数据规模场景下的解决方案,measurement 始终作为 influxDB-HA 集群中可拆分的最小单元,避免不同 measurement 的合并排序问题。

7 influxdb 使用注意事项

经过一段时间(近一个多月)的实践和对 influxdb 性能的综合观察,总结出以下结论供我们大家一起探讨:


1、continuous queries/select:


笔者看见很多对于 influxdb 的不满来自于对其性能的诟病。然而有目共睹的是其写入性能是极其优秀的,那究竟查询性能如何呢?


实践总结:对于超过 10 万样本数据的查询操作而言,我们通过索引(即 influxdb 中的 tag)查询将能够节省机器性能,大大降低查询时间。查询操作往往耗死机器的根本原因是:OOM(Out Of Memory)


那么在配置 CQ 时,应该:


  • 尽可能使用 tag;

  • 应该拿写好的 CQ 充分模拟线上环境的测试,证明性能没问题后再上线。


2、retention policy:


配置数据的留存策略好处是数据持久化,但数据量较大时劣势也非常明显,会占用很大的 CPU,造成读写数据异常。所以配置 RP 时我们必须注意:


  • 尽量在读写并发量较小的时刻去操作;

  • 可以在 influxdb slave 库中反复设置 RP 实践出最佳方式再上线。


本文转载自公众号 360 云计算(ID:hulktalk)。


原文链接:


https://mp.weixin.qq.com/s/erNqCgUTEIVygNknydlPag


2019-12-09 10:056100

评论 1 条评论

发布
用户头像
说了别人为啥不高可用,但却没说自己哪里高可用了
2021-07-14 09:13
回复
没有更多了
发现更多内容

【原创】【深入浅出系列】之代码可读性

京东科技开发者

从闪存普惠,到数字化普惠:极简全闪数据中心引发的变革

脑极体

AI

Kubernetes 监控:观测云与 Prometheus CRD 的集成

可观测技术

Kubernetes

清晰易懂二分查找算法 你确定不看吗?

不在线第一只蜗牛

Java Python 算法

2024快应用开发者大会:携手AI,共筑未来智慧服务新生态

科技热闻

科大讯飞哪一款适合初高中 科大讯飞T20Pro值得买吗

妙龙

学习机

华为大咖说丨当“AI大潮”来袭时,你是否还在“裸泳”?

华为云PaaS服务小智

人工智能 华为云

Elasticsearch Mapping类型修改

京东科技开发者

就一次!带你彻底搞懂CSRF攻击与防御

我再BUG界嘎嘎乱杀

黑客 网络安全 信息安全 CSRF 网安

适合新手进行接口与自动化测试练习的推荐网站!!!

EquatorCoco

接口 自动化测试

首部顶级AI科学家创作的纯正科幻小说,一个元宇宙和AI时代的全新科学幻想!

博文视点Broadview

K8S集群中使用JDOS KMS服务对敏感数据安全加密

京东科技开发者

科大讯飞AI学习机P30 值得入手吗 功能介绍

妙龙

个人开源项目商业化经验分享

秦少卫

开源图片编辑器 开源vue图片编辑器 vue图片编辑器

持续迭代:观测云的产品进化论

可观测技术

持续迭代

万界星空科技自动化运维管理---设备管理

万界星空科技

数据采集 mes 自动化运维 设备管理 万界星空科技

MySQL5.7 中连续 Crash 引发 GTID 丢失

爱可生开源社区

MySQL 数据库

总有坏人想爬我网站的数据,看我用这 10 招干他!

快乐非自愿限量之名

爬虫 网站

SDN与SD-WAN的交集和区别

Ogcloud

SD-WAN 企业组网 SD-WAN组网 SD-WAN服务商 SDWAN

2024 年 7 月公链行业研报:市场波动中 Solana 表现抢眼,Layer 2 竞争白热化

Footprint Analytics

比特币 以太坊 公链 #区块链

全栈监控:一目了然的 IT 管理

可观测技术

监控

解锁企业成功密码—商品计划的神奇力量

第七在线

在一串字符串中Java使用正则匹配电话号码的方法

EquatorCoco

Java MySQL 开发语言

共情财务业务一体化管理,成为企业合作伙伴的拥护者

智达方通

企业管理 企业转型 全面预算管理 财务管理 财务转型

IPLC、IEPL与MPLS的对比分析

Ogcloud

MPLS 企业组网 企业网络 IPLC IEPL

按需扩展,成本优化:灵活的服务配置

可观测技术

成本优化

从概念到落地:全面解析DApp项目开发的核心要素与未来趋势

区块链软件开发推广运营

dapp开发 区块链开发 链游开发 NFT开发 公链开发

观测云:技术创新与敏捷迭代的先锋

可观测技术

数据分析

天融信与涛思数据达成战略合作,共筑数据安全新高地

TDengine

10亿数据秒级查询,西南证券与镜舟科技合作,构建极速、高效数据平台

镜舟科技

数据库 大数据 数据分析 StarRocks

vue前端自适应布局,一步到位所有自适应

不在线第一只蜗牛

Vue 前端

influxDB集群模式实践_文化 & 方法_360云计算_InfoQ精选文章