一、公司簡介
江蘇金智教育成立于 2008 年,是國內(nèi)領(lǐng)先的高等教育信息化服務(wù)提供商。公司專注于推動云技術(shù)與高等教育的深度融合,通過自主研發(fā)為客戶提供教學(xué)、科研、管理、生活服務(wù)等領(lǐng)域的軟件產(chǎn)品和服務(wù),幫助高校以數(shù)字化、智能化驅(qū)動人才培養(yǎng)和校務(wù)治理模式的變革。
憑借全面的產(chǎn)品解決方案和優(yōu)質(zhì)服務(wù),金智教育已經(jīng)累計助力 1000 余所高等院校和中職學(xué)校實現(xiàn)數(shù)字化轉(zhuǎn)型和業(yè)務(wù)創(chuàng)新,成為高校信息化領(lǐng)域的領(lǐng)航者。
二、業(yè)務(wù)背景
金智教育有很多核心業(yè)務(wù)系統(tǒng),其中大量使用了 Redis。近年來隨著業(yè)務(wù)量持續(xù)增長,其原先采用的自建開源 Redis 在使用上遇到幾個明顯的痛點。
1)開源 Redis 主備倒換引起“丟 Key”,只能人工補數(shù)據(jù)
由于開源 Redis 主備采用的是異步復(fù)制,一旦發(fā)生故障倒換,將會丟失大量數(shù)據(jù)。
在金智教育業(yè)務(wù)中,APP 登錄驗證會使用 Redis 存儲 token,一旦主從切換,會導(dǎo)致大量用戶重復(fù)驗證登錄。這也是 Redis 常見的問題。
此外,在學(xué)生報表業(yè)務(wù)中,數(shù)據(jù)的完整性非常重要。一旦發(fā)生數(shù)據(jù)丟失,全國的老師都會發(fā)現(xiàn)系統(tǒng)中有一部分學(xué)生的信息無法查看,此時不得不通過人工來補救數(shù)據(jù),非常耗時。
2)開源 Redis 分片經(jīng)?!氨涣骺亍?,影響業(yè)務(wù)
業(yè)務(wù)訪問模型往往會存在一些熱點,開源 Redis 集群雖然整體帶寬高,但由于每個分片帶寬小,因此經(jīng)常觸發(fā)分片流控,導(dǎo)致業(yè)務(wù)受損。
在金智教育的業(yè)務(wù)中,流控觸發(fā)就意味著業(yè)務(wù)受損,因此非常需要一款“不流控”的 Redis 服務(wù)。
3)數(shù)據(jù)持續(xù)增長,開源 Redis 升配“太貴”,且影響業(yè)務(wù)
在海量數(shù)據(jù)處理的場景下,需要 Redis 長期保存數(shù)據(jù)。開源 Redis 擴容操作意味著加分片,耗時久而且影響業(yè)務(wù)。擴容只能靠 DBA 熬夜支撐,效率低下。
此外,隨著數(shù)據(jù)增長,開源 Redis 的使用成本也會一次次“翻倍”,例如從 32GB 擴容到 64GB,會給公司帶來較高的成本開銷,金智教育也急需要一款成本可控的 KV 數(shù)據(jù)庫。
解決方案
華為云 GaussDB(for Redis)的設(shè)計目的,就是為了解決 Redis 的痛點問題,有效實現(xiàn)降本和增效。兼容性方面,它不但 100%兼容 Redis5.0,而且支持主備和集群全生態(tài)架構(gòu),業(yè)務(wù)可以無縫平遷。近年來,GaussDB(for Redis)產(chǎn)品團隊基于開源生態(tài)額外做了諸多的特性增強,例如:解決了 fork 問題使性能更平滑,支持自動無感擴容(秒級完成),指定時間點原地 PITR 回檔、跨 Region 容災(zāi)等等。
針對金智教育在 Redis 使用中遇到的幾大核心痛點,GaussDB(for Redis)提供了完善的配套解法:
1)數(shù)據(jù)可靠性顯著提升,不擔(dān)心總丟 key,也不再需要人工“補數(shù)據(jù)”
試想在 10000 QPS 的寫入流量下,開源 Redis 即使配置秒粒度的 AOF 下刷(影響性能,往往不適合在線上環(huán)境開啟),主備倒換也會引起 10000 條業(yè)務(wù)數(shù)據(jù)的丟失,損失很大。因此,開源 Redis 的“丟數(shù)據(jù)”是先天的痛點,并不適合用在數(shù)據(jù)重要的業(yè)務(wù)場景下。
GaussDB(for Redis)存儲數(shù)據(jù)的可靠性非常高,用戶數(shù)據(jù)在 GaussDB(for Redis)默認存儲 3 個副本,成本上僅按 1 個副本計費,不會帶來額外費用。計算節(jié)點使用預(yù)寫日志 WAL 實現(xiàn)了命令級的可靠存儲,即使分片發(fā)生故障倒換,由于有存儲池保障全量數(shù)據(jù)的可靠性,也能保障業(yè)務(wù)數(shù)據(jù)的安全。
切換到 GaussDB(for Redis)后,金智教育線上業(yè)務(wù)的穩(wěn)定性得到了大幅度提升,而不再需要消耗人工精力去“補數(shù)據(jù)”了。
2)采用獨享容器部署,分片帶寬充足,不擔(dān)心流控
開源 Redis 的部署往往是多租戶共用一個容器,因此不得不做流控,否則會發(fā)生租戶間相互干擾的情況。分片的流控是常發(fā)生的現(xiàn)象,這會產(chǎn)生“木桶效應(yīng)”,只有采用獨立容器部署 Redis 才能解決。
GaussDB(for Redis)的每個分片都采用獨立容器,帶寬不做額外限流,分片(獨立容器)帶寬全部提供給業(yè)務(wù)程序使用,即使業(yè)務(wù)訪問存在一定傾斜,也不擔(dān)心被某個分片流控。
3)支持自動擴容,且對業(yè)務(wù)零干擾;強數(shù)據(jù)壓縮比,存數(shù)據(jù)成本節(jié)約 30%+
GaussDB(for Redis)的擴容體驗在行業(yè)里是領(lǐng)先的,目前已經(jīng)支持全自動擴容,無需人工干預(yù),且擴容平滑無感,秒級完成。對業(yè)務(wù)來說,連接不會被中斷,也不會引起時延抖動,隨著業(yè)務(wù)增長,擴容可以放心交給服務(wù)端自動化完成。
此外,金智教育在遷移數(shù)據(jù)時,發(fā)現(xiàn) 100GB 的數(shù)據(jù)遷入到 GaussDB(for Redis)只占用了不到 50GB 的空間,從長遠來看存儲成本非常有優(yōu)勢。這是由于 GaussDB(for Redis)通過高效壓縮技術(shù)對數(shù)據(jù)進行了邏輯+物理塊壓縮,能夠有效降低存儲開銷。
四、總結(jié)
目前,金智教育的核心線上業(yè)務(wù)已經(jīng)在華為云數(shù)據(jù)庫 GaussDB(for Redis)上平穩(wěn)運行近一年,從日常綜合表現(xiàn)來看,業(yè)務(wù)的平均時延在 1ms 以內(nèi),p99 時延一般在 2ms 內(nèi),并且性能穩(wěn)定,同時運維和開發(fā)效率也得到了大幅度提升。
后續(xù)華為云數(shù)據(jù)庫還會繼續(xù)和金智教育密切合作,在 KV 數(shù)據(jù)庫業(yè)務(wù)方向深挖更多服務(wù)化能力,提升客戶運維和開發(fā)體驗。
審核編輯 黃宇
-
數(shù)字化
+關(guān)注
關(guān)注
8文章
8538瀏覽量
61581 -
Redis
+關(guān)注
關(guān)注
0文章
370瀏覽量
10830
發(fā)布評論請先 登錄
相關(guān)推薦
評論