首页 > 数据库 > > TDengine在浙商银行微服务监控中的实践
• 数据高写入、低查询、不修改
对于按时间顺序插入的监控数据,会涉及到少量的查询,没有修改数据的业务场景。
• 无需事务支持
如果数据模型设计妥当,无需使用事务处理。
• 各监控指标之间相互独立,无需联合查询
• 数据时效性较强,超过一定时间的数据参考价值很小
核心诉求
针对这样的场景,我们需要一款能高效处理时序数据的工具。在各种因素的影响下,我们有如下几点需求:
•开源可控,且最好是国产软件,且能支持国产化芯片
•功能稳定
• 社区活跃:开发者社区人员多,问答、讨论频繁且有稳定的开发团队支持
• 部署成本低:尽可能少的服务节点,运维成本低,占用 CPU、内存资源较少
• 性能强大:支持万条数据秒级插入
时序数据库选型
在明确了核心诉求之后,我们调研了几款典型的时序数据库产品,包括 Apache Druid、InfluxDB 和 TDengine。
具体对比如下:
Apache Druid:Druid 是 Apache 基金会旗下的一款高性能的实时分析数据库,支持时间序列数据。功能强大、可自愈、自平衡、易操作、可进行有效的预聚合和预计算。不过对于时间跨度较大的查询不够灵活,而且架构较为复杂,需要的计算资源多。
InfluxDB:InfluxDB 是由 InfluxData 公司开发的一款开源的时序数据库,在业界非常流行。功能强大,部署简单,使用方便。不过集群功能没有开源。
TDengine:能满足我们的核心诉求,相关测试表明其性能优于 InfluxDB,而且开源了核心的集群功能。简单快捷、性能强大;支持 JDBC 接口,可以使我们应用快速接入使用。还有一点非常重要,因为 TDengine 的核心研发团队在国内,很方便直接交流。
整体对比之后,我们决定尝试 TDengine。
技术架构

create stable JVMGC (happentime timestamp, jvmUsedMemory bigint, jvmUsedMemoryyPercentage double, nonHeapMemoryUsed double, oldGenUsed bigint, oldGenUsedPercentage double , directBufferUsed bigint) tags (application NCHAR(300), host NCHAR(500), ip NCHAR(50))
与此同时,对每一个监控节点都建立一张子表,这样处理的好处在于:
来源 https://www.modb.pro/db/165262
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69999831/viewspace-3124495/ ,如需转载,请注明出处,否则将追究法律责任。