【ArchSummit】小红书缓存服务多云建设之路
📫 作者簡(jiǎn)介:小明java問(wèn)道之路,專注于研究 Java/ Liunx內(nèi)核/ C++及匯編/計(jì)算機(jī)底層原理/源碼,就職于大型金融公司后端高級(jí)工程師,擅長(zhǎng)交易領(lǐng)域的高安全/可用/并發(fā)/性能的架構(gòu)設(shè)計(jì)與演進(jìn)、系統(tǒng)優(yōu)化與穩(wěn)定性建設(shè)。
📫 熱衷分享,喜歡原創(chuàng)~ 關(guān)注我會(huì)給你帶來(lái)一些不一樣的認(rèn)知和成長(zhǎng)。
🏆 InfoQ簽約作者、CSDN專家博主/后端領(lǐng)域優(yōu)質(zhì)創(chuàng)作者/內(nèi)容合伙人、阿里云專家/簽約博主、51CTO專家 🏆
🔥 如果此文還不錯(cuò)的話,還請(qǐng)👍關(guān)注 、點(diǎn)贊 、收藏三連支持👍一下博主~
文章目錄
前言
本文導(dǎo)讀
一、Redis集群現(xiàn)狀
二、Redis編排(Kubernetes 編排)
三、Redis內(nèi)核優(yōu)化
四、多云架構(gòu)演進(jìn)
1、為什么使用多云架構(gòu)
2、多云架構(gòu)演進(jìn)路線
2.1 同城雙活
2.2 跨云多活1.0
2.3 跨云多活2.0
總結(jié)
前言
2022 年 9 月 26 -27 日,有幸參加極客邦科技旗下 InfoQ 中國(guó)舉辦的 ArchSummit 全球架構(gòu)師峰會(huì)(杭州站)。
本專欄是以“基礎(chǔ)設(shè)施技術(shù)”為主題,關(guān)注數(shù)據(jù)中心、分布式系統(tǒng)、容器等基礎(chǔ)設(shè)施技術(shù),也可以從存儲(chǔ) + 計(jì)算 + 研發(fā)體系這三個(gè)角度來(lái)分享話題,分享架構(gòu)與業(yè)務(wù)的融合。
大會(huì)內(nèi)容涵蓋人工智能、云計(jì)算、微服務(wù)、元宇宙、智能運(yùn)維、大數(shù)據(jù)等主題,為企業(yè)管理者、架構(gòu)師與開(kāi)發(fā)人員提供了行業(yè)前沿視角與參考,幫助企業(yè)在數(shù)字化時(shí)代贏得先機(jī),把握競(jìng)爭(zhēng)優(yōu)勢(shì)。
本次大會(huì)官網(wǎng)ArchSummit 全球架構(gòu)師峰會(huì)(杭州站),感興趣的同學(xué)可以自行了解,錯(cuò)過(guò)杭州站的同學(xué)可以去了解一下北京站?。
本文導(dǎo)讀
隨著小紅書(shū)業(yè)務(wù)體量迅速上漲,緩存系統(tǒng)(Redis)規(guī)模也在不斷擴(kuò)張,目前整體 QPS 高達(dá) 2 億 +,內(nèi)存 300TB+。 如何保證大規(guī)模緩存系統(tǒng)的高性能、高可靠、低成本是一件非常有挑戰(zhàn)的事情。
目前小紅書(shū)在 Redis 的中間件、內(nèi)核、服務(wù)編排等多方面進(jìn)行優(yōu)化,探索出一條緩存服務(wù)多云部署之路,從而顯著提升系統(tǒng)可靠性和降低成本。
本次議題我將為你分享小紅書(shū)緩存服務(wù)多云建設(shè)之路,希望對(duì)你有所啟發(fā)。
一、Redis集群現(xiàn)狀
整體規(guī)模與
小紅書(shū)的Redis集群基本信息:488內(nèi)存/TB、412QPS/M、90Pod/K、100%k8s
面臨挑戰(zhàn)與跨云多活背景
需要Redis提供的能力:標(biāo)準(zhǔn)緩存、內(nèi)存DB、數(shù)據(jù)排序、推薦特征存儲(chǔ)、分布式鎖……
二、Redis編排(Kubernetes 編排)
小紅書(shū)Redis集群是用Kubernetes 進(jìn)行容器管理和編排。Kubernetes?編排分為三大模塊:整體部署架構(gòu)(單 Zone、單 Region、跨云等多種方式)、集群構(gòu)建(組件構(gòu)成、反親和、多租戶隔離等)、運(yùn)維操作(故障自愈、大規(guī)模遷移等)
為什么使用Kubernetes?主要有幾點(diǎn)好處一、運(yùn)維簡(jiǎn)單、自動(dòng)化程度高,二、屏蔽多云機(jī)器差異,三、復(fù)用K8S豐富的調(diào)度能力;四、方便資源拆借、混部(混合部署)。
那么是不是使用Kubernetes就萬(wàn)無(wú)一失了呢?Kubernetes存在資源碎片問(wèn)題,由于小紅書(shū)業(yè)務(wù)原因,緩存的內(nèi)存會(huì)很多,單k8s規(guī)模過(guò)大(>4000 node),宿主機(jī)快速重啟導(dǎo)致數(shù)據(jù)丟失、IP漂移、磁盤(pán)滿導(dǎo)致節(jié)點(diǎn)被驅(qū)逐等等問(wèn)題。
所以小紅書(shū)對(duì)Redis內(nèi)核優(yōu)化進(jìn)行一系列優(yōu)化。
三、Redis內(nèi)核優(yōu)化
小紅書(shū)對(duì)Redis內(nèi)核優(yōu)化主要有,異地多活(支持Binlog 改造、復(fù)制回環(huán)、沖突解決等),Gossip 優(yōu)化(節(jié)點(diǎn)規(guī)模突破 1000,解決 Redis Cluster 規(guī)模受限的業(yè)界難題)全局 Scan、Rax Tree 裁剪、實(shí)時(shí)大 Key 統(tǒng)計(jì)等等,我們重點(diǎn)看幾種優(yōu)化設(shè)計(jì)的思路。
Gossip分治
Cluster功能裁剪
一個(gè) Redis Cluster 由多個(gè) Redis 節(jié)點(diǎn)構(gòu)成,不同節(jié)點(diǎn)組服務(wù)的數(shù)據(jù)沒(méi)有交集,也就是每個(gè)一節(jié)點(diǎn)組對(duì)應(yīng)數(shù)據(jù) sharding 的一個(gè)分片。
實(shí)時(shí)大Key檢測(cè)
記錄Key搜索事件:zincryby twrank:search-key camping 1
獲取Key搜索頻率Top 100:zrevrange twrank:search-key 0 100 withscores
四、多云架構(gòu)演進(jìn)
1、為什么使用多云架構(gòu)
1、避免單機(jī)房故障導(dǎo)致服務(wù)不可用
2、單云入口層異常導(dǎo)致服務(wù)不可用
3、需要更強(qiáng)大的灰度和容量管理能力
4、上海機(jī)房資源受限
5、單供應(yīng)商議價(jià)能力差(從降本增效的層面考慮)
6、避免地域級(jí)故障
2、多云架構(gòu)演進(jìn)路線
2.1 同城雙活
同城雙活的基本信息:上海同城雙機(jī)房(Ping<2ms, 帶寬幾乎無(wú)限制),核心業(yè)務(wù)場(chǎng)景(標(biāo)準(zhǔn)緩存用法),單機(jī)房異常/專線異常時(shí)核心用戶體驗(yàn)不受影響。
同城雙活的的一些問(wèn)題:Full Sync Without RDB、Slot同步延遲校驗(yàn)、數(shù)據(jù)致性校驗(yàn)。
2.2 跨云多活1.0
跨云多活1.0的基本信息:華東跨省多機(jī)房( Ping:10ms, 帶寬受限),業(yè)務(wù)側(cè)場(chǎng)景復(fù)雜(Redis As Cache & DB),業(yè)務(wù)層做單元化改造,單機(jī)房異常/專線異常時(shí)核心用戶體驗(yàn)不受影響。
改造的方面主要有:自定義ReplCmd,引入Clsuter ID避免循環(huán)復(fù)制,不做沖突處理,復(fù)制位點(diǎn)存儲(chǔ)Redis,無(wú)中心存儲(chǔ)依賴,默認(rèn)關(guān)閉全同步由人工觸發(fā),外部組件檢查&調(diào)整復(fù)制鏈路
2.3 跨云多活2.0
當(dāng)前小紅書(shū)對(duì)整體架構(gòu)的目標(biāo)有三點(diǎn):
第一,架構(gòu)可以很好地支撐業(yè)務(wù)快速發(fā)展帶來(lái)的規(guī)模的持續(xù)擴(kuò)張,比如能夠穩(wěn)定支撐億級(jí) DAU 的規(guī)模;
第二,能夠做到較高的可靠性和可用性,這主要表現(xiàn)在跨地域容災(zāi)能力和跨云基礎(chǔ)設(shè)施的容災(zāi)設(shè)計(jì)等方面;
第三,架構(gòu)必須是高效率的,這包括相對(duì)低廉的成本和較高的資源利用率。
這三個(gè)目標(biāo)也是小紅書(shū)做多云架構(gòu)轉(zhuǎn)型的動(dòng)力。
但是多云也有一些問(wèn)題需要解決,強(qiáng)一致性、強(qiáng)寫(xiě)后讀場(chǎng)景的不滿足、專線帶寬管理、異步RDB全同步、單機(jī)房/專線故障時(shí)的處理預(yù)案、三活的成本等等
多云可以更加靈活地支撐更大的業(yè)務(wù)規(guī)模。不同的云技術(shù)特點(diǎn)不同,小紅書(shū)可以根據(jù)不同云廠商的特點(diǎn)部署不一樣的技術(shù),如離線和在線的混布等。另外,多云對(duì)資源的冗余要求也更低一些,在容災(zāi)上有一定的效率優(yōu)勢(shì)。
總結(jié)
對(duì)于未來(lái),小紅書(shū)隨著業(yè)務(wù)的增長(zhǎng),多云架構(gòu)必將發(fā)展的更加高效、節(jié)流、多元化,探索出一條緩存服務(wù)多云部署之路,從而顯著提升系統(tǒng)可靠性和降低成本。
總結(jié)
以上是生活随笔為你收集整理的【ArchSummit】小红书缓存服务多云建设之路的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: ggf
- 下一篇: 六个计算机硬件商标名称,2.注册类别中有