六月婷婷AV,国产偷窥猎奇福利二区,日韩三级片。,好吊色网站,日韩成人中文在线视频,国产亚洲午夜啪啪,亚洲欧美另类国产精品,国产成人av1,任你艹在线观看

TDengine 在浙商銀行微服務(wù)監(jiān)控中的實踐

浙商銀行 樓永紅,王軒宇

2021-10-19 / , ,

浙商銀行股份有限公司(簡稱“浙商銀行”)是 12 家全國性股份制商業(yè)銀行之一,總部設(shè)在浙江杭州,全國第13家”A+H”上市銀行,致力于打造平臺化服務(wù)銀行,為客戶提供開放、高效、靈活、共享、極致的綜合金融服務(wù)。在英國《銀行家》(The Banker) 雜志“2020 年全球銀行 1000 強”榜單中,位列第 97 位。

浙商銀行很早就開始全面推進數(shù)字化轉(zhuǎn)型,2010 年浙商銀行上線電子銀行服務(wù)、手機銀行業(yè)務(wù),2017 年上線首個區(qū)塊鏈服務(wù)平臺,同年發(fā)布了直銷銀行品牌。2018 年浙商銀行國標 A 級數(shù)據(jù)中心啟用,并在 2020 年成立易企銀金融科技子公司。

業(yè)務(wù)背景

浙商銀行微服務(wù)可視化治理平臺是基于Java體系自研的微服務(wù)治理監(jiān)控平臺,為行內(nèi)基于統(tǒng)一的微服務(wù)框架開發(fā)的應(yīng)用提供全面、實時的微服務(wù)治理監(jiān)控功能,能夠有效提升云環(huán)境下的微服務(wù)可視化程度和服務(wù)管理控制的便捷度,減少服務(wù)故障發(fā)現(xiàn)時間,提升故障定位效率,輔助應(yīng)用程序優(yōu)化。在這樣的業(yè)務(wù)場景中,數(shù)據(jù)量大、監(jiān)控指標繁雜成了我們的主要挑戰(zhàn)。

通過分析監(jiān)控數(shù)據(jù),我們發(fā)現(xiàn)它有以下特點:

  • 數(shù)據(jù)高寫入、低查詢、不修改
    • 對于按時間順序插入的監(jiān)控數(shù)據(jù),會涉及到少量的查詢,沒有修改數(shù)據(jù)的業(yè)務(wù)場景。
  • 無需事務(wù)支持
    • 如果數(shù)據(jù)模型設(shè)計妥當(dāng),無需使用事務(wù)處理。
  • 各監(jiān)控指標之間相互獨立,無需聯(lián)合查詢
  • 數(shù)據(jù)時效性較強,超過一定時間的數(shù)據(jù)參考價值很小

核心訴求

針對這樣的場景,我們需要一款能高效處理時序數(shù)據(jù)的工具。在各種因素的影響下,我們有如下幾點需求:

  • 開源可控,且最好是國產(chǎn)軟件,且能支持國產(chǎn)化芯片
  • 功能穩(wěn)定
  • 社區(qū)活躍:開發(fā)者社區(qū)人員多,問答、討論頻繁且有穩(wěn)定的開發(fā)團隊支持
  • 部署成本低:盡可能少的服務(wù)節(jié)點,運維成本低,占用 CPU、內(nèi)存資源較少
  • 性能強大:支持萬條數(shù)據(jù)秒級插入

時序數(shù)據(jù)庫選型

在明確了核心訴求之后,我們調(diào)研了幾款典型的時序數(shù)據(jù)庫(Time-Series Database)產(chǎn)品,包括 Apache Druid、InfluxDBTDengine。 具體對比如下:

  • Apache Druid:Druid 是 Apache 基金會旗下的一款高性能的實時分析數(shù)據(jù)庫,支持時間序列數(shù)據(jù)。功能強大、可自愈、自平衡、易操作、可進行有效的預(yù)聚合和預(yù)計算。不過對于時間跨度較大的查詢不夠靈活,而且架構(gòu)較為復(fù)雜,需要的計算資源多。
  • InfluxDB:InfluxDB 是由 InfluxData 公司開發(fā)的一款開源的時序數(shù)據(jù)庫,在業(yè)界非常流行。功能強大,部署簡單,使用方便。不過集群功能沒有開源。
  • TDengine:能滿足我們的核心訴求,相關(guān)測試表明其性能優(yōu)于 InfluxDB,而且開源了核心的集群功能。簡單快捷、性能強大;支持 JDBC 接口,可以使我們應(yīng)用快速接入使用。還有一點非常重要,因為 TDengine 的核心研發(fā)團隊在國內(nèi),很方便直接交流。

整體對比之后,我們決定嘗試 TDengine Database。

技術(shù)架構(gòu)

技術(shù)架構(gòu)

可視化服務(wù)治理平臺的一個核心功能就是實時的監(jiān)控功能,監(jiān)控數(shù)據(jù)通過微服務(wù)框架自帶的埋點發(fā)送到數(shù)據(jù)接收模塊,經(jīng)過數(shù)據(jù)處理和格式轉(zhuǎn)換之后發(fā)送到 Apache Kafka。數(shù)據(jù)處理模塊會接收 Kafka 中的各類監(jiān)控數(shù)據(jù),根據(jù)不同的數(shù)據(jù)類型進行加工計算,存儲到 Elasticsearch 和 TDengine 中。用戶通過前端與后端的服務(wù)層對監(jiān)控數(shù)據(jù)進行查詢分析。

目前為止,存儲于 TDengine 中的數(shù)據(jù)主要為時序類數(shù)據(jù),如CPU、內(nèi)存使用率等系統(tǒng)運行數(shù)據(jù),微服務(wù)調(diào)用、分布式鎖、數(shù)據(jù)庫操作處理時間,業(yè)務(wù)線程池、連接池等各類指標數(shù)據(jù)。

數(shù)據(jù)模型

目前收集的監(jiān)控數(shù)據(jù)類型如下:

  • JVMGC 相關(guān)指標
  • JVMThread 相關(guān)指標
  • JVMMemory 相關(guān)指標
  • 系統(tǒng)負載相關(guān)指標
  • 數(shù)據(jù)庫連接池監(jiān)控數(shù)據(jù)
  • Transaction 調(diào)用監(jiān)控數(shù)據(jù)
  • Dubbo 線程池監(jiān)控數(shù)據(jù)

我們針對每一個監(jiān)控類型都采用了超級表建表,以 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)) 

與此同時,對每一個監(jiān)控節(jié)點都建立一張子表,這樣處理的好處在于:

  • 相同指標在進行多表查詢時,可以利用超級表在一個 SQL 語句中完成查詢
  • 超級表可以實現(xiàn)表與表之間的數(shù)據(jù)聚合
  • 對于單節(jié)點的監(jiān)控數(shù)據(jù),查詢只需要訪問單一子表即可

使用體驗

目前微服務(wù)可視化服務(wù)治理平臺對并發(fā)要求較高,但是 TDengine 可以很好地滿足需求,插入/查詢平均耗時均在 10ms 以內(nèi)。

TDengine 的開源版本小而精致,開發(fā)測試人員可以自己搭建私有的 TDengine 集群進行測試,無須擔(dān)心影響他人,非常方便。

TDengine 的社區(qū)非?;钴S,遇到問題在 GitHub 上提 issue,或直接在官方的微信交流群里討論,都可以快速得到響應(yīng)。

總結(jié)

TDengine Database很好地滿足了我們的需求,性能和穩(wěn)定性都非常出色,同時極大降低了部署和運維成本。

TDengine 的支持團隊也非常積極熱心,能夠快速解決我們遇到的大部分問題,為我們免除了后顧之憂。

作為一款為物聯(lián)網(wǎng)場景設(shè)計的時序數(shù)據(jù)庫,TDengine 以存儲效率高、性能強大、功能穩(wěn)定等特點在傳統(tǒng)互聯(lián)網(wǎng)應(yīng)用架構(gòu)中同樣有著相當(dāng)出色的發(fā)揮,超級表的設(shè)計省去了不少聯(lián)表查詢邏輯,大大簡化了業(yè)務(wù)層的開發(fā)工作。接下來,我們也期待在行內(nèi)挖掘出更多 TDengine 的應(yīng)用場景。