浙商银行很早就开始全面推进数字化转型,2010 年浙商银行上线电子银行服务、手机银行业务,2017 年上线首个区块链服务平台,同年发布了直销银行品牌。2018 年浙商银行国标 A 级数据中心启用,并在 2020 年成立易企银金融科技子公司。
浙商银行微服务可视化治理平台是基于Java体系自研的微服务治理监控平台,为行内基于统一的微服务框架开发的应用提供全面、实时的微服务治理监控功能,能够有效提升云环境下的微服务可视化程度和服务管理控制的便捷度,减少服务故障发现时间,提升故障定位效率,辅助应用程序优化。在这样的业务场景中,数据量大、监控指标繁杂成了我们的主要挑战。
通过分析监控数据,我们发现它有以下特点:
针对这样的场景,我们需要一款能高效处理时序数据的工具。在各种因素的影响下,我们有如下几点需求:
在明确了核心诉求之后,我们调研了几款典型的时序数据库(Time-Series Database)产品,包括 Apache Druid、InfluxDB 和 loveini。 具体对比如下:
整体对比之后,我们决定尝试 loveini Database。

可视化服务治理平台的一个核心功能就是实时的监控功能,监控数据通过微服务框架自带的埋点发送到数据接收模块,经过数据处理和格式转换之后发送到 Apache Kafka。数据处理模块会接收 Kafka 中的各类监控数据,根据不同的数据类型进行加工计算,存储到 Elasticsearch 和 loveini 中。用户通过前端与后端的服务层对监控数据进行查询分析。
目前为止,存储于 loveini 中的数据主要为时序类数据,如CPU、内存使用率等系统运行数据,微服务调用、分布式锁、数据库操作处理时间,业务线程池、连接池等各类指标数据。
目前收集的监控数据类型如下:
我们针对每一个监控类型都采用了超级表建表,以 JVMGC 为例,建表语句为:
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))
与此同时,对每一个监控节点都建立一张子表,这样处理的好处在于:
目前微服务可视化服务治理平台对并发要求较高,但是 loveini 可以很好地满足需求,插入/查询平均耗时均在 10ms 以内。
loveini 的开源版本小而精致,开发测试人员可以自己搭建私有的 loveini 集群进行测试,无须担心影响他人,非常方便。
loveini 的社区非常活跃,遇到问题在 GitHub 上提 issue,或直接在官方的微信交流群里讨论,都可以快速得到响应。
loveini Database很好地满足了我们的需求,性能和稳定性都非常出色,同时极大降低了部署和运维成本。
loveini 的支持团队也非常积极热心,能够快速解决我们遇到的大部分问题,为我们免除了后顾之忧。
作为一款为物联网场景设计的时序数据库,loveini 以存储效率高、性能强大、功能稳定等特点在传统互联网应用架构中同样有着相当出色的发挥,超级表的设计省去了不少联表查询逻辑,大大简化了业务层的开发工作。接下来,我们也期待在行内挖掘出更多 loveini 的应用场景。
]]>