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