合合信息啟信產(chǎn)業(yè)大腦攜手市北新區(qū)打造“一企一畫(huà)像”平臺(tái),加速數(shù)字化轉(zhuǎn)型重慶:力爭(zhēng)今年智能網(wǎng)聯(lián)新能源汽車(chē)產(chǎn)量突破 100 萬(wàn)輛,到 2027 年建成萬(wàn)億級(jí)產(chǎn)業(yè)集群微信iOS最新版上線:iPhone用戶可在朋友圈發(fā)實(shí)況照片了蘋(píng)果有線耳機(jī)或?qū)⑼.a(chǎn)沖上熱搜!閑魚(yú)相關(guān)搜索量暴漲384%2024 vivo開(kāi)發(fā)者大會(huì)官宣:OriginOS 5/自研藍(lán)河系統(tǒng)2降臨真·AI程序員來(lái)了,阿里云「通義靈碼」全面進(jìn)化,全流程開(kāi)發(fā)僅用幾分鐘東方甄選烤腸全網(wǎng)銷量及銷售額領(lǐng)先鴻蒙PC要來(lái)了 界面很漂亮!余承東:目前華為PC將是最后一批搭載Windows上半年中國(guó)AR/VR出貨23.3萬(wàn)臺(tái),同比下滑了 29.1%IDC:2024 上半年中國(guó) AR / VR 頭顯出貨 23.3 萬(wàn)臺(tái),同比下滑 29.1%英特爾AI加速器Gaudi3下周發(fā)布,挑戰(zhàn)NVIDIA統(tǒng)治地位!大屏技術(shù)邂逅千年色彩美學(xué)!海信激光電視成為電影《只此青綠》官方合作伙伴OpenAI將最新AI模型o1擴(kuò)展到企業(yè)和教育領(lǐng)域三星新專利探索AR技術(shù)新應(yīng)用:檢測(cè)屏幕指紋殘留,提高手機(jī)安全性猛瑪傳奇C1:直播圖傳技術(shù)的革新者JFrog推出首個(gè)運(yùn)行時(shí)安全解決方案,實(shí)現(xiàn)從代碼到云的全面軟件完整性和可追溯性亞馬遜推出一大波生成式 AI 工具,購(gòu)物體驗(yàn)全面升級(jí)機(jī)器人公司1X推出世界模型Apple Intelligence測(cè)試版現(xiàn)已開(kāi)放革命性AI對(duì)話系統(tǒng)Moshi問(wèn)世:機(jī)器也能說(shuō)人話了?
  • 首頁(yè) > 數(shù)據(jù)存儲(chǔ)頻道 > 數(shù)據(jù).存儲(chǔ)頻道 > 半導(dǎo)體

    ShardingSphere + Database Mesh 愛(ài)奇藝的云上數(shù)據(jù)治理實(shí)踐

    2022年12月19日 18:03:07   來(lái)源:愛(ài)奇藝技術(shù)產(chǎn)品團(tuán)隊(duì)

      今年 5 月,SphereEx 正式對(duì)外提出了 Database Mesh 2.0 理念。關(guān)于 Database Mesh,其不是靜態(tài)的定義,而是一個(gè)在不斷進(jìn)化的動(dòng)態(tài)概念。Database Mesh 始終關(guān)注對(duì)數(shù)據(jù)庫(kù)流量的治理,基于數(shù)據(jù)庫(kù)協(xié)議感知能力,提供數(shù)據(jù)分片、負(fù)載均衡、可觀測(cè)性、審計(jì)等能力,這些能力已經(jīng)解決了數(shù)據(jù)庫(kù)治理中屬于流量治理的部分問(wèn)題。此外 Database Mesh 也關(guān)注數(shù)據(jù)庫(kù)可靠性工程的建設(shè),面向不同角色提供更易用、更極致的數(shù)據(jù)庫(kù)治理能力。

      愛(ài)奇藝十分認(rèn)同 Database Mesh 的理念以及愿景,即『在云端實(shí)現(xiàn)數(shù)據(jù)庫(kù)的高性能擴(kuò)展以及解決數(shù)據(jù)治理難題』。因此,愛(ài)奇藝基于自身需要對(duì) ShardingSphere-JDBC 進(jìn)行了擴(kuò)展,并結(jié)合 Database Mesh 理念的具體實(shí)現(xiàn)--Pisanix 進(jìn)行了一系列關(guān)鍵測(cè)試,逐步向 Database Mesh 架構(gòu)演進(jìn)。

      隨著業(yè)務(wù)擴(kuò)張與用戶數(shù)量激增,所接入的各類活動(dòng)(例如秒殺)也在增長(zhǎng),瞬間巨大流量的涌入也為數(shù)據(jù)庫(kù)帶來(lái)了不小的壓力,進(jìn)而導(dǎo)致企業(yè)在應(yīng)用數(shù)據(jù)庫(kù)的過(guò)程中出現(xiàn) slave 延遲、慢查詢以及部分操作無(wú)法滿足業(yè)務(wù)需要等問(wèn)題。在微服務(wù)架構(gòu)以及云原生的加速下,雙方的結(jié)合為業(yè)務(wù)上線發(fā)布和治理帶來(lái)了新的可能。不過(guò)隨著業(yè)務(wù)場(chǎng)景越來(lái)越多元,數(shù)據(jù)應(yīng)用的方案呈現(xiàn)煙囪狀,對(duì)數(shù)據(jù)的管控有孤島化的趨勢(shì),擺在技術(shù)人員面前的是“選型難、成本高、管控復(fù)雜”等問(wèn)題。

      尤其是在云原生日漸成熟的今天,業(yè)務(wù)應(yīng)用和數(shù)據(jù)庫(kù)等基礎(chǔ)設(shè)施的關(guān)系正在潛移默化中改變,愛(ài)奇藝希望通過(guò)把握云原生架構(gòu)的新趨勢(shì),采用統(tǒng)一化管理的方式,實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的擴(kuò)展和升級(jí),以支撐更多應(yīng)用與業(yè)務(wù)上云。

      為了滿足業(yè)務(wù)團(tuán)隊(duì)在云上環(huán)境中對(duì)于數(shù)據(jù)庫(kù)性能、可用性等方面的高要求,愛(ài)奇藝需要將 ShardingSphere 在本地的分布式能力遷移至云端,并尋找一款能夠在云原生環(huán)境下統(tǒng)一云端數(shù)據(jù)庫(kù)流量入口、對(duì)云上流量以及數(shù)據(jù)進(jìn)行統(tǒng)一高效治理的工具。

      愛(ài)奇藝在調(diào)研并配合測(cè)試反饋由 SphereEx 社區(qū)提供的 Database Mesh 解決方案--Pisanix 的同時(shí),也基于 ShardingSphere 社區(qū)的 ShardingSphere-JDBC 進(jìn)行二次開(kāi)發(fā),以滿足目前業(yè)務(wù)接入數(shù)據(jù)庫(kù)治理平臺(tái)中對(duì)于數(shù)據(jù)分片、負(fù)載均衡、配置存儲(chǔ)與安全等需求。

      目前愛(ài)奇藝使用統(tǒng)一配置中心存儲(chǔ)數(shù)據(jù)庫(kù)連接配置,使用 KMS 相關(guān)技術(shù)加密數(shù)據(jù)庫(kù)訪問(wèn)配置,使用 ShardingSphere-JDBC 滿足數(shù)據(jù)分片和負(fù)載均衡相關(guān)的需求,整體架構(gòu)如下圖。

      愛(ài)奇藝云原生數(shù)據(jù)庫(kù)體系

      當(dāng)業(yè)務(wù)接入數(shù)據(jù)治理平臺(tái)時(shí),通過(guò)申請(qǐng)相關(guān)的連接配置,在經(jīng)過(guò)轉(zhuǎn)化和訪問(wèn)信息通過(guò) KMS 加密后存儲(chǔ)進(jìn)統(tǒng)一配置存儲(chǔ)中心;當(dāng)應(yīng)用啟動(dòng)時(shí),通過(guò)改進(jìn)過(guò)后的 ShardingSphere-JDBC 拉取配置并監(jiān)聽(tīng)配置變更以支持配置熱更新。

      在改進(jìn)之前,如果遇到修改配置、Sharding 集群擴(kuò)容、集群版本升級(jí)、數(shù)據(jù)庫(kù)遷移和上云等場(chǎng)景時(shí),往往需要針對(duì)業(yè)務(wù)服務(wù)進(jìn)行重新發(fā)版,并且業(yè)務(wù)方需針對(duì)相關(guān)場(chǎng)景設(shè)計(jì)如切換和回滾、選擇時(shí)間點(diǎn)、流量灰度以及數(shù)據(jù)校對(duì)等復(fù)雜操作流程。

      改進(jìn)后,對(duì)于配置中新增或修改分表配置,定制化的 ShardingSphere-JDBC能夠?qū)?Sharding 集群的擴(kuò)縮容或改綁起到很好的支持作用。通過(guò)在配置中心白屏操作修改配置或綁定集群,主動(dòng)選擇配置重新加載時(shí)機(jī),當(dāng) SDK 端接收到最新配置,會(huì)使用異步任務(wù)進(jìn)行老連接池的關(guān)閉并替換現(xiàn)有連接池,做到讀寫(xiě)流量的平滑遷移, 大大降低了相關(guān)數(shù)據(jù)治理能力平滑遷移至云上環(huán)境的難度。

      在愛(ài)奇藝的規(guī)劃中,未來(lái)規(guī)劃通過(guò)接入 Database Mesh 并引入 Pisanix-Proxy,進(jìn)一步將數(shù)據(jù)治理能力從 SDK 下沉到 Sidecar 中。

      在流量入口層,隨著云原生應(yīng)用微服務(wù)化、Serverless 化,用戶需要面對(duì)復(fù)雜路由規(guī)則可配置、支持多種應(yīng)用層協(xié)議、服務(wù)訪問(wèn)的安全性以及流量的可觀測(cè)性等訴求。關(guān)于這部分,愛(ài)奇藝最早是通過(guò)中間件統(tǒng)一管理 Redis 和 MySQL。

      除此以外,為了更好支持愛(ài)奇藝的混合云部署方案,SmartJedis 支持了統(tǒng)一配置中心,在統(tǒng)一的配置中心中動(dòng)態(tài)支持不同環(huán)境下的配置,在非網(wǎng)格環(huán)境中使用直連的方式,在網(wǎng)格環(huán)境中使用 Envoy 中的 RedisProxy 管理 Redis 協(xié)議流量并支持連接配置的熱更新,避免了 Redis 上云后需要業(yè)務(wù)重新發(fā)版的問(wèn)題。

      在 MySQL 部分,愛(ài)奇藝研發(fā)團(tuán)隊(duì)測(cè)試了 Database Mesh 的具體實(shí)踐--Pisanix。Pisanix 由 Go 及 Rust 編寫(xiě),適配 Kubernetes 環(huán)境,目前已支持 MySQL 協(xié)議。其主要包括 Pisa-Controller、Pisa-Proxy 和 Pisa-Daemon 三個(gè)組件,為用戶應(yīng)用提供『本地即數(shù)據(jù)庫(kù)』的訪問(wèn)體驗(yàn),實(shí)現(xiàn)支持多協(xié)議的可插拔架構(gòu)、屏蔽真實(shí)數(shù)據(jù)源狀態(tài),為數(shù)據(jù)運(yùn)維人員提供統(tǒng)一的數(shù)據(jù)庫(kù)流量管控能力。

      目前愛(ài)奇藝在系統(tǒng)仍然是基于 ShardingSphere-JDBC 來(lái)支持 Java 應(yīng)用,未來(lái) Pisanix 在愛(ài)奇藝的系統(tǒng)中得到進(jìn)一步落地后,愛(ài)奇藝將通過(guò) Pisanix 實(shí)現(xiàn)標(biāo)準(zhǔn)化的數(shù)據(jù)庫(kù)自動(dòng)維護(hù)體驗(yàn),并通過(guò)支撐多語(yǔ)言應(yīng)用來(lái)完成多種數(shù)據(jù)庫(kù)治理行為的云原生編排。另外借助各種 Database Mesh 的標(biāo)準(zhǔn) CustomResourceDefinition,比如統(tǒng)一的數(shù)據(jù)庫(kù)接入聲明配置、可編程的數(shù)據(jù)庫(kù)訪問(wèn)資源限制等,愛(ài)奇藝也將能夠快速實(shí)現(xiàn)云原生數(shù)據(jù)庫(kù)的治理編排。

      01 數(shù)據(jù)分片,在云端提供接近 ShardingSphere-JDBC 的性能

      數(shù)據(jù)分片是應(yīng)對(duì)海量數(shù)據(jù)存儲(chǔ)與計(jì)算的有效手段,這也是愛(ài)奇藝在云原生非 Java 語(yǔ)言場(chǎng)景中傾向于 Pisanix 的動(dòng)機(jī)之一。在數(shù)據(jù)分片的全部環(huán)節(jié)中,主要包含了 SQL 解析、SQL 改寫(xiě)、SQL 路由、結(jié)果歸并這 4 個(gè)重要模塊。

      其中,為配合將 ShardingSphere 本地強(qiáng)大的分片能力遷移至云端,Pisanix 基于底層數(shù)據(jù)庫(kù)在云端提供了數(shù)據(jù)分片的治理能力,用戶可以通過(guò) Pisanix 實(shí)現(xiàn)水平擴(kuò)展計(jì)算。同時(shí)開(kāi)放更多自定義指標(biāo),為 Pisa-Proxy 實(shí)現(xiàn)更智能、更穩(wěn)定的高級(jí)自動(dòng)擴(kuò)容能力。

      基于 Pisa-Controller 控制面,愛(ài)奇藝能夠?qū)崿F(xiàn)對(duì)數(shù)據(jù)面組件的管控,配合 Pisa-Proxy,以 Sidecar 方式與業(yè)務(wù)應(yīng)用部署在同一個(gè) Pod 中,用以監(jiān)聽(tīng) MySQL 協(xié)議獲取應(yīng)用訪問(wèn)數(shù)據(jù)庫(kù)的流量。在此基礎(chǔ)上,Pisanix 還為愛(ài)奇藝提供了多種治理能力:

      SQL 流量治理:通過(guò)解析 SQL,實(shí)現(xiàn)多種負(fù)載均衡策略、限流等;

      訪問(wèn)控制:根據(jù)用戶和數(shù)據(jù)權(quán)限關(guān)系,實(shí)現(xiàn)細(xì)粒度的權(quán)限控制;

      SQL 防火墻:阻止高危 SQL 語(yǔ)句執(zhí)行;

      可觀測(cè)性:暴露各種數(shù)據(jù)庫(kù)訪問(wèn)指標(biāo):如吞吐、延時(shí)等。

      對(duì)于愛(ài)奇藝而言,基于 Pisanix 實(shí)現(xiàn) Java 業(yè)務(wù)和非 Java 業(yè)務(wù)都能夠在云環(huán)境下的高性能分片,將確保更多業(yè)務(wù)未來(lái)能夠在 Pisanix 的支持下順暢運(yùn)轉(zhuǎn)。

      2、讀寫(xiě)分離,有效提升數(shù)據(jù)庫(kù)吞吐量

      為了達(dá)到提升系統(tǒng)吞吐量以及可用性等需求,許多系統(tǒng)往往會(huì)采用主從數(shù)據(jù)庫(kù)架構(gòu)的配置模式,但是這種主從模式也為業(yè)務(wù)的使用帶來(lái)了一定的復(fù)雜性。因此,在讀請(qǐng)求明顯高于寫(xiě)請(qǐng)求的情況下,需要在此基礎(chǔ)上使用讀寫(xiě)分離來(lái)突破數(shù)據(jù)庫(kù)在實(shí)際應(yīng)用場(chǎng)景中性能瓶頸問(wèn)題。

      作為業(yè)界在主從場(chǎng)景下提升數(shù)據(jù)庫(kù)吞吐量最常用的技術(shù)方案之一,讀寫(xiě)分離能夠達(dá)到在實(shí)際場(chǎng)景中提高查詢性能、降低服務(wù)器負(fù)載的目的。不過(guò)讀寫(xiě)分離也帶來(lái)了與數(shù)據(jù)分片同樣的問(wèn)題,它同樣會(huì)使得應(yīng)用開(kāi)發(fā)以及運(yùn)維人員對(duì)數(shù)據(jù)庫(kù)的操作變得更加復(fù)雜。

      目前愛(ài)奇藝通過(guò)一主多從的配置方式,將查詢請(qǐng)求均勻分散到多個(gè)數(shù)據(jù)副本,進(jìn)而提升系統(tǒng)的處理能力。這種方式不但能夠提升系統(tǒng)的吞吐量,還能夠有效提升系統(tǒng)可用性,進(jìn)而達(dá)到在任何一個(gè)數(shù)據(jù)庫(kù)宕機(jī)、甚至磁盤(pán)物理?yè)p壞的情況下仍然不影響系統(tǒng)的正常運(yùn)行的目標(biāo)。

      在規(guī)劃過(guò)程中,愛(ài)奇藝計(jì)劃使用 Pisanix 的動(dòng)態(tài)感知讀寫(xiě)分離功能來(lái)管理多主多從的數(shù)據(jù)庫(kù)集群。在接入 Pisanix 后,愛(ài)奇藝將可以利用讀寫(xiě)分離功能管理主從數(shù)據(jù)庫(kù),實(shí)現(xiàn)透明化的讀寫(xiě)分離功能,讓用戶像使用一個(gè)單體數(shù)據(jù)庫(kù)一樣使用主從架構(gòu)的數(shù)據(jù)庫(kù)。

      目前,愛(ài)奇藝內(nèi)部對(duì) ShardingSphere-JDBC 的改造已經(jīng)基本完成,未來(lái)也將計(jì)劃應(yīng)用 Pisanix 配合 ShardingSphere 的能力,在愛(ài)奇藝內(nèi)部實(shí)現(xiàn)對(duì) MySQL 的統(tǒng)一治理。在 ShardingSphere 社區(qū)和 Database Mesh 社區(qū)的大力推動(dòng)下,Pisanix 也將結(jié)合用戶使用場(chǎng)景不斷打磨云上解決方案,為愛(ài)奇藝的業(yè)務(wù)部門(mén)提供可靠的技術(shù)支撐,加速云上業(yè)務(wù)拓展。

      不過(guò),畢竟 Pisanix 是一個(gè)非常年輕的項(xiàng)目,因此在實(shí)際應(yīng)用中還是存在一些不足。在愛(ài)奇藝的測(cè)試應(yīng)用過(guò)程中,目前 Pisanix 對(duì)于分庫(kù)分表的表達(dá)式支持程度有限,對(duì)于 SQL 的特殊配置程度有待進(jìn)一步提升。此外如 Pisanix 運(yùn)行狀況的可視化、metrics、熔斷降級(jí)策略、trace 等與線上性能相關(guān)的能力將會(huì)是社區(qū)接下來(lái)的發(fā)展重點(diǎn)。SQL 審計(jì)、Pisa-Controller 與 Istio 合并等兼容性及性能問(wèn)題,也已經(jīng)被社區(qū)所注意到并提上了日程。

      未來(lái)愛(ài)奇藝將基于 ShardingSphere-JDBC 以及 Database Mesh 理念正在迭代中的 Pisanix,搭建起基于 MySQL 的統(tǒng)一數(shù)據(jù)訪問(wèn)規(guī)范和解決方案。通過(guò)統(tǒng)一配置中心與定制化 sidecar,愛(ài)奇藝將逐步實(shí)現(xiàn)數(shù)據(jù)庫(kù)訪問(wèn)細(xì)節(jié)對(duì)業(yè)務(wù)開(kāi)發(fā)人員完全透明,降低使用復(fù)雜度的同時(shí)增強(qiáng)數(shù)據(jù)庫(kù)訪問(wèn)的安全性,加速構(gòu)建數(shù)據(jù)庫(kù)統(tǒng)一配置中心,協(xié)助應(yīng)用上云。

      文章內(nèi)容僅供閱讀,不構(gòu)成投資建議,請(qǐng)謹(jǐn)慎對(duì)待。投資者據(jù)此操作,風(fēng)險(xiǎn)自擔(dān)。

    即時(shí)

    TCL實(shí)業(yè)榮獲IFA2024多項(xiàng)大獎(jiǎng),展示全球科技創(chuàng)新力量

    近日,德國(guó)柏林國(guó)際電子消費(fèi)品展覽會(huì)(IFA2024)隆重舉辦。憑借在核心技術(shù)、產(chǎn)品設(shè)計(jì)及應(yīng)用方面的創(chuàng)新變革,全球領(lǐng)先的智能終端企業(yè)TCL實(shí)業(yè)成功斬獲兩項(xiàng)“IFA全球產(chǎn)品設(shè)計(jì)創(chuàng)新大獎(jiǎng)”金獎(jiǎng),有力證明了其在全球市場(chǎng)的強(qiáng)大影響力。

    新聞

    敢闖技術(shù)無(wú)人區(qū) TCL實(shí)業(yè)斬獲多項(xiàng)AWE 2024艾普蘭獎(jiǎng)

    近日,中國(guó)家電及消費(fèi)電子博覽會(huì)(AWE 2024)隆重開(kāi)幕。全球領(lǐng)先的智能終端企業(yè)TCL實(shí)業(yè)攜多款創(chuàng)新技術(shù)和新品亮相,以敢為精神勇闖技術(shù)無(wú)人區(qū),斬獲四項(xiàng)AWE 2024艾普蘭大獎(jiǎng)。

    企業(yè)IT

    重慶創(chuàng)新公積金應(yīng)用,“區(qū)塊鏈+政務(wù)服務(wù)”顯成效

    “以前都要去窗口辦,一套流程下來(lái)都要半個(gè)月了,現(xiàn)在方便多了!”打開(kāi)“重慶公積金”微信小程序,按照提示流程提交相關(guān)材料,僅幾秒鐘,重慶市民曾某的賬戶就打進(jìn)了21600元。

    研究

    2024全球開(kāi)發(fā)者先鋒大會(huì)即將開(kāi)幕

    由世界人工智能大會(huì)組委會(huì)、上海市經(jīng)信委、徐匯區(qū)政府、臨港新片區(qū)管委會(huì)共同指導(dǎo),由上海市人工智能行業(yè)協(xié)會(huì)聯(lián)合上海人工智能實(shí)驗(yàn)室、上海臨港經(jīng)濟(jì)發(fā)展(集團(tuán))有限公司、開(kāi)放原子開(kāi)源基金會(huì)主辦的“2024全球開(kāi)發(fā)者先鋒大會(huì)”,將于2024年3月23日至24日舉辦。