摘要:應用運維管理平臺(AOM)和Cassandra是兩個不可分割的組成部分,它們共同構成了一個高效的解決方案,可以幫助企業在應用運維業務上取得巨大的優勢。在這篇文章中,我們將介紹AOM和Cassandra的優勢和特點,揭曉它們如何為企業保持市場競爭力的祕密。
本文分享自華為雲社群《海量資料運維要給力,華為雲GaussDB(for Cassandra)來助力》,作者:華為雲社群精選 。
隨著容器技術的普及,越來越多的企業通過微服務架構開發應用,業務逐漸轉變為雲上實現服務,運維也逐漸轉向雲上運維服務。在此環境下,雲上應用的運維也遭遇了新的挑戰:
針對以上挑戰, AOM應運而生。
AOM是由華為雲研發的雲上應用一站式立體化運維管理平臺,由應用資源管理、監控中心(可觀測性分析)、自動化運維、採集管理四個子服務構成,提供一站式可觀測性分析和自動化運維方案,支援快速從雲端和本地採集指標、紀錄檔和效能等資料,幫助使用者及時發現故障,全面掌握應用、資源及業務的實時執行狀況,提升企業海量資料運維的自動化能力和效率。
AOM優勢眾多,功能強大,其背後離不開支撐其海量資料運轉的智慧資料底座——華為雲GaussDB(for Cassandra)。
華為雲GaussDB(for Cassandra)是一款相容Cassandra生態的雲原生NoSQL資料庫,支援類SQL語法CQL。在華為雲高效能、高可用、高可靠、高安全、可彈性伸縮的基礎上,提供了一鍵部署、快速備份恢復、計算儲存獨立擴容、監控告警等服務能力,尤其適用於各種海量資料處理和高並行業務場景。
此外,華為雲GaussDB(for Cassandra)特性豐富,適用於廣泛業務場景。
綜上所述,GaussDB(for Cassandra)非常適合巨量資料分析、實時資料處理、社群網路、物聯網、分散式儲存和查詢等應用場景。
AOM功能強大,涉及多種典型業務場景,如資料熱點、時序資料、實時監測等,因此選擇GaussDB(for Cassandra)作為底層資料支撐引擎。接下來就資料熱點問題作為切入點,揭祕GaussDB(for Cassandra)如何保障AOM在發生資料熱點時穩定執行。
監控運維海量資料時,表中特定資料存取頻率驟升,部分分割區產生熱點流量。表中主鍵設定不合理,某個分割區下的業務量驟增,流量衝擊會集中在一個分割區上,導致該分割區對應的token所在節點的CPU持續居高不下。
GaussDB(for Cassandra)是一個面向巨量資料場景的高度可延伸的高效能分散式資料庫,可用於管理海量的結構化資料。在業務使用的過程中,隨著業務量和資料流量的持續增長,一些業務的設計弊端逐漸暴露出來,降低了叢集的穩定性和可用性。例如主鍵設計不合理、單個分割區的記錄數或資料量過大、出現超大分割區鍵等問題,導致了節點負載不均衡、叢集穩定性下降等現象,這一類問題統稱為大key問題。產生大key的最主要原因是主鍵設計不合理,導致單個分割區的記錄數或資料量過大。一旦某個分割區存在海量資料時,對該分割區的存取會導致分割區所在server的負載變高,嚴重時甚至會導致節點OOM等後果。
在日常生活中,經常會發生各種熱門事件,例如應用中對某熱點新聞進行上萬次的點選瀏覽和評論時,會形成一個較大的請求量,這種情況下會在短時間內對同一個key頻繁操作,導致該key所在節點的CPU負載飆高,從而影響該節點上的其他請求,導致業務成功率下降。諸如此類的還有熱門商品促銷,網紅直播等場景,這些典型的讀多寫少的場景也會產生資料熱點問題。當某個key的請求在某一主機上的存取超過server極限時,會導致熱key問題的產生。大key往往是熱key問題的間接原因。熱key會造成以下危害:流量集中,達到物理網路卡上限;請求過多,快取分片服務被擊垮;資料庫擊穿,引起業務雪崩等。
在上述場景中,主要是表中主鍵結構不合理,從而導致大key和熱key的產生,表結構如下所示。movie表儲存了短視訊的相關資訊,分割區鍵為movieid,並且儲存了使用者資訊(uid)。如果movieid對應的視訊是一個熱門短視訊,有幾千萬甚至上億使用者點贊此短視訊,則該熱門短視訊所在的分割區非常大。
CREATE TABLE movie ( movieid text, appid int, uid bigint, accessstring text, moviename text, access_time timestamp, PRIMARY KEY (movieid, appid, uid, accessstring, moviename) )
CREATE TABLE hotmovieaccess ( movieid text, appid int, accessstring text, access time timestamp, PRIMARY KEY (movieid, appid) )
在上述場景中,可以使用快取來緩解流量衝擊。業務應用先從快取中讀取熱點資訊,沒有查詢到則從資料庫中查詢,減少資料庫查詢次數。整體邏輯流程如下所示。
資料熱點會給業務帶來壓力,影響業務正常執行。出現資料熱點後再去解決為時已晚,因此需要預知資料熱點問題,提前設計解決方法,保證業務正常執行。為此,GaussDB(for Cassandra)為業務提供了大key和熱key的檢測和預警工具。
GaussDB(for Cassandra)支援大key和熱key的檢測和告警工具,客戶可根據實際業務需求,在產品介面設定範例的大key和熱key告警。同時,在發生大key和熱key事件時,系統會第一時間傳送預警通知,客戶可在產品介面檢視監控事件資料,及時處理相關告警,避免業務波動。
針對資料熱點問題,GaussDB(for Cassandra) 提供了大key和熱key的實時檢測,以幫助業務進行合理的方案設計,規避業務穩定性風險;提供了大key和熱key的實時監控,確保第一時間感知業務風險;提供了大key和熱key的解決方案,在面對巨量資料量洪峰場景時,增強了叢集的穩定性與可用性,為客戶業務持續穩定執行保駕護航。
綜上所述,線上業務在使用GaussDB(for Cassandra)時,必須執行相關的開發規則和使用規範,在開發設計階段就降低使用風險。一般按照「制定規範」→「接入評審」→「定期巡檢」→「優化規則」的治理流程進行。合理的設計一般會降低大部分風險發生的概率,對於業務來說,任何表的設計都要考慮是否會導致大key和熱key的產生、是否會造成負載傾斜的問題。另外需要建立資料老化機制,表中的資料不能無限制的增長而不刪除或者老化。針對讀多寫少的場景,要增加快取機制,來應對讀熱點問題,提升查詢效能;針對每個分割區鍵以及每行資料,要控制其大小,超出限制後要及時優化,否則將影響效能和穩定性。
AOM和GaussDB(for Cassandra)的組合成功打造了一套高效、可延伸、高效能、靈活和可客製化的海量資料監控運維平臺,可以幫助企業更好地管理和利用監控資料,提高運維效率,助力企業在不斷變化的市場環境中保持競爭優勢。