精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

去哪兒網(wǎng)MySQL日志分析實(shí)踐,80%數(shù)據(jù)丟失都給你救回來!

數(shù)據(jù)庫 新聞
這次實(shí)踐是針對MySQL的抓包日志進(jìn)行分析,當(dāng)前系統(tǒng)不足以支持新的需求,需要重構(gòu)一套日志分析系統(tǒng)。

一、背景

日志記錄了一個(gè)系統(tǒng)的行為,對于了解系統(tǒng)、診斷問題、輔助審計(jì)等都有極其重要的作用。通常最近一段時(shí)間的日志訪問頻率是最高的,我們通過聚合日志,分析日志、匯總數(shù)據(jù),幫助開發(fā)、運(yùn)維、DBA了解業(yè)務(wù)的狀態(tài)和行為。這次實(shí)踐是針對MySQL的抓包日志進(jìn)行分析,當(dāng)前系統(tǒng)不足以支持新的需求,需要重構(gòu)一套日志分析系統(tǒng)。

現(xiàn)有抓包系統(tǒng)是將 MySQL 請求的所有 SQL 語句抓取并分析之后寫入到 Clickhouse 中,數(shù)據(jù)可以用來分析數(shù)據(jù)庫的操作。 可以查找當(dāng)前實(shí)例、庫、表有多少 AppCode 在訪問、數(shù)據(jù)庫資源是否可以回收、輔助審計(jì)等功能。

Sniffer 抓包之后將數(shù)據(jù)寫入到 Kafka 中,Clickhouse 直接消費(fèi) Kafka 的隊(duì)列中數(shù)據(jù),并將數(shù)據(jù) merge 到 Clickhouse 中。由 Server 程序按照天級別定時(shí)讀取 Clickhouse 中的數(shù)據(jù),分析、匯總數(shù)據(jù),并解析請求 IP 對應(yīng)的服務(wù)信息等,最后將結(jié)果寫入到 MySQL 中。

當(dāng)前數(shù)據(jù)為日志數(shù)據(jù),允許少部分丟失或重復(fù),Kafka 隊(duì)列中的數(shù)據(jù)約有 133w/s (單個(gè)隊(duì)列最多 33W ),MySQL 中存儲(chǔ)的結(jié)果數(shù)據(jù)規(guī)模大約在 4.6T 左右。

二、名詞解釋

  • AppCode

服務(wù)的名稱,是一個(gè)服務(wù)的基本屬性。

  • Clickhouse

一個(gè)用于聯(lián)機(jī)分析(OLAP)的列式數(shù)據(jù)庫。

  • Kafka

一個(gè)高性能的分布式隊(duì)列服務(wù)。

  • Zookeeper

一個(gè)分布式的開源協(xié)調(diào)服務(wù)。

  • 擴(kuò)展性

在業(yè)務(wù)量上漲時(shí),服務(wù)通過較低的代價(jià)就可以滿足對業(yè)務(wù)量上漲的需求。

  • 聚合比

將 N 條數(shù)據(jù)按照同一緯度聚合為 M 條數(shù)據(jù),M 一定小于等于 N。聚合比 = 聚合之后的數(shù)據(jù)條數(shù)/聚合之前的數(shù)據(jù)條數(shù)。

三、現(xiàn)狀分析

1、消費(fèi)能力不足導(dǎo)致數(shù)據(jù)丟失

Clickhouse 消費(fèi) Kafka 隊(duì)列中的數(shù)據(jù)能力不足,延遲較高。并且 Kafka 中的數(shù)據(jù)只保留 3 個(gè)小時(shí),根據(jù)測試四個(gè)節(jié)點(diǎn) Clickhouse 消費(fèi)的 Kafka 隊(duì)列中的數(shù)據(jù),約有 80% 的數(shù)據(jù)丟失,導(dǎo)致數(shù)據(jù)不完整。

2、服務(wù)信息計(jì)算不準(zhǔn)確

Server 是天級別計(jì)算請求的服務(wù)信息。由于服務(wù)已經(jīng)上云部署,單個(gè)服務(wù)的 IP 變動(dòng)非常頻繁,導(dǎo)致 Server 獲取到服務(wù)信息有延遲(最高延遲 24 小時(shí)),甚至很多計(jì)算的結(jié)果是錯(cuò)誤的。這導(dǎo)致部分場景下分析出來的數(shù)據(jù)完全不可信。

3、匯總數(shù)據(jù)較少

當(dāng)前只匯總了四個(gè)維度的請求數(shù)據(jù),并且只有天級別的數(shù)據(jù),粒度較大,無法下鉆查詢具體信息,展示的維度和明細(xì)信息較少。

4、服務(wù)監(jiān)控&可用性

Server 節(jié)點(diǎn)目前只有一個(gè),缺乏可用性并沒有詳細(xì)的監(jiān)控信息。

四、需求

針對當(dāng)前服務(wù)的不足,設(shè)計(jì)一套服務(wù)需要滿足當(dāng)前日志計(jì)算性能和業(yè)務(wù)需求,并且具備較好的擴(kuò)展性。

五、目標(biāo)

1、高性能、高擴(kuò)展性、高可用

服務(wù)需要具備以下特性:

1)高性能

在有限資源的情況下,盡可能提高數(shù)據(jù)消費(fèi)、聚合能力,降低數(shù)據(jù)丟失的概率,降低數(shù)據(jù)入庫的延遲。

2)高可用

單個(gè)或多個(gè)節(jié)點(diǎn)出現(xiàn)問題時(shí),不影響服務(wù)整體的可用性。

3)高擴(kuò)展

在未來業(yè)務(wù)日志體量進(jìn)一步增長時(shí),僅通過增加部署節(jié)點(diǎn)或者修改配置,就可以滿足增長的需求,無需額外的工作。

2、降低計(jì)算請求業(yè)務(wù)信息的延遲

從請求 IP 到獲取服務(wù)信息的延遲降低在 1min 以內(nèi),確保 99.9% 的準(zhǔn)確性。

3、更多維度匯總數(shù)據(jù)和下鉆查詢

支持更多維度的匯總信息查詢,以及支持部分場景下的下鉆查詢。

4、監(jiān)控

提供多種監(jiān)控?cái)?shù)據(jù),方便展示服務(wù)情況,根據(jù)監(jiān)控即可以方便定位到問題。

六、分析

當(dāng)前 Clickhouse 消費(fèi)能力不足可以通過擴(kuò)展節(jié)點(diǎn)和調(diào)優(yōu)參數(shù)進(jìn)一步解決,但是服務(wù)信息計(jì)算是 Clickhouse 做不到的,并且 OLAP 類型的數(shù)據(jù)庫對數(shù)據(jù)更新并不是太友好,尤其是大規(guī)模的更新。如果要解決【降低計(jì)算請求業(yè)務(wù)信息的延遲】這個(gè)問題可以有兩個(gè)解決方案:

如果采用方案一,會(huì)增加 Sniffer 端的不可控性,這與我們之前設(shè)計(jì)的盡可能減少 Sniffer 端資源消耗的初衷相違背,所以我們選擇方案二。

七、設(shè)計(jì)

1、整體流程

整體流程設(shè)計(jì)如下所示:

2、模塊劃分

所有模塊的目標(biāo): 高性能、高可用、高擴(kuò)展。

3、dubaiMeta

1)說明

由于基礎(chǔ)服務(wù)不能提供高性能的 IP-AppCode 映射信息的接口,需要自行實(shí)現(xiàn)這一功能。對接基礎(chǔ)服務(wù)的 IP-AppCode 映射信息提供的接口,實(shí)時(shí)從 Kafka-OPS 隊(duì)列中獲取 IP-AppCode 映射變更的信息流,Merge 到當(dāng)前數(shù)據(jù),并提供 IP-AppCode 信息的接口;

2)設(shè)計(jì)

由于 dubaiMeta 是提供基礎(chǔ)信息的接口,訪問量比較大,需要提供高性能、高可用、高擴(kuò)展性,故 dubaiMeta 需要盡可能設(shè)計(jì)成為無狀態(tài)的服務(wù)。

將所有的 IP-AppCode 映射數(shù)據(jù)存儲(chǔ)在 MySQL,映射為最新版本。所有的 IP-AppCode 變更歷史也都會(huì)存儲(chǔ)在 MySQL。通過版本信息持續(xù)將 IP-AppCode 變更信息 Merge 到最新版本。目前 IP-AppCode 數(shù)據(jù)整體體量不大,可以在服務(wù)內(nèi)部緩存,不使用其他緩存。這樣既可以減少網(wǎng)絡(luò)和緩存的請求,降低請求耗時(shí),也會(huì)避免因?qū)彺娴囊蕾嚩鴮?dǎo)致的性能和可用性問題。這樣 dubaiMeta 就可能成為一個(gè)接近無狀態(tài)的服務(wù)。

單個(gè)請求如果不能命中緩存則會(huì)請求基礎(chǔ)服務(wù)的 IP-AppCode 接口,并將變更數(shù)據(jù) Merge 到緩存。但是單個(gè) dubaiMeta 節(jié)點(diǎn)數(shù)據(jù)變更之后如何與其他 dubaiMeta 節(jié)點(diǎn)通訊最后達(dá)到所有節(jié)點(diǎn)數(shù)據(jù)一致?

有兩種方案:

盡可能保證單個(gè)節(jié)點(diǎn)的高性能的,并檢測單個(gè)節(jié)點(diǎn)的數(shù)據(jù)一致性延遲,將有問題的服務(wù)及時(shí)下掉,通過這個(gè)方法可以盡可能減低數(shù)據(jù)不一致帶來的問題。故選擇【變更通知】的方式;

3)啟動(dòng)流程

服務(wù)啟動(dòng)時(shí)首先從 Kafka-OPS 持續(xù)訂閱信息流,所有變更信息 Merge 到內(nèi)部緩存,然后再從 Self-Kafka-OPS 中持續(xù)訂閱變更信息流,所有變更信息 Merge 到內(nèi)部緩存,最后從 MySQL 中獲取全量的數(shù)據(jù)信息,將所有數(shù)據(jù) Merge 到緩存,組合成全量的數(shù)據(jù)。等到所有數(shù)據(jù) Merge 完成,并且兩個(gè) Kafka 隊(duì)列無堆積時(shí),再提供服務(wù)。

4)性能分析

目前基礎(chǔ)信息的數(shù)據(jù)量不大,可以在服務(wù)內(nèi)部緩存,不使用其他緩存。既可以減少網(wǎng)絡(luò)和訪問緩存的耗時(shí),大幅度降低請求的耗時(shí),又可以避免因?qū)彺娴囊蕾嚩鴮?dǎo)致的性能和可用性問題。

單節(jié)點(diǎn) IP-AppCode 映射變更會(huì)發(fā)起變更通知,異步通知其他節(jié)點(diǎn),無需感知其他節(jié)點(diǎn)存在,故性能可以得到保證。

5)可用性分析

dubaiMeta 目前所有數(shù)據(jù)存儲(chǔ)在本地緩存,在 MySQL 中存儲(chǔ)一份副本和變更信息流。

由于 dubaiMeta 是接近無狀態(tài)的,部署多個(gè)節(jié)點(diǎn),通過負(fù)載均衡服務(wù)下發(fā)到不同的節(jié)點(diǎn)就可以保證整體服務(wù)的可用性。

MySQL 通過平臺(tái)已有的 HA,保證可用性;

6)擴(kuò)展性分析

由于 dubaiMeta 是接近無狀態(tài)的,故可以橫向擴(kuò)展,不對其他節(jié)點(diǎn)產(chǎn)生影響,只需要在負(fù)載均衡器上添加節(jié)點(diǎn)即可。

4、SnifferServer

1)說明

從 Kafka-Sniffer 隊(duì)列獲取日志數(shù)據(jù),在日志中補(bǔ)充各種業(yè)務(wù)信息,并聚合數(shù)據(jù)。最后將聚合之后的結(jié)果批量寫入到 Clickhouse 中。

由于隊(duì)列中的數(shù)據(jù)量比較大,無法全量存儲(chǔ)所有數(shù)據(jù),需要按照一定的維度聚合數(shù)據(jù)。通過降低聚合比(聚合之后的數(shù)據(jù)條數(shù)/聚合之前的數(shù)據(jù)條數(shù))可以降低總體數(shù)據(jù)量,在保證性能的前提下盡可能縮短入庫的時(shí)間。

由于 Clickhouse 是 OLAP 分析類型的列式數(shù)據(jù)庫,更推薦批量寫入的方式提高數(shù)據(jù)庫的寫入性能(每次不少于 1000 條)。

2)設(shè)計(jì)

針對單個(gè)隊(duì)列,可以使用多個(gè) SnifferServer 使用同一個(gè) consumerGroup 消費(fèi)數(shù)據(jù),保證消費(fèi)者的性能、可用性,同時(shí) SnifferServer 也具備了一定的擴(kuò)展性。

SnifferServer 是內(nèi)存消耗和 cpu 消耗類型的服務(wù)。為了減少 gc 和內(nèi)存消耗,通過復(fù)用對象,確保單個(gè)服務(wù)內(nèi)部對象的數(shù)量不會(huì)有較大波動(dòng),可以大幅度降低 gc 以及內(nèi)存的使用量,提高性能。

按照功能,將 SnifferServer 拆分成三個(gè)模塊:consumer 模塊、aggregator 模塊、writer 模塊。

consumer 模塊消費(fèi)隊(duì)列中的數(shù)據(jù),將數(shù)據(jù)傳遞給 aggregator 模塊;aggregator 模塊填充業(yè)務(wù)信息并聚合數(shù)據(jù),將聚合之后的數(shù)據(jù)傳遞給 writer 模塊;writer 模塊將數(shù)據(jù)批量寫入到 Clickhouse 中。

① consumer 模塊

  • 功能

從 Kafka-Sniffer 隊(duì)列中獲取數(shù)據(jù),將數(shù)據(jù)組合之后批量傳輸給 aggregator 模塊。

  • 分析

針對單個(gè) Kafka 隊(duì)列,提升消費(fèi)的速度途徑有:

經(jīng)測試,在當(dāng)前場景配置下,單個(gè) SnifferServer 消費(fèi)隊(duì)列速度可以達(dá)到 20W/s+。 通過對 consumer 的調(diào)優(yōu)已經(jīng)能夠完全達(dá)到 33w/s (兩個(gè) SnifferServer)的消費(fèi)速度,已完全滿足業(yè)務(wù)的需求。

② aggregator 模塊

  • 功能

從 consumer 接受數(shù)據(jù),并獲取 IP-AppCode 映射信息和業(yè)務(wù)信息,將信息補(bǔ)充到日志數(shù)據(jù)中。等到一定數(shù)量的數(shù)據(jù)或者超時(shí)之后,將這一批次的數(shù)據(jù)按照指定的維度聚合。最后將聚合之后的結(jié)果傳輸給 writer 模塊

  • 分析
  • 如果每條數(shù)據(jù)都需要通過接口獲取 IP-AppCode 映射和業(yè)務(wù)信息,那樣會(huì)大大降低聚合的效率,故本地需要緩存 IP-AppCode 和業(yè)務(wù)信息。aggregator 模塊同樣也需要訂閱 Kafka-OPS 和 Self-Kafka-OPS 變更,Merge IP-AppCode 變更信息到本地緩存。
  • 通過增加 aggregator 線程數(shù)量提升并發(fā)數(shù),可以有效的提升聚合的效率。但線程數(shù)越多會(huì)在不同程度上提高聚合比(和業(yè)務(wù)行為相關(guān)),通過增加單個(gè)批次的數(shù)量可以降低聚合比,兩個(gè)指標(biāo)需要根據(jù)需要測試調(diào)優(yōu);

經(jīng)測試:針對同一個(gè)隊(duì)列中的數(shù)據(jù),單個(gè) SnifferServer 的聚合比約為 10%-20% 左右,兩個(gè) SnifferServer 的平均聚合比約為 15%-30% 左右,三個(gè) SnifferServer 的平均聚合比約為 30% 以上,故在同等配置的情況下增加 SnifferServer 則會(huì)增加聚合比,存儲(chǔ)端將增加數(shù)據(jù)量。

③ writer 模塊

  • 功能

從 aggregator 模塊接受數(shù)據(jù),緩存在內(nèi)存中。當(dāng)緩存數(shù)據(jù)超過 N 條或者緩存時(shí)間超過 M 秒之后再將緩存數(shù)據(jù)批量寫入到 Clickhouse 中;

  • 分析

每個(gè)批次應(yīng)該盡可能緩存足夠的的數(shù)據(jù)量再寫入數(shù)據(jù),提升寫入的效率,降低寫入的次數(shù),預(yù)設(shè)單個(gè)批次為 1w(最少,可配置)條數(shù)據(jù);

3)分析

每個(gè)模塊均可以設(shè)置緩存大小和并行的線程數(shù),通過設(shè)置緩存大小和并行的線程數(shù)可以提高效率。但是需要注意的是,緩存大小和并行線程越多,占用的資源也就越多。并且如果程序意外終止,那么丟失的數(shù)據(jù)也會(huì)變多,需要酌情考慮各個(gè)參數(shù)的配置。

對于各個(gè)模塊的啟動(dòng)和關(guān)閉順序需要額外關(guān)注。

① 模塊啟動(dòng)順序

先啟動(dòng) writer 模塊,初始化 writer 模塊的緩存和線程,再啟動(dòng) aggregator 模塊,初始化 aggregator 的緩存和線程,最后啟動(dòng) consumer 模塊,初始化 consumer 模塊的線程和緩存。

② 模塊關(guān)閉順序

為了減少數(shù)據(jù)丟失,在正常情況下關(guān)閉服務(wù)時(shí)需要按照以下順序關(guān)閉模塊

  • 關(guān)閉所有的Kafka的連接;
  • 將 consumer 模塊中所有緩存數(shù)據(jù)發(fā)送到 aggregator 模塊之后,再關(guān)閉所有 consumer 模塊的線程;
  • 將 aggregator 中的緩存數(shù)據(jù)立即聚合(所有日志數(shù)據(jù)補(bǔ)完業(yè)務(wù)信息,并聚合完成)。聚合完成的數(shù)據(jù)全部發(fā)送給 writer 模塊之后,再關(guān)閉所有 aggregator 模塊的線程;
  • 將 writer 模塊中的數(shù)據(jù)分批次,全部寫入到 Clickhouse 中,最后關(guān)閉所有 writer 模塊的線程。

4)擴(kuò)展性分析

由于 SnifferServer 是偏計(jì)算類型的服務(wù),并且從 Kafka 到 SnifferServer 到 Clickhouse,需要大量的數(shù)據(jù)傳輸,需要較好的 cpu 和網(wǎng)卡才可以充分發(fā)揮 SnifferServer 的性能;

① SnifferServer 內(nèi)部擴(kuò)展性

SnifferServer 的每個(gè)模塊都可以通過設(shè)置線程數(shù)和緩存大小提高性能;

② SnifferServer 級別的擴(kuò)展性

對于單個(gè)隊(duì)列,受限于 Kafka 的 partition 數(shù)量,最多有于 partition 數(shù)量相等的 SnifferServer 運(yùn)行,超過 partition 數(shù)量時(shí)節(jié)點(diǎn)不再參與隊(duì)列消費(fèi);

③ Kafka 的 Partition

單個(gè) Kafka 集群的 partition 理論上沒有限制,受限于服務(wù)器資源、Zookeeper 和運(yùn)維的方便性等,需要設(shè)置上限;

④ 整個(gè)服務(wù)

可以規(guī)劃針對不同的 IDC,向不同的 Kafka 寫入日志數(shù)據(jù),這樣日志數(shù)據(jù)將被分區(qū);

5)可用性分析

SnifferServer 之間通過 consumerGroup 消費(fèi) Kafka 隊(duì)列中的數(shù)據(jù)。對于單個(gè)隊(duì)列通過冗余 SnifferServer,即使單個(gè) SnifferServer 掛掉,不會(huì)影響整體服務(wù)。

5、SnifferAnalyze

1)說明

按照天級別定時(shí)從 Clickhouse 中獲取聚合數(shù)據(jù),分析、匯總,存儲(chǔ)分析之后的結(jié)果并提供接口和頁面展示結(jié)果。

2)設(shè)計(jì)

分析匯總之后的結(jié)果大概分為兩類數(shù)據(jù),第一類是初步聚合的粗粒度數(shù)據(jù),數(shù)據(jù)量比較大。數(shù)據(jù)一旦產(chǎn)生不會(huì)修改,只有大范圍的刪除,一般是溯源、分析、下鉆查詢使用,使用的頻率不是很高;第二類是匯總的報(bào)告數(shù)據(jù)。部分?jǐn)?shù)據(jù)會(huì)存在大范圍的修改,較多的并發(fā)查詢。整體數(shù)據(jù)量相對于第一類數(shù)據(jù)量較少,一般是展示結(jié)果、接口查詢較多;

Clickhouse 在大規(guī)模存儲(chǔ)上的單表查詢和寫入效率較高,壓縮效率較高但不擅長做并發(fā)查詢和頻繁的修改數(shù)據(jù),官網(wǎng)建議每秒最多查詢 100 次。相比較而言,MySQL 適合存儲(chǔ)小體量數(shù)據(jù),以及數(shù)據(jù)的增刪改查,并擅長高并發(fā)查詢。

綜合考慮節(jié)省存儲(chǔ)成本以及各個(gè)存儲(chǔ)的特性,第一類數(shù)據(jù)適合存儲(chǔ)到 Clickhouse 中,第二類數(shù)據(jù)適合存儲(chǔ)到 MySQL 中。針對原始日志數(shù)據(jù)設(shè)置合適的過期時(shí)間,超過指定時(shí)間的數(shù)據(jù)都予以刪除,而匯總數(shù)據(jù)相較于原始數(shù)據(jù)量已經(jīng)大幅度減少,可以保留較長的過期時(shí)間。

依托 Clickhouse 的分析能力,對于第一類數(shù)據(jù)直接將 Clickhouse 中的數(shù)據(jù)分析出來直接寫入到 Clickhouse 中,避免中間轉(zhuǎn)儲(chǔ)。第二類數(shù)據(jù)需要從 Clickhouse 中獲取出來,分析、計(jì)算、匯總之后再寫入到 MySQL 中。

每個(gè)任務(wù)執(zhí)行前都需要獲取鎖,只有成功獲取到鎖的任務(wù)才可以執(zhí)行該任務(wù)。SnifferAnalyze 多個(gè)節(jié)點(diǎn)在執(zhí)行任務(wù)前會(huì)通過搶占的方式獲取任務(wù)鎖,僅當(dāng)成功獲取了鎖的節(jié)點(diǎn)會(huì)執(zhí)行任務(wù),保證了單個(gè)節(jié)點(diǎn)掛掉不影響分析任務(wù)的執(zhí)行。但是如果任務(wù)執(zhí)行過成中被終端,目前需要人為介入處理。

3)擴(kuò)展性分析

目前分析類型的任務(wù)節(jié)點(diǎn)擴(kuò)展能力有限。

4)可用性分析

由于分析類型的任務(wù)擴(kuò)展能力有限,故只能在節(jié)點(diǎn)之間保證高可用。并且一旦任務(wù)執(zhí)行中斷需要人為介入處理。

6、Clickhouse

1)說明

Clickhouse 架構(gòu)圖

例如圖示 Clickhouse 有兩個(gè)分片(A 和 B),每個(gè)分片有兩個(gè)副本([A1,A2],[B1,B2]),集群與三節(jié)點(diǎn)的 Zookeeper 通訊。

① 同步

Clickhouse 集群 Replication 引擎的副本是通過 Zookeeper 實(shí)現(xiàn)的,Zookeeper 存儲(chǔ)數(shù)據(jù)塊的元數(shù)據(jù)信息。分片 A 有 A1 和 A2 兩個(gè)節(jié)點(diǎn),A1 和 A2 共同監(jiān)聽 Zookeeper 執(zhí)行目錄下節(jié)點(diǎn)的數(shù)據(jù)。當(dāng) A1 節(jié)點(diǎn)寫入數(shù)據(jù)塊之后,A1 在 Zookeeper 上變更元數(shù)據(jù)信息。A2 收到 Zookeeper 的元數(shù)據(jù)變更之后,向 A1 發(fā)起拉取指定數(shù)據(jù)塊的通知,A1 將指定的數(shù)據(jù)塊發(fā)送給 A2,完成數(shù)據(jù)傳輸。同理 A2 也可以寫入數(shù)據(jù),通知 Zookeeper 變更數(shù)據(jù),并向 A1 傳輸數(shù)據(jù)。數(shù)據(jù)同步是異步的,傳輸數(shù)據(jù)塊時(shí)會(huì)去重。更多副本相關(guān)的信息請見官網(wǎng)說明。

② 分片

分片依靠 Distribute 引擎實(shí)現(xiàn)。Distribute 引擎不存儲(chǔ)任何數(shù)據(jù),Clickhouse 有 Distribute 引擎支持將數(shù)據(jù)按照指定的規(guī)則(random,hash,range,自定義)將數(shù)據(jù)分發(fā)到各個(gè)分片。

數(shù)據(jù)寫入 Distribute 引擎時(shí),數(shù)據(jù)在本地寫入完成后立即返回。Clickhouse 會(huì)周期性的按照規(guī)則將數(shù)據(jù)分發(fā)的其他節(jié)點(diǎn)上。

③ 查詢

通過 Distribute 引擎查詢時(shí),無論分片規(guī)則是什么樣的,Distribute 都會(huì)將 SQL 分發(fā)到所有的分片上查詢,并在當(dāng)前節(jié)點(diǎn)匯總數(shù)據(jù),最后返回給客戶端。如果查詢 Replication 引擎的表,那么只查詢本地?cái)?shù)據(jù)。

2)可用性分析

Clickhouse 的 Replication 引擎和 Zookeeper 實(shí)現(xiàn)數(shù)據(jù)副本,保證了每個(gè)分片內(nèi)可以允許一個(gè)副本宕機(jī)。Distribute 引擎可以保證在 Clickhouse 所有節(jié)點(diǎn)上都可以寫入和讀取。

但是通過數(shù)據(jù)同步是異步的。如果節(jié)點(diǎn)寫入成功并在數(shù)據(jù)尚未完成傳輸之前宕機(jī),無法恢復(fù),則尚未同步的數(shù)據(jù)塊將會(huì)丟失。

3)擴(kuò)展性分析

由于 Distribute 查詢的時(shí)候會(huì)將 SQL 分發(fā)到所有的分片上,無論分片的數(shù)據(jù)狀態(tài)如何,故新增的節(jié)點(diǎn)可以直接加入到 Clickhouse 集群中,而無需擔(dān)心舊數(shù)據(jù)遷移的問題。但是需要考慮數(shù)據(jù)傾斜問題,通過提高新加入節(jié)點(diǎn)權(quán)重可以將新寫入的數(shù)據(jù)更多的發(fā)送到新加入分片上。

向 Distribute 引擎寫入數(shù)據(jù)時(shí),Distribute 引擎首先會(huì)寫入本地,再依次轉(zhuǎn)發(fā)給其他節(jié)點(diǎn),可能會(huì)導(dǎo)致本地網(wǎng)絡(luò)流量增加、服務(wù) merge 數(shù)據(jù)塊時(shí)產(chǎn)生額外的 cpu 以及 IO 使用的問題。可以通過只寫入本地表,而不寫入 Distribute 表解決這個(gè)問題。但是需要通過一定的策略(比如輪詢)寫入不同的 Clickhouse 節(jié)點(diǎn),解決數(shù)據(jù)傾斜的問題。

7、監(jiān)控

1)說明

當(dāng)前監(jiān)控只是用于查看各個(gè)節(jié)點(diǎn)的狀態(tài)情況,展示性能問題,并未提供高級別的功能。監(jiān)控告警接入公司現(xiàn)有的監(jiān)控系統(tǒng)。

八、效果

1、SnifferServer

所有 SnifferServer 節(jié)點(diǎn)平均內(nèi)存占用約為 12G 左右,最大 gc 平均約為 21ms,75 分位的 gc 平均約為 0.6ms。

兩節(jié)點(diǎn) SnifferServer 合計(jì) CPU(32核)利用率峰值約 70%,網(wǎng)卡峰值 上行約 330Mb/s  下行  400Mb/s。

單個(gè)隊(duì)列數(shù)據(jù)生成速度峰值約為 30w/s,平均堆積約 20k,消費(fèi)者速度要快于生產(chǎn)者。

aggregator 平均每秒聚合 1.2 次,數(shù)據(jù)聚合比約為 40%,writer 每秒約寫入 6 次,業(yè)務(wù)信息和 appCode 命中率幾乎 100%。

2、頁面展示

展示某個(gè)業(yè)務(wù)的平均響應(yīng)時(shí)間和查詢次數(shù)

展示某個(gè)慢查詢的平均響應(yīng)時(shí)間和查詢次數(shù)

九、總結(jié)

SnifferServer 將隊(duì)列中的日志數(shù)據(jù)補(bǔ)全業(yè)務(wù)信息、聚合數(shù)據(jù)、將結(jié)果寫入到 Clickhouse 中,SnifferAnalyze 定期分析數(shù)據(jù),將結(jié)果寫入到 Clickhouse 和 MySQL。整個(gè)系統(tǒng)具備高性能、高可用性、高擴(kuò)展性的優(yōu)點(diǎn),內(nèi)存和 CPU 使用率比較穩(wěn)定。日志分析系統(tǒng)呈現(xiàn)出來的結(jié)果可以幫助開發(fā)更好的了解業(yè)務(wù)的行為,發(fā)現(xiàn)潛在的問題,評估業(yè)務(wù)在數(shù)據(jù)庫方面的風(fēng)險(xiǎn)。結(jié)合慢查詢風(fēng)險(xiǎn)指數(shù)系統(tǒng)可以更精確的評估慢查詢的風(fēng)險(xiǎn)。

責(zé)任編輯:張燕妮 來源: dbaplus社群
相關(guān)推薦

2019-02-01 08:12:16

果粉蘋果庫克

2022-03-11 09:01:58

去哪兒網(wǎng)DevOps實(shí)踐

2025-09-02 01:21:00

2017-11-28 15:16:47

KubernetesCephGPU云

2022-08-30 15:12:10

架構(gòu)實(shí)踐

2019-03-30 14:33:52

BAT跳槽互聯(lián)網(wǎng)

2018-01-12 05:37:52

2017-09-13 12:18:29

2024-07-25 13:04:21

2012-12-21 12:40:15

智慧云手機(jī)軟件

2015-11-12 17:33:01

去哪兒

2017-03-27 17:50:12

WOT技術(shù)

2015-09-10 10:31:53

去哪兒網(wǎng)Inception自動(dòng)化運(yùn)維

2022-08-02 09:42:48

混沌工程系統(tǒng)群

2020-10-23 09:50:20

鏈表Java代碼

2020-11-24 11:30:51

SpringJava代碼

2014-02-13 16:16:33

云架構(gòu)云計(jì)算

2013-11-08 10:19:10

2013-11-12 14:15:45

2022-06-15 11:04:49

數(shù)據(jù)建設(shè)場景
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

久久午夜鲁丝片| 中文字幕在线观看的网站| 黄视频网站在线| 国产美女主播视频一区| 91精品国产免费久久久久久| 人妻熟女aⅴ一区二区三区汇编| 欧美日韩美女| 亚洲免费高清视频在线| 精品日韩电影| 国产精品一区二区三区在线免费观看 | 538视频在线| 中文一区在线播放| 国产精品一区二区你懂得| 日本视频在线观看免费| 影视亚洲一区二区三区| 亚洲精品国产精品国产自| www.超碰com| 久草在线视频福利| 国产精品人成在线观看免费| 国产视频一区二区不卡| 国产偷人爽久久久久久老妇app| 午夜欧美视频| 日韩中文字幕在线看| 亚洲综合自拍网| 国产日韩欧美中文在线| 欧美在线综合视频| 国产v片免费观看| 成人直播在线| 欧美国产一区二区| 久久一区二区三区av| av综合在线观看| 奇米精品一区二区三区在线观看一| 久久久亚洲福利精品午夜| 日本伦理一区二区三区| 伊人久久大香线蕉无限次| 欧美不卡一区二区三区四区| 五月花丁香婷婷| 欧美不卡高清一区二区三区| 欧美日韩国产中文字幕| 免费网站永久免费观看| 黄色网页网址在线免费| 国产精品全国免费观看高清| 色一情一乱一伦一区二区三区| 五月天丁香视频| 成人黄色在线看| 国产福利不卡| 亚洲第一天堂影院| 国产精品影音先锋| 91精品免费视频| 91久久精品无码一区二区| 日韩不卡一区二区三区 | 秋霞精品一区二区三区| 99精品欧美| 欧美在线视频网站| 天天操天天摸天天干| 亚洲精品资源| 欧美一区在线直播| 国产精品视频一区在线观看| 亚洲自拍另类| 日本成人激情视频| 探花国产精品一区二区| 男男成人高潮片免费网站| 国产精品网址在线| 欧美另类久久久品| 亚洲一区免费看| 看女生喷水的网站在线观看| 国产精品久久三| youjizz.com亚洲| av在线导航| 亚洲一区在线视频| 久久视频这里有精品| 国产99在线| 91久久一区二区| 天堂视频免费看| 在线精品国产亚洲| 日韩精品免费综合视频在线播放| 蜜臀av一区二区三区有限公司| 怕怕欧美视频免费大全| 日日骚久久av| 久久婷婷一区二区| 噜噜噜躁狠狠躁狠狠精品视频| 国产xxx69麻豆国语对白| 国产偷人爽久久久久久老妇app| 国模少妇一区二区三区| 国产成人精品福利一区二区三区| 欧美色综合一区二区三区| 欧美激情一区不卡| 国产精品无码电影在线观看| av在线资源| 欧美探花视频资源| 国产a级片视频| 综合伊思人在钱三区| 日韩在线观看免费| 日本在线观看中文字幕| 蜜臀精品久久久久久蜜臀 | 免费av中文字幕| 激情小说亚洲一区| 久久99精品久久久久久水蜜桃 | jizz久久精品永久免费| 亚洲人线精品午夜| 亚洲色图综合区| 狂野欧美一区| 痴汉一区二区三区| 在线观看黄色av| 欧美性生交xxxxxdddd| 三上悠亚av一区二区三区| japanese色系久久精品| 日韩亚洲一区二区| 久草视频在线观| 国产毛片精品视频| 丝袜美腿玉足3d专区一区| 欧洲成人综合网| 欧美日韩三级在线| 香蕉视频黄色在线观看| 国产精品大片| 国产日韩欧美综合| 国产小视频在线观看| 性久久久久久久久| 中文字幕第三区| 日韩欧美午夜| 国产成人福利视频| 三级视频在线| 天天影视网天天综合色在线播放| 亚洲国产成人va在线观看麻豆| 日韩a级大片| 欧美激情免费视频| 国产欧美一级片| 国产精品久久久久久久久快鸭| 凹凸国产熟女精品视频| y111111国产精品久久久| 久久精品一区中文字幕| 在线视频免费观看一区| 久久久综合九色合综国产精品| 久草视频国产在线| 久久伊人久久| 久久国产精品99国产精| 国产精品伦一区二区三区| 国产亚洲精品免费| 成人黄色一区二区| 国产精品手机在线播放| 欧洲美女7788成人免费视频| 亚州精品国产精品乱码不99按摩| 亚洲国产中文字幕| 国产精品偷伦视频免费观看了| 亚洲精品a级片| 亚洲一区精品电影| 在线āv视频| 日韩欧美国产wwwww| 国产亚洲精品久久久久久无几年桃| 精品在线播放免费| 日本高清xxxx| 伊人久久大香线蕉av超碰| 久久久噜噜噜久久久| 亚洲卡一卡二卡三| 亚洲高清不卡在线| 日韩免费高清一区二区| 久久久久91| 污视频在线免费观看一区二区三区| 素人一区二区三区| 久久久精品视频成人| www视频在线| 亚洲二区在线观看| 香蕉视频黄色在线观看| 免费美女久久99| 一级特黄妇女高潮| 九九热hot精品视频在线播放| 69影院欧美专区视频| 男人天堂综合| 欧美美女直播网站| 精品无码人妻一区二区三| 99在线视频精品| 青青草av网站| 欧美另类视频| 欧美极品一区| av在线亚洲一区| 久久久久久999| 韩国三级av在线免费观看| 精品视频999| 久久综合色综合| 久久久久亚洲蜜桃| 色婷婷综合在线观看| 亚洲一区二区免费看| 亚洲精品日韩在线观看| 亚洲精品一区二区三区中文字幕 | 国产有码在线观看| 亚洲国产日韩精品| 成年人在线免费看片| 国产精品18久久久久久vr| 久久久久久久久久久视频| 欧美综合视频| 国产一区二区久久久| 日本一道高清亚洲日美韩| 美女久久久久久久| 久久天堂电影| 精品国产凹凸成av人网站| av首页在线观看| 亚洲国产一区二区三区青草影视| 一级黄色录像毛片| 成人永久aaa| 日本黄大片一区二区三区| 亚洲精品欧洲| a级网站在线观看| 精品盗摄女厕tp美女嘘嘘| 99国产视频| 久久免费影院| 欧美在线视频免费| 中文字幕资源网在线观看| 亚洲最新视频在线| 日本精品久久久久| 777色狠狠一区二区三区| 少妇高潮av久久久久久| 亚洲一区免费在线观看| 黄色av片三级三级三级免费看| 成人黄色av电影| 韩国三级丰满少妇高潮| 久久国产尿小便嘘嘘| 99精品视频播放| 在线欧美视频| 国产xxxx振车| 欧美日韩理论| 欧美三级午夜理伦三级老人| 色无极亚洲影院| 欧美性天天影院| 欧洲精品一区| 国产乱码精品一区二区三区不卡| 国产电影一区| 91久久精品视频| 国产精品久久久久久久久免费高清| 日本高清不卡在线| 亚洲欧美se| 97在线观看免费| 草草在线观看| 国产91精品久久久久久| 女海盗2成人h版中文字幕| 久久久影视精品| 毛片大全在线观看| 国内精品一区二区三区四区| 色呦呦呦在线观看| 欧美多人乱p欧美4p久久| 在线黄色网页| 欧美大片网站在线观看| 青草影视电视剧免费播放在线观看| 久久久精品一区二区| 蜜桃av在线免费观看| www.日韩视频| 国产理论在线观看| 九九热最新视频//这里只有精品 | 婷婷伊人综合中文字幕| 亚洲第一网中文字幕| 黄色一级大片在线免费看国产| 亚洲第一福利网| 天堂视频中文在线| 亚洲欧美色图片| 北岛玲一区二区三区| 伊人青青综合网站| 日本在线观看免费| 欧美乱妇高清无乱码| h片视频在线观看| 欧洲成人在线观看| 国产一区二区色噜噜| 成人精品久久久| av成人资源网| 久久一区免费| 欧美韩国日本在线观看 | 久久国产免费| 亚州精品一二三区| 国产乱子伦一区二区三区国色天香| 国产精品一级无码| aaa国产一区| 夜夜春很很躁夜夜躁| 亚洲欧洲一区二区在线播放| 国产高清在线免费观看| 岛国av一区二区三区| www.久久精品视频| 337p亚洲精品色噜噜狠狠| 亚洲第一成年人网站| 亚洲免费高清视频| 麻豆网站在线观看| 97在线观看视频国产| 3d欧美精品动漫xxxx无尽| 91精品免费久久久久久久久| 国产一区在线电影| 亚欧精品在线| 亚洲午夜激情在线| 激情五月婷婷久久| 国产成人免费视频网站| 中文幕无线码中文字蜜桃| 国产精品美女视频| 日韩久久久久久久久| 欧美日韩另类一区| 香蕉视频黄色片| 久久在线精品视频| av日韩电影| 91网免费观看| 凹凸成人精品亚洲精品密奴| 草草草视频在线观看| 国产一区二区三区的电影| 一区二区在线免费看| 26uuu色噜噜精品一区二区| 日本午夜在线观看| 色香蕉成人二区免费| www.热久久| 中文字幕精品在线| 自由日本语热亚洲人| 97超碰在线播放| 欧美日韩在线播放视频| 精品少妇一区二区三区在线| 国产在线不卡视频| 日本一区二区视频在线播放| 香蕉久久一区二区不卡无毒影院 | 男人天堂视频在线| 亚洲精品在线电影| 性爱视频在线播放| 国产精品自在线| 国产剧情在线观看一区| 日本xxxxxxxxxx75| 国产酒店精品激情| 一级免费黄色录像| 欧美色图一区二区三区| 欧美中文在线| 午夜精品在线观看| 99re8这里有精品热视频免费| 五月天色婷婷综合| 日本不卡视频在线| 国产 欧美 在线| 欧美日韩午夜剧场| 天堂网在线资源| 欧美激情一区二区三区成人| 国产精品美女久久久久人| 曰韩不卡视频| 久久国产精品免费| 美女福利视频网| 欧美日韩精品一区二区| av色图一区| 国产精品久久久久9999| 国产日产一区| 天天天干夜夜夜操| 国产亚洲欧美激情| 中文在线资源天堂| 在线a欧美视频| 51一区二区三区| 亚洲精品影院| 久久精品国产精品青草| 婷婷综合在线视频| 欧美精品v日韩精品v韩国精品v| 老司机在线视频二区| 成人精品网站在线观看| 亚洲色图欧美| 一级全黄裸体片| 偷拍亚洲欧洲综合| 日本一二三区在线视频| 欧美一级淫片丝袜脚交| 精品一区毛片| 在线观看免费黄网站| 国产精品久久久久aaaa| 国产乱码一区二区| 久久久噜久噜久久综合| 婷婷精品在线观看| 自拍偷拍 国产| 亚洲天堂中文字幕| www日本视频| 欧美有码在线观看| 999国产精品| 精品无码av一区二区三区| 天天操天天综合网| 大乳在线免费观看| 91在线视频成人| 黄色av成人| 中文字幕 自拍| 4hu四虎永久在线影院成人| 免费污视频在线| 欧洲一区二区在线| 狠狠色丁香久久婷婷综合丁香| 欧美极品视频在线观看| 国产视频久久久| 欧美爱爱视频| www.亚洲视频.com| 国产午夜三级一区二区三| 国产精品久久久久久免费播放| 欧美精品激情在线| 国产日韩欧美一区二区三区| 91丝袜超薄交口足| 色综合色综合色综合色综合色综合| 午夜伦全在线观看| 国产三区精品| 精一区二区三区| 国产又黄又粗又爽| 精品国产一区二区三区久久狼黑人 | 亚洲第一色在线| 欧美free嫩15| 日韩欧美不卡在线| 中文字幕在线不卡| 你懂的网站在线| 国产一区深夜福利| 亚洲欧美不卡| 久久久99精品| 日韩一区二区在线视频| 亚洲品质自拍| 熟妇高潮一区二区| 欧美精品色综合|