衡阳派盒市场营销有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

秒送LBS場景下的C端SOA服務容災建設之-數據備份篇

京東云 ? 來源:jf_75140285 ? 作者:jf_75140285 ? 2024-08-15 14:24 ? 次閱讀

前言

在面向服務的架構(SOA)系統中,容災能力是保障系統穩定性的重要組成部分。通過引入多數據中心部署、自動化故障轉移、數據備份等技術手段,可以有效提升系統在面對突發災難事件時的恢復能力。例如,采用主從復制和異地多活架構,可以確保在某個數據中心發生故障時,其他數據中心能夠迅速接管業務,避免服務中斷。此外,定期進行災難恢復演練和系統壓力測試,也是提高容災能力的關鍵措施。通過這些手段,SOA系統能夠在各種極端情況下保持高可用性和穩定性,從而為用戶提供持續可靠的服務。今天重點聊一下LBS場景下的數據備份方案。

wKgZoma9nxKAC6pZAA-X1VhWYFA428.png

一、問題背景

隨著秒送業務的上線,基于LBS的用戶交易的流量逐漸提升,不同于JD主站的B2C場景,O2O場景下的資源場景劃分的非常精細,根據門店履約圍欄劃分3公里、2公里、1公里等不同的范圍,資源與資源之間互相交錯、覆蓋,構建成一個具有LBS特性的資源網。作為入口級流量的后臺SOA服務,我們需要根據業務特性區分哪些數據強實時/弱實時來制定不同的數據備份策略、還需要弄清楚底層數據生產的邏輯鏈路,才能保障數據備份的真實性、還需要考慮用戶使用的這份備份數據體驗等等因素。因此,LBS場景下的容災數據備份的難度瞬間升級。

二、痛點/挑戰

基于上述背景描述,我們在制定方案的過程中遇到了很多挑戰,主要分為三大類

1、如何緩存poi經緯度數據

如果要按照全國poi經緯度去緩存數據,為了降低數據差異,我們把不同poi點的距離精確到(米級),那么全國poi的數量是多少呢?根據主站網格地址統計,精確度在75米的poi點在6.8億+,如果按照1米算,估計千億+級別的poi。如此量級的poi數據,我們如果每一個poi都做數據備份的話(理想狀態);拿秒送首頁、頻道頁舉例,首頁一次交互數據大小600kb左右,頻道頁核心5個,每個400kb左右,那么每個poi需要2600KB的存儲,按照75米的poi距離,需要6.8億*2600kb=1646TB,C端數據最終存儲在redis中,按照5G=1核=15元/月,那么需要花費500萬+人民幣/月,老板聽完方案匯報臉都黑了。

2、如何降低容災數據存儲成本

每個月500多萬的存儲開銷成本顯然是不現實的,于是我們迎來了第二個挑戰,那就是怎么才能降低這么大的存儲成本,于是我們內部多次討論,絞盡腦汁,得出結論:如果想讓用戶得到最好的體驗那么似乎和成本之間是互斥的,我們怎么才能尋找一個中間點,來平衡戶體驗和成本。

3、如何保障緩存數據資源的有效性

在進行數據備份時,數據一致性問題是不可避免的關鍵點??紤]到如此龐大的數據量,若采用實時請求備份的方式,SOA層面的請求負載將可能對底層RPC造成極大的查詢壓力。相對而言,異步構建方法則要求我們復制主站搜索、推薦和GIS定位等異構邏輯(因為秒送首頁、門店詳情等資源來源于主站搜索、推薦和GIS),這不僅意味著需要處理上千個中臺的消息隊列(MQ),還要確保邏輯與現有系統保持一致,這顯然是個巨大挑戰。

因此,我們的選擇余地有限。有觀點認為,數據備份并不需要完全真實,稍有偏差也是可接受的,甚至可以使用靜態圖片代替。我們承認,實現數據容災備份與線上數據保持100%一致是不現實的。但我們的目標是盡可能保證90%的用戶體驗與線上相似,同時確保交易流程的連續性,并在系統異常時為用戶提供無感知的體驗。(此處價值觀強調升華,用戶為先)

三、業界方案調研

flag立完了,但是確實沒啥好思路,B2C場景的不適用,只能是去跟隔壁同行取取經,通過多方渠道找到了一些靠譜的某團的技術大佬,并且做了1對1的溝通。大致梳理了下他們的架構和容災方案。

某團的超市便利架構:

wKgaoma9nxSAQSOYAAVLhdG94Rc370.png

通過溝通得知,某團在SOA層,沒有做任何的數據備份容災,完全依賴底層的數據提供,如果底層數據返回空,那么頁面也會空白...至于底層數據有沒有做容災數據備份,就不得而知,我相信是有的。于是到這里,感覺前路又被堵死了。

四、方案構思

調研無果的情況下,我們回過頭來重新整理下現有的邏輯鏈路,從中尋找一些突破點,為了整體容災數據備份方案做預設計。

1、首先根據業務篩選下,哪些入口是阻塞交易鏈路,不可降級的

從中識別出:首頁、頻道頁、門詳頁是阻塞交易的環節,需要進行數據備份。

2、底層數據依賴的鏈路邏輯分別是什么

(1)首頁、頻道頁

首頁和頻道頁充當著網站的主入口,它們利用CMS系統和定向投放系統實現了基于地理位置服務(LBS)的樓層內容過濾。網站內容通過商品組合、廣告組合以及推薦機制構建,核心資源主要依賴于推薦系統的數據池。我們分析后注意到,不同用戶在同一地點或同一用戶在不同地點可見的內容各不相同,這主要是由推薦系統的數據池結合特定策略實現的。推薦數據所依賴的因素來源于多種策略的分配,而這些策略因素又會反過來影響推薦結果。這導致我們無法僅通過備份當前數據來保持數據的一致性,因為策略的即時變化可能會使備份數據的結果發生變化。若要備份數據與線上數據完全一致,我們需要復制一整套推薦系統的數據流轉過程,這是目前的一個難點。為了應對這種情況,我們采用了一個通用賬號執行普通策略來進行數據備份,以盡可能排除變量因素,雖然這犧牲了一定的個性化推薦能力,但確保了數據正常展現。

wKgZoma9nxiAMkdmAAoECmW3WLA913.png

(2)門詳頁

門詳頁是秒送流量的關鍵交易通道,其核心門店分類和商品信息均通過搜索引擎和商家分類中臺獲得。盡管集團的主搜索引擎已經分離出專門的垂直搜索服務供秒送場景使用,但數據源仍然是共用的,區別僅在于網關層面的分離。與首頁和頻道頁不同,門詳頁專注于門店層面的分類和商品數據,不需涉及廣告投放和目標人群等因素。只要門店能在首頁展示,用戶點擊進入后看到的分類和商品就會保持一致。因此,我們的主要關注點是確保當前搜索引擎的數據源是準確的。我們對線上100家不同類型的門店(包括連鎖品牌和非連鎖品牌)進行了一周的觀察,發現門店分類變動較少,而分類下的商品狀態和庫存變化較頻繁。基于此,我們可以對門店分類實施全量緩存(考慮到較低的時效性需求),而對于分類下的商品則根據情況實施緩存(需要較高的時效性)。

wKgaoma9nxqAOIodAAYzEJI_drk336.png

3、削減數據備份量級思路

因為底層依賴的數據源不一致,所以首頁、門詳頁分別制定不同的數據備份設計方案,首頁的由于和poi強相關,所以更復雜一些。門詳因為不涉及poi以及策略,所以相對首頁來說容易一些。

(1)首頁、頻道頁(引入網格思想)

在整理推薦系統的數據鏈路時,我們注意到推薦結果中的門店商品資源高度依賴GIS系統。深入分析GIS邏輯后,了解到GIS維護著不同覆蓋范圍的網格圍欄,如3公里、5公里和20公里網格,并且每個網格下的門店商品資源是相同的。這啟發了我們,如果我們也能構建一個類似GIS的網格系統并緩存門店商品,豈不是能顯著提升數據的一致性?然而,現實告訴我們,推薦系統調用GIS接口是基于策略模型的選擇,并非易事。若要完整復制推薦系統邏輯幾乎不可能。

然而,網格的概念是值得借鑒的,因為它可以大幅減少我們的POI緩存數據規模。如果我們反其道而行之,直接緩存當前POI下的推薦結果,就無需處理推薦邏輯的復雜性。接下來的挑戰是構建一套盡可能與GIS網格重疊的網格系統。

重點來了!

如何選擇構建網格類型?

開源的網格grid構建空間索引又很多種,墨卡托、geohash、H3、S2等等,那么我們如何去選擇呢?GIS提供的網格接口使用的空間索引是geohash四邊形網格,但是為了以防萬一,我們通過主站網格中臺封裝的JMF組件,異構了包含了geohash在內的多種空間索引,目的是全方位覆蓋,為了后續的diff提供多種選擇,得到最優結果。這里我就挑一種H3作為demo去講述如何構建的網格。

wKgaoma9nx2AfLoGAADH6P9EBaM216.png

如何去構建網格?

另外一個問題,構建網格的分辨率應該如何選擇,也就是我們常說的網格精度。我們去門店中臺查了秒送的門店范圍,發現90%以上的門店都是基于3公里圈定的不規則履約范圍,而這個也是作為GIS判斷網格是否覆蓋該門店的核心因子。所以在構建網格的時候,每個蜂窩格子的面積限定3公里顯然不能得到最優結果,于是我們通過H3的空間索引構建了 Hexagon六邊形網格,盡可能的模擬線上真實不規則的履約圈選范圍。同時Hexagon的邊長精度劃定為7也就是1.4km,得到最小六邊形面積3.12m2,最大六邊形面積6.22m2。同時針對精度8的也異構出一套數據作為diff參照。經過計算后得出(刨去偏遠地區),精度7的熱點網格數量在幾十萬+,精度8個網格數量在百萬+,和原本的百億級別相比,降低了99%~~,最后經過成本計算:①精度7的=2973元/月 ;②精度8的=14133元/月 (相比于最初的500萬+/月,打折到骨折?。?/strong>

Hexagon官方文檔:

wKgaoma9nx-AbeCFAAQPzVpduE0665.png

如何識別網格熱點poi?

(選擇網格中的哪個poi作為當前網格的緩存代表?)

構建好網格后,問題又來了,因為網格是一組poi的集合,我們只有拿到一個網格內部數據備份最好的poi經緯度,才能去模擬線上用戶請求進行緩存,作為這個網格的容災數據備份,從而達到最優的數據備份效果。經過和網格中臺溝通后得出,網格集成了格子內的用戶請求分布情況,于是我們可以根據用戶分布最集中的經緯度poi點進行數據備份,達到最佳效果。

wKgZoma9nyCAUkmwAACS4v2hvpo086.png

?

?數據備份時間多久?

最后就是數據備份的時間,也就是數據一致性的問題。上面說過了,推薦包含了很多策略,同一個用戶 白天和晚上看到的首頁結果都不一樣,這個就是涉及到體驗和成本的問題,如果為了保持好的體驗,我們可以緩存2套數據,白天一套、晚上一套。但是考慮到晚上用戶占比過少,一期還是優先緩存白天的數據。

(2)門詳頁

門詳頁的容災備份上面提到了,我們只需要考慮如何緩存門店分類數據和商品數據,分類數據一個門店最多幾百個,但是商品可能往往上萬,掏出小本本,我們再算一筆賬:我們現在百萬+門店,每個門店的商品乘以每條商品數據平均按1kb算,那么成本預估15W元+/月,領導聽完匯報臉又黑了。

策略選擇

我們經過討論后,決定先對每個末級分類的前兩頁商品進行緩存,并且剔除掉閉店的門店。經過策略估算后,緩存量級可以壓縮到900元/月

(3)引入GIZP壓縮

經過實踐后發現,gizp壓縮對于純文本的壓縮預估能節省60%的空間,但是需要注意的是QUERY數據解壓縮的性能耗時。我們在進行設計的時候,把所有的數據全部轉化成String字符串,并且通過gizp壓縮。最終得到以下備份數據量級:

?
首頁 頻道頁 門詳頁
壓縮前 1087GB 3624GB 300GB
壓縮后 652GB 2174GB 180GB
最終成本 1956元/月 6522元/月 540元/月

至此,整個容災數據備份量級壓縮方案可行,相比于最初的500W+/月,降低到了9018元/月。(還要啥自行車?領導當即拍板,趕緊做完上線)

4、DIFF思路-如何去和線上做DIFF?

(1)首頁、頻道頁

到了驗證環節了,因為我們無法完全和GIS的網格重合,那么我們需要一套規則來做DIFF驗證網格的熱點poi數據備份是否和線上poi數據返回一致(不可能100%一致,但是需要知道是否達到90%以上的效果),我們選擇六邊形網格的六個定點poi以及中心poi,共計7個poi去請求線上,并且用返回的數據和熱點poi請求返回的數據做DIFF,核心39城每個城市抽查10組,最終得到一個比例。然后通過不同的空間索引精度,去挨個驗證出一個最佳的索引精度。

wKgaoma9nyCAE68TAACsEuPISiU541.png

(2)門詳頁

門詳DIFF驗證,抽選出重點KA門店,定時任務check門店下的分類和商品情況。如果抽查整體DIFF異常率超過30%,我們則會觸發新一輪的異構任務。

wKgZoma9nyGAaN-4AAKibYtu0I8245.png

五、落地過程

上面的方案構思經過無數次的推演以及前期驗證確保了方案的可行性。那么接下來就是到了落地環節,在這個環節里,我們發現其實客戶端本身也有緩存,但是緩存的大小非常有限。客戶端采用的localStorage本地緩存存儲,是基于用戶的手機內存做的,5M左右的大小空間。所以適合做一些兜底災備的緩存,比如服務端徹底down的情況下,應急去讀客戶手機內存緩存。用戶每次成功請求服務端后,都會重寫更新緩存,于是,一個可行(邪惡


審核編輯 黃宇

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 數據中心
    +關注

    關注

    16

    文章

    4859

    瀏覽量

    72381
  • LBS
    LBS
    +關注

    關注

    0

    文章

    44

    瀏覽量

    18074
  • 數據備份
    +關注

    關注

    0

    文章

    57

    瀏覽量

    11890
  • SOA
    SOA
    +關注

    關注

    1

    文章

    293

    瀏覽量

    27574
收藏 人收藏

    評論

    相關推薦

    賽門鐵克醫療行業高可用及解決方案

    磁盤陣列發生故障或人為誤操作導致數據丟失的時候,才發現悔之晚矣!     3、 雖然關心,但由于各種原因目前大多數國內的醫院在建設IT系統
    發表于 11-13 22:26

    基于重復數據刪除技術的數據系統的研究

    安全的存儲服務和實用的性能保證。本文結合現今企業海量數據的增長給備份系統帶來…【關鍵詞】:重復數據
    發表于 04-24 09:19

    數據備份存儲設備分類

    數據備份有了一定的認識,如何充分利用當前主流的數據備份技術構建企業或個人內部的數據
    發表于 11-19 11:55

    看不見的戰斗——阿里云護航世界杯直播實踐

    級切換,級恢復。2、網絡主備,所有組件的接入網絡都是多線、多出口,不會因為單一運營商,單一網絡產品的故障,導致服務不可用。3、異地,在多個中心同時部署
    發表于 07-12 16:02

    一種基于Internet的系統關鍵技術

    本文提出并實現了一個基于非專線Internet 的遠程系統。通過研發的本地數據監控和異地重放、差錯控制、服務切換等關鍵技術,解決了遠程
    發表于 08-22 11:35 ?9次下載

    數據備份的等級及關鍵技術

    數據備份的等級   備份是通過在異地建立
    發表于 08-04 10:17 ?921次閱讀

    基于虛擬存儲技術構建備份系統李懷江

    基于虛擬存儲技術構建備份系統_李懷江
    發表于 03-15 08:00 ?0次下載

    阿里云發布國內首個大數據雙活服務

    摘要:?在6月上旬舉行的云棲大會上海峰會上,阿里云發布了國內首個大數據集群雙活產品-混合云服務
    發表于 08-15 16:35 ?334次閱讀

    混合云存儲跨云備方案跨云備份

    。最后,云廠商內部眾多產品也有內部協調,傳統廠商的產品無法實現這一點。對于專有云(私有云)和混合云場景的用戶,存在同樣的問題。2.價格昂貴,部署復雜:傳統備份產品面向的依舊還是傳統
    發表于 08-23 16:53 ?369次閱讀

    數據安全而生,阿里云備份方案場景實踐解析

    服務發布首個公有云大數據備解決方案?;旌显?b class='flag-5'>容服務
    發表于 08-28 14:38 ?466次閱讀

    業界最全,阿里云混合云服務上線!

    摘要:?8月22日,阿里云發布了混合云備份服務和混合云服務,提供云上備份與云
    發表于 08-28 15:58 ?375次閱讀

    內蒙古聯合浪潮為遠程備份解決方案

    趨向零距離。數據作為電子政務的重要資產,其可靠性和安全性不言而喻。 近日,內蒙古自治區聯合浪潮,基于以浪潮閃存存儲AS5000G5為核心的遠程備份解決方案,共同
    的頭像 發表于 10-14 10:12 ?2106次閱讀

    一種基于區塊鏈的電力數據備份方案

    新的電力數據備份方案,并在開源區塊鏈平臺以太坊上進行原型系統實現。分析與實驗結果表明,該方案能夠保證備份數據的一致性、不可篡改性和機密性
    發表于 05-24 15:22 ?8次下載

    異地系統的常見操作配置/刪除異地系統

    本期將以自動倒換(三方站點仲裁)異地方案為例,繼續介紹常見操作連接/分離主用站點和備用站點產品的差異對比、用戶影響與使用場景等。
    的頭像 發表于 11-11 20:50 ?1121次閱讀

    龍芯中科攜手英方軟件打造國產備份一體機解決案例

    為解決國產服務器的供給問題,彌補系統建設存在的諸多缺陷,近日,龍芯中科技術股份有限公司聯合上海英方軟件股份有限公司打造國產
    的頭像 發表于 08-29 09:56 ?1170次閱讀
    龍芯中科攜手英方軟件打造國產<b class='flag-5'>容</b><b class='flag-5'>災</b><b class='flag-5'>備份</b>一體機解決案例
    百家乐官网大小是什么| 至尊百家乐官网娱乐网| 威尼斯人娱乐城线上赌场| 安桌百家乐官网游戏百家乐官网 | 大发888游戏平台103| 网上百家乐骗人不| 百家乐官网娱乐城主页| 澳门足球博彩官网| 百家乐赌场论坛博客| 百家乐官网反缆公式| 孟津县| 大发888娱乐城登录| 南京百家乐赌博现场被| 租nongcun房看风水做生意的| 百家乐官网投注方法网| 吉木萨尔县| 易胜博娱乐城| 大发888充值平台| 如何打百家乐的玩法技巧和规则 | 澳门百家乐官网洗码提成查询| 百家乐导航| 大发888bet娱乐场下载| 百家乐英皇娱乐场开户注册| 马牌百家乐现金网| 大发百家乐官网的玩法技巧和规则 | 威尼斯人娱乐城投注| 百家乐娱乐网送68元| 百家乐官网博彩网太阳城娱乐城| 太阳城百家乐官网网址--| 百家乐官网视频游戏账号| 东兰县| 嘉祥县| 百家乐官网心态研究| 丹阳市| 凉山| 磐石市| 百家乐官网体育nba| 瑞博网站| 优博平台代理开户| 喜洋洋水果机遥控器| 大发888真人网站|