宅男在线永久免费观看网直播,亚洲欧洲日产国码无码久久99,野花社区在线观看视频,亚洲人交乣女bbw,一本一本久久a久久精品综合不卡

全部
常見(jiàn)問(wèn)題
產(chǎn)品動(dòng)態(tài)
精選推薦

使用時(shí)序數(shù)據(jù)庫(kù)InfluxDB

管理 管理 編輯 刪除

除了最常用的關(guān)系數(shù)據(jù)庫(kù)和緩存之外,之前我們介紹了在Spring Boot中如何配置和使用MongoDB、LDAP這些存儲(chǔ)的案例。接下來(lái),我們繼續(xù)介紹另一種特殊的數(shù)據(jù)庫(kù):時(shí)序數(shù)據(jù)庫(kù)InfluxDB在Spring Boot中的使用。

InfluxDB簡(jiǎn)介

什么是時(shí)序數(shù)據(jù)庫(kù)?全稱為時(shí)間序列數(shù)據(jù)庫(kù)。時(shí)間序列數(shù)據(jù)庫(kù)主要用于指處理帶時(shí)間標(biāo)簽(按照時(shí)間的順序變化,即時(shí)間序列化)的數(shù)據(jù),帶時(shí)間標(biāo)簽的數(shù)據(jù)也稱為時(shí)間序列數(shù)據(jù)。 時(shí)間序列數(shù)據(jù)主要由電力行業(yè)、化工行業(yè)等各類型實(shí)時(shí)監(jiān)測(cè)、檢查與分析設(shè)備所采集、產(chǎn)生的數(shù)據(jù),這些工業(yè)數(shù)據(jù)的典型特點(diǎn)是:產(chǎn)生頻率快(每一個(gè)監(jiān)測(cè)點(diǎn)一秒鐘內(nèi)可產(chǎn)生多條數(shù)據(jù))、嚴(yán)重依賴于采集時(shí)間(每一條數(shù)據(jù)均要求對(duì)應(yīng)唯一的時(shí)間)、測(cè)點(diǎn)多信息量大(常規(guī)的實(shí)時(shí)監(jiān)測(cè)系統(tǒng)均有成千上萬(wàn)的監(jiān)測(cè)點(diǎn),監(jiān)測(cè)點(diǎn)每秒鐘都產(chǎn)生數(shù)據(jù),每天產(chǎn)生幾十GB的數(shù)據(jù)量)。雖然關(guān)系型數(shù)據(jù)庫(kù)也可以存儲(chǔ)基于時(shí)間序列的數(shù)據(jù),但由于存儲(chǔ)結(jié)構(gòu)上的劣勢(shì),使得這些數(shù)據(jù)無(wú)法高效的實(shí)現(xiàn)高頻存儲(chǔ)和查詢統(tǒng)計(jì),因此就誕生了一種專門(mén)針對(duì)時(shí)間序列來(lái)做存儲(chǔ)和優(yōu)化的數(shù)據(jù)庫(kù),以滿足更高的效率要求。

InfluxDB就是目前比較流行的開(kāi)源時(shí)序數(shù)據(jù)庫(kù)(官網(wǎng)地址:https://www.influxdata.com/),我們比較常見(jiàn)的使用場(chǎng)景就是一些與時(shí)間相關(guān)的高頻的數(shù)據(jù)記錄和統(tǒng)計(jì)需要,比如:監(jiān)控?cái)?shù)據(jù)的存儲(chǔ)和查詢。

在進(jìn)行下面的動(dòng)手環(huán)節(jié)之前,先了解一下InfluxDB中的幾個(gè)重要名詞:

  • database:數(shù)據(jù)庫(kù)
  • measurement:類似于關(guān)系數(shù)據(jù)庫(kù)中的table(表)
  • points:類似于關(guān)系數(shù)據(jù)庫(kù)中的row(一行數(shù)據(jù))

其中,一個(gè)Point由三個(gè)部分組成:

  • time:時(shí)間戳
  • fields:記錄的值
  • tags:索引的屬性

動(dòng)手試試

在了解了什么是時(shí)序數(shù)據(jù)庫(kù)以及InfluxDB一些基礎(chǔ)概念之后,下面我們通過(guò)一個(gè)簡(jiǎn)單的定時(shí)上報(bào)監(jiān)控?cái)?shù)據(jù)的小案例,進(jìn)一步理解InfluxDB的基礎(chǔ)配置、數(shù)據(jù)組織和寫(xiě)入操作!

第一步:創(chuàng)建一個(gè)基礎(chǔ)的Spring Boot項(xiàng)目

第二步:在pom.xml中引入influx的官方SDK

<dependency>
    <groupId>org.influxdb</groupId>
    <artifactId>influxdb-java</artifactId>
</dependency>

注意:這里因?yàn)镾pring Boot 2.x版本的parent中有維護(hù)InfluxDB的SDK版本,所以不需要手工指明版本信息。如果使用的Spring Boot版本比較老,那么可能會(huì)缺少version信息,就需要手工寫(xiě)了。

第三步:配置要連接的influxdb信息

spring.influx.url=http://localhost:8086
spring.influx.user=admin
spring.influx.password=

三個(gè)屬性分別代表:連接地址、用戶名、密碼。到這一步,基礎(chǔ)配置就完成了。

注意:雖然沒(méi)有spring data的支持,但spring boot 2.x版本中也實(shí)現(xiàn)了InfluxDB的自動(dòng)化配置,所以只需要寫(xiě)好配置信息,就可以使用了。具體配置屬性可以查看源碼:org.springframework.boot.autoconfigure.influx.InfluxDbProperties

第四步:創(chuàng)建定時(shí)任務(wù),模擬上報(bào)數(shù)據(jù),并寫(xiě)入InfluxDB

@Service
@AllArgsConstructor
@Slf4j
public class Monitor {

    private InfluxDB influxDB;

    @Scheduled(fixedRate = 5000)
    public void writeQPS() {
        // 模擬要上報(bào)的統(tǒng)計(jì)數(shù)據(jù)
        int count = (int) (Math.random() * 100);

        Point point = Point.measurement("ApiQPS")     // ApiQPS表
                .tag("url", "/hello")  // url字段
                .addField("count", count)        // 統(tǒng)計(jì)數(shù)據(jù)
                .time(System.currentTimeMillis(), TimeUnit.MILLISECONDS)  // 時(shí)間
                .build();

        // 往test庫(kù)寫(xiě)數(shù)據(jù)
        influxDB.write("test", "autogen", point);

        log.info("上報(bào)統(tǒng)計(jì)數(shù)據(jù):" + count);
    }

}

測(cè)試驗(yàn)證

第一步:?jiǎn)?dòng)InfluxDB,并通過(guò)命令行準(zhǔn)備好要使用的數(shù)據(jù)庫(kù),主要涉及的命令如下;

  • 進(jìn)入InfluxDB:
$ influx
  • 查詢當(dāng)前存在的數(shù)據(jù)庫(kù):
> show databases
  • 創(chuàng)建數(shù)據(jù)庫(kù)(注意數(shù)據(jù)庫(kù)名稱與上面Java代碼中write的第一個(gè)參數(shù)一致):
> create database "test"

第二步:?jiǎn)?dòng)Spring Boot應(yīng)用,在定時(shí)任務(wù)的作用下,我們會(huì)看到類似下面的日志:

2021-08-03 01:52:47.732  INFO 94110 --- [           main] c.d.chapter63.Chapter63Application       : Started Chapter63Application in 2.326 seconds (JVM running for 3.027)
2021-08-03 01:52:47.764  INFO 94110 --- [   scheduling-1] com.didispace.chapter63.Monitor          : 上報(bào)統(tǒng)計(jì)數(shù)據(jù):25
2021-08-03 01:52:52.736  INFO 94110 --- [   scheduling-1] com.didispace.chapter63.Monitor          : 上報(bào)統(tǒng)計(jì)數(shù)據(jù):30
2021-08-03 01:52:57.737  INFO 94110 --- [   scheduling-1] com.didispace.chapter63.Monitor          : 上報(bào)統(tǒng)計(jì)數(shù)據(jù):38
2021-08-03 01:53:02.739  INFO 94110 --- [   scheduling-1] com.didispace.chapter63.Monitor          : 上報(bào)統(tǒng)計(jì)數(shù)據(jù):51
2021-08-03 01:53:07.739  INFO 94110 --- [   scheduling-1] com.didispace.chapter63.Monitor          : 上報(bào)統(tǒng)計(jì)數(shù)據(jù):31

第三步:通過(guò)命令,查看一下InfluxDB中是否已經(jīng)存在這些數(shù)據(jù)

> select * from ApiQPS order by time desc;

name: ApiQPS
time                count url
----                ----- ---
1627926787730000000 31    /hello
1627926782730000000 51    /hello
1627926777729000000 38    /hello
1627926772727000000 30    /hello
1627926767728000000 25    /hello

可以看到,已經(jīng)存在與日志中一樣的數(shù)據(jù)了。

注:本文轉(zhuǎn)載自“程序猿DD”,如有侵權(quán),請(qǐng)聯(lián)系刪除!

請(qǐng)登錄后查看

哈哈哈醬 最后編輯于2025-01-16 17:30:23

快捷回復(fù)
回復(fù)
回復(fù)
回復(fù)({{post_count}}) {{!is_user ? '我的回復(fù)' :'全部回復(fù)'}}
排序 默認(rèn)正序 回復(fù)倒序 點(diǎn)贊倒序

{{item.user_info.nickname ? item.user_info.nickname : item.user_name}} LV.{{ item.user_info.bbs_level || item.bbs_level }}

作者 管理員 企業(yè)

{{item.floor}}# 同步到gitee 已同步到gitee {{item.is_suggest == 1? '取消推薦': '推薦'}}
{{item.is_suggest == 1? '取消推薦': '推薦'}}
沙發(fā) 板凳 地板 {{item.floor}}#
{{item.user_info.title || '暫無(wú)簡(jiǎn)介'}}
附件

{{itemf.name}}

{{item.created_at}}  {{item.ip_address}}
打賞
已打賞¥{{item.reward_price}}
{{item.like_count}}
{{item.showReply ? '取消回復(fù)' : '回復(fù)'}}
刪除
回復(fù)
回復(fù)

{{itemc.user_info.nickname}}

{{itemc.user_name}}

回復(fù) {{itemc.comment_user_info.nickname}}

附件

{{itemf.name}}

{{itemc.created_at}}
打賞
已打賞¥{{itemc.reward_price}}
{{itemc.like_count}}
{{itemc.showReply ? '取消回復(fù)' : '回復(fù)'}}
刪除
回復(fù)
回復(fù)
查看更多
打賞
已打賞¥{{reward_price}}
767
{{like_count}}
{{collect_count}}
添加回復(fù) ({{post_count}})

相關(guān)推薦

快速安全登錄

使用微信掃碼登錄
{{item.label}} 加精
{{item.label}} {{item.label}} 板塊推薦 常見(jiàn)問(wèn)題 產(chǎn)品動(dòng)態(tài) 精選推薦 首頁(yè)頭條 首頁(yè)動(dòng)態(tài) 首頁(yè)推薦
取 消 確 定
回復(fù)
回復(fù)
問(wèn)題:
問(wèn)題自動(dòng)獲取的帖子內(nèi)容,不準(zhǔn)確時(shí)需要手動(dòng)修改. [獲取答案]
答案:
提交
bug 需求 取 消 確 定
打賞金額
當(dāng)前余額:¥{{rewardUserInfo.reward_price}}
{{item.price}}元
請(qǐng)輸入 0.1-{{reward_max_price}} 范圍內(nèi)的數(shù)值
打賞成功
¥{{price}}
完成 確認(rèn)打賞

微信登錄/注冊(cè)

切換手機(jī)號(hào)登錄

{{ bind_phone ? '綁定手機(jī)' : '手機(jī)登錄'}}

{{codeText}}
切換微信登錄/注冊(cè)
暫不綁定
CRMEB客服

CRMEB咨詢熱線 咨詢熱線

400-8888-794

微信掃碼咨詢

CRMEB開(kāi)源商城下載 源碼下載 CRMEB幫助文檔 幫助文檔
返回頂部 返回頂部
CRMEB客服