易華錄 X ShardingSphere|葫蘆 App 後臺資料處理的邏輯捷徑
“ShardingSphere 大大簡化了分庫分表的開發和維護工作,對於業務的快速上線起到了非常大的支撐作用,保守估計 ShardingSphere 至少為我們節省了 4 個月的研發成本。”
——史墨軒,易華錄·技術總監
今年以來,伴隨著易華錄旗下面向個人使用者的雲服務產品【葫蘆 App】正式上線,後臺架構所承受的業務壓力也與日俱增。
為此,葫蘆 App 研發團隊選擇採用 ShardingSphere 分庫分表的功能對資料進行了橫向的拆分,圍繞 ShardingSphere 靈活敏捷的特性,滿足了葫蘆 App 業務對資料層擴充套件性的要求,避免團隊重複“造輪子”,最大程度簡化了隨著業務增長而帶來的愈發複雜化的分庫分表的開發與維護工作。
1 從能力擴充套件到業務上新,葫蘆 App 所面臨的增長壓力
對於資料存算能力的高要求,深深鑄在了葫蘆 App 技術團隊的基因中。
由於葫蘆 App 正處於快速成長期,業務和功能的調整需求相對頻繁,這就需要後臺技術團隊能夠根據前端業務變化而快速做出適配調整。使用者數量和業務所產生的資料體量都在飛速增長的同時,也為後臺底層資料庫帶來了更大的壓力。
隨著 2020 年 5 月 17 日葫蘆 App 的正式上線,使用者資料和業務體量也呈現出快速增長的態勢,後臺資料庫不可避免地需要進行多次水平拆分。同時隨著業務需求的快速變化,新的挑戰也不斷隨之出現:
-
能力擴充套件問題
隨著使用者量的快速增長以及產品形態的演變,使用者資料出現了爆發式增長,過去傳統架構的存算能力遭到了極為嚴峻的挑戰,因此葫蘆App 對於後端資料處理平臺的要求是在具備擴充套件能力的同時,也要保證一定的靈活性。
-
效率提升問題
為應對快速多變的業務,葫蘆 App 的研發團隊需要能夠根據業務訴求來進行快速調整,以提升後臺架構對業務的適應性,高靈活、易擴充特性的資料架構將能夠極大提升團隊研發效能。另一方面在大體量資料的影響下,資料庫的檢索效率難免出現延遲、讀寫慢等問題,進而會影響到最上層的使用者體驗。
-
業務上線問題
功能上新頻繁、上線時間提前等是任何一款新產品在上市初期都會遇到的問題,這對研發團隊的研發能力提出了極大挑戰。此前葫蘆團隊本計劃透過內部研發力量並結合業務情況打造出自己的 Sharding 方案,不過由於時間關係,從方案設計、研發再到方案落地的自研路線已無法走通,因此敲定 Sharding 方案迫在眉睫。
-
系統穩定問題
在引入新技術的同時,系統穩定性也會面臨較大的挑戰,尤其是面向底層技術的引用,大多具備一定的平臺業務侵入性,在引入後大機率會對業務系統的穩定性產生一定影響。葫蘆 App 研發團隊需要一款對底層資料庫侵入性低、適應期短、穩定性高的資料應用產品。
2 利用 ShardingSphere 的特性構建靈活高可用的資料架構解決方案
圍繞上述的一些訴求,葫蘆團隊用了 2 周左右時間對 ShardingSphere 及同類解決方案進行了全面評估,綜合考慮瞭如產品功能、成熟度、穩定性、效能等多方面評估指標,最終 ShardingSphere 憑藉完善的功能支援程度以及高成熟度,充分滿足了葫蘆團隊的業務訴求。
從上圖中可以看出,葫蘆團隊將 ShardingSphere 部署在了阿里雲的 RDS 之上,相較於對本體資料庫做調整,葫蘆團隊更傾向於在資料庫之上來進行資料治理。而 ShardingSphere 能夠從可插拔架構所帶來高擴充套件性、距離業務更緊密的貼合性以及對於業務架構的零侵入性這三個層面對葫蘆的後臺資料架構進行有效改進,並帶來了明顯的效果提升:
可插拔架構的『高擴充套件性』
由於業務特性,葫蘆 App 原本有限的儲存空間被消耗得非常快,並逐漸開始影響使用者在前端的響應效率。透過採用 ShardingSphere 的分片策略,葫蘆研發團隊在應對海量計算+儲存所帶來的業務問題同時,能夠確保分片擴充套件策略的靈活性。基於此,葫蘆團隊可以在ShardingSphere 上快速做出相應的功能擴充套件,為後續架構調整提供最佳化方案,進一步強化突出了 ShardingSphere 分庫分表的優勢。
距離業務更緊密的『貼合性』
後臺架構的變化越小,對於業務而言就越可控。ShardingSphere 這種位於資料庫之上的生態,距離業務更近,部署起來也更加輕量,無疑是解決葫蘆 App 前臺業務變更與後臺架構調整之間矛盾的最優解。此外在靈活性層面,ShardingSphere 透過相關配置即可實現的方式,極大簡化了葫蘆研發團隊在分庫分表層面的研發與維護工作,對於業務的快速上線起到了非常大的支撐作用。
對於業務架構的『零侵入性』
葫蘆 App 選擇了 ShardingSphere-Proxy 部署模式,在不更換底層資料庫的前提下透過 Proxy 來管理真實的資料庫叢集,基本無需對業務進行改造就已經完成了業務與資料在架構層面的分離,並避免了因更換資料庫導致的業務不可用、漫長穩定週期等風險。另外,ShardingSphere 的無狀態模式,幾乎不會對前端使用者產生任何可感知的影響,業務層也無需關注資料的儲存方式。
因此對於葫蘆 App 這種上線時間緊張、功能迭代快的產品來說,ShardingSphere-Proxy 透過複用原有資料庫的能力,幫助葫蘆研發團隊在資料庫之上實現分片、資料加密等增量能力的開發,且向下不需考慮底層資料庫的配置,向上能夠遮蔽使用者感知,從而快速構建起面向業務的資料庫直連能力,從系統架構層面進行了比較好的分離,確保後續資料庫代理層的問題修復、版本更新等日常維護工作都不會影響到業務。
3 寫在最後
此次與易華錄葫蘆 App 研發團隊的合作,助力葫蘆研發團隊平穩度過了數次業務體量翻倍的歷程,正是 ShardingSphere 在全球多種應用場景下的一個縮影。在商業化公司 SphereEx 的推動下,ShardingSphere 正在持續向著雲化、商業化穩步邁進。在社群和商業化公司的雙重加持下,未來 ShardingSphere 將繼續深耕資料應用場景,持續挖掘 ShardingSphere 在各領域場景下的深層次價值,為使用者提供覆蓋更全面、效能更強大的資料服務。
關於易華錄 & 葫蘆 App
北京易華錄資訊科技股份有限公司,成立於 2001 年,是國務院國資委直接監管的中央企業中國華錄集團旗下控股的上市公司,致力於建設城市數字經濟基礎設施,以努力降低全社會長期儲存資料的能耗和成本為使命,以成為社會可信的大資料一級開發和儲存服務提供商直至演變成資料銀行為願景,構建一個數字孿生的城市,最終實現數字永生。
作為易華錄內部孵化的第一款 C 端產品,葫蘆 App 能夠將使用者生產內容的構思與素材妥善儲存下來,並提供故事化的記錄方式,降低使用者內容製作門檻,讓每個使用者都能將生活的美好生動地展現出來,發現個人生活的精彩之處。為使用者儲存一生,點亮美好。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70001955/viewspace-2789603/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 悶葫蘆程式設計師程式設計師
- Docker+Spark+Jupyter=文字資料處理邏輯測試平臺容器化DockerSpark
- 提供好玩的安卓遊戲下載 - 黑葫蘆安卓遊戲
- MySQL邏輯查詢處理MySql
- SAP gateway處理multiple key的邏輯Gateway
- 查詢處理的邏輯順序
- 小葫蘆資料研究院:2020遊戲直播行業資料包告遊戲行業
- 小葫蘆:2021五五開黑節資料包告(附下載)
- Spring MVC的請求處理邏輯SpringMVC
- 小葫蘆直播資料 :2020年4月10號羅永浩直播資料
- 後臺處理
- Spring Cloud Stream消費失敗後的處理策略(二):自定義錯誤處理邏輯SpringCloud
- 計算機程式的思維邏輯 (93) – 函式式資料處理 (下)計算機函式
- 計算機程式的思維邏輯 (93) - 函式式資料處理 (下)計算機函式
- 計算機程式的思維邏輯 (92) - 函式式資料處理 (上)計算機函式
- 小葫蘆大資料:2022年4月遊戲直播價值榜大資料遊戲
- 淺談zip格式處理邏輯漏洞
- 杉巖:成功沒有捷徑,但雙中心資料讀寫有“捷徑”
- 璞華易構:真正的低程式碼平臺,讓業務處理更加自由自在
- Android 優雅地處理後臺返回的騷資料Android
- 小葫蘆大資料:短視訊創作者作品釋出時間研究報告大資料
- 小葫蘆資料研究院:2021年遊戲直播行業洞察報告遊戲行業
- 物理DG與邏輯DG的區別與邏輯DG同步異常處理方法
- 邏輯資料庫的管理資料庫
- 剖析大資料平臺的資料處理大資料
- Nginx(二): worker 程式處理邏輯-流程框架Nginx框架
- WM-QM未清TR處理邏輯
- Android 介面顯示與邏輯處理Android
- 《快學 Go 語言》第 7 課 —— 冰糖葫蘆串Go
- 用後臺開發的邏輯理念學習VUEVue
- 用資料解讀直播競答APP的營銷邏輯APP
- Amazon Redshift簡化資料管道背後的技術邏輯
- Windows邏輯備份-EXPDP(保留5天內邏輯備份)批處理指令碼Windows指令碼
- 小葫蘆大資料:2021中國垂類電競KOL發展洞察行業報告大資料行業
- APP攻防--安卓逆向&資料修改&邏輯修改&檢視修改APP安卓
- 電商後臺系統產品邏輯全解析
- ETL中後設資料處理的方式
- Apache ShardingSphere 後設資料載入剖析Apache