日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > windows >内容正文

windows

网易数据运河系统NDC设计与应用

發(fā)布時(shí)間:2024/9/27 windows 50 豆豆
生活随笔 收集整理的這篇文章主要介紹了 网易数据运河系统NDC设计与应用 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

【導(dǎo)語】?NDC是網(wǎng)易近一年新誕生的結(jié)構(gòu)化數(shù)據(jù)傳輸服務(wù),它整合了網(wǎng)易過去在數(shù)據(jù)傳輸領(lǐng)域的各種工具和經(jīng)驗(yàn),將單機(jī)數(shù)據(jù)庫、分布式數(shù)據(jù)庫、OLAP系統(tǒng)以及下游應(yīng)用通過數(shù)據(jù)鏈路串在一起。除了保障高效的數(shù)據(jù)傳輸外,NDC的設(shè)計(jì)遵循了單元化和平臺(tái)化的設(shè)計(jì)哲學(xué),本篇文章將帶大家近距離了解NDC的設(shè)計(jì)思路和實(shí)現(xiàn)原理。


NDC簡介


NDC全名Netease Data Canal,直譯為網(wǎng)易數(shù)據(jù)運(yùn)河系統(tǒng),是網(wǎng)易針對(duì)結(jié)構(gòu)化數(shù)據(jù)庫的數(shù)據(jù)實(shí)時(shí)遷移、同步和訂閱的平臺(tái)化解決方案。

在NDC之前,我們主要通過自研或開源軟件工具來滿足異構(gòu)數(shù)據(jù)庫實(shí)時(shí)遷移和同步的需求,隨著云計(jì)算和公司業(yè)務(wù)的大力推進(jìn),公司內(nèi)部,尤其是運(yùn)維團(tuán)隊(duì)開始對(duì)數(shù)據(jù)遷移工具的可用性、易用性以及其他多樣化功能提出了更多要求和挑戰(zhàn),NDC平臺(tái)化解決方案便應(yīng)運(yùn)而生。NDC的構(gòu)建快速整合了我們之前在結(jié)構(gòu)化數(shù)據(jù)遷移領(lǐng)域的積累,于2016年8月正式立項(xiàng),同年10月就已上線開始為我們的各大產(chǎn)品線提供在線數(shù)據(jù)遷移和同步服務(wù)。

業(yè)界中與NDC類似的產(chǎn)品有阿里云的DTS、阿里開源產(chǎn)品DataX、Canal、Twitter的Databus,在傳統(tǒng)領(lǐng)域有Oracle的GoldenGate、開源產(chǎn)品SymmetricDS。從產(chǎn)品功能、成熟度來看,NDC與阿里云DTS最為相似,都具有簡、快、全三大特性:

  • 簡,使用簡單,有平臺(tái)化的Web管理工具,配置流程簡潔易懂。

  • 快,數(shù)據(jù)同步、遷移和訂閱速度快,執(zhí)行高效,滿足互聯(lián)網(wǎng)產(chǎn)品快速迭代的需求。

  • 全,功能齊全,NDC支持多種常用的異構(gòu)數(shù)據(jù)庫,包括Oracle、MySQL、SQLServer、DB2、PostgreSQL以及網(wǎng)易分布式數(shù)據(jù)庫DDB,除了可以滿足不同數(shù)據(jù)庫之間在線數(shù)據(jù)遷移、實(shí)時(shí)同步之外,NDC也可以實(shí)現(xiàn)從數(shù)據(jù)庫到多種OLAP系統(tǒng)的實(shí)時(shí)數(shù)據(jù)同步和ETL,目前同步目標(biāo)支持的OLAP系統(tǒng)包含Kudu和Greeplum。另外,NDC支持對(duì)數(shù)據(jù)庫做數(shù)據(jù)訂閱,通過將數(shù)據(jù)庫的增量數(shù)據(jù)丟入消息隊(duì)列,使應(yīng)用端可以自由消費(fèi)數(shù)據(jù)庫的實(shí)時(shí)增量數(shù)據(jù),從而實(shí)現(xiàn)由數(shù)據(jù)驅(qū)動(dòng)業(yè)務(wù),復(fù)雜業(yè)務(wù)之間調(diào)用解耦。


提煉場(chǎng)景和需求是做好產(chǎn)品的第一步,本文先通過三種典型應(yīng)用場(chǎng)景介紹NDC的使用價(jià)值,之后從產(chǎn)品形態(tài)和系統(tǒng)架構(gòu)兩方面闡述NDC在產(chǎn)品交互、集群管理、資源調(diào)度以及跨機(jī)房部署上的設(shè)計(jì)理念,最后介紹NDC實(shí)現(xiàn)數(shù)據(jù)遷移、同步和訂閱的一些原理和關(guān)鍵特性,可以為開發(fā)者在實(shí)現(xiàn)類似功能時(shí)提供思路和參考。

應(yīng)用場(chǎng)景


下面通過三個(gè)真實(shí)案例分別說明NDC在數(shù)據(jù)遷移和數(shù)據(jù)訂閱上的應(yīng)用場(chǎng)景。

DDB數(shù)據(jù)遷移

分布式數(shù)據(jù)庫DDB自2006年就開始為網(wǎng)易各大互聯(lián)網(wǎng)產(chǎn)品提供透明的分庫分表服務(wù),在我們的知名互聯(lián)網(wǎng)產(chǎn)品背后,幾乎都可以看到DDB的身影,如考拉、云音樂、云閱讀、教育等。

DDB作為分庫分表的結(jié)構(gòu)化數(shù)據(jù)庫,一張表的數(shù)據(jù)一般存儲(chǔ)在多個(gè)數(shù)據(jù)節(jié)點(diǎn)中,每張表會(huì)選擇一個(gè)或多個(gè)字段作為分區(qū)鍵,來決定數(shù)據(jù)在數(shù)據(jù)節(jié)點(diǎn)上的分布方式。以用戶表為例,有用戶ID作為主鍵,電話號(hào)碼和郵箱作為唯一健,分區(qū)鍵一般會(huì)選擇這三個(gè)字段中的任意一個(gè)或組合。分區(qū)鍵的選擇決定了數(shù)據(jù)分布均勻與否,隨著業(yè)務(wù)數(shù)據(jù)量的增長,可能會(huì)發(fā)現(xiàn)之前選擇的分區(qū)鍵區(qū)分度不夠高,而需要更改分區(qū)鍵的需求,分區(qū)鍵的修改涉及到數(shù)據(jù)重分布,并且修改過程要與業(yè)務(wù)的線上服務(wù)同時(shí)進(jìn)行,這就要求DDB提供在線數(shù)據(jù)遷移的解決方案。

與此類似,在業(yè)務(wù)發(fā)展過程中可能遇到表擴(kuò)容或機(jī)房遷移的情況,都需要DDB的在線數(shù)據(jù)遷移功能,以表擴(kuò)容為例,NDC解決DDB在線數(shù)據(jù)遷移方式如圖1所示。


圖1 NDC解決DDB數(shù)據(jù)遷移問題


當(dāng)DBA發(fā)起一個(gè)修改分區(qū)鍵或擴(kuò)容請(qǐng)求時(shí),管理工具會(huì)統(tǒng)一將其解析成一個(gè)數(shù)據(jù)遷移命令,并向NDC服務(wù)發(fā)起相應(yīng)的調(diào)度請(qǐng)求,NDC則根據(jù)調(diào)度規(guī)則選擇一組執(zhí)行節(jié)點(diǎn)執(zhí)行具體遷移過程,每個(gè)源端數(shù)據(jù)節(jié)點(diǎn)都會(huì)有對(duì)應(yīng)一個(gè)遷移進(jìn)程來拉取該節(jié)點(diǎn)上的全量數(shù)據(jù)和增量數(shù)據(jù),并將這些數(shù)據(jù)通過DDB的分庫分表驅(qū)動(dòng)重新應(yīng)用到目標(biāo)表。當(dāng)目標(biāo)端和源端的數(shù)據(jù)延遲在追趕到毫秒級(jí)范圍內(nèi)后,通過在DDB管理工具上執(zhí)行切換表操作完成最后的遷移工作。

應(yīng)用緩存更新

應(yīng)用緩存更新是NDC數(shù)據(jù)訂閱一類非常典型的應(yīng)用場(chǎng)景,在沒有使用數(shù)據(jù)訂閱做緩存更新的應(yīng)用環(huán)境中,緩存數(shù)據(jù)通常由應(yīng)用服務(wù)器自己維護(hù),但是由于緩存操作和數(shù)據(jù)庫操作不具有事務(wù)性,簡單的緩存操作可能帶來數(shù)據(jù)不一致的情況,如圖2所示。


圖2 緩存數(shù)據(jù)庫不一致問題


在圖2場(chǎng)景中,線程2在將緩存更新到最新數(shù)據(jù)后,又被線程1異步滯后地更新成老數(shù)據(jù),由于線程1和線程2沒有任何狀態(tài)共享,數(shù)據(jù)庫中后操作的數(shù)據(jù)可能在緩存中被先操作的數(shù)據(jù)覆蓋掉,導(dǎo)致緩存和數(shù)據(jù)庫數(shù)據(jù)不一致。若這種情況出現(xiàn),除非緩存主動(dòng)淘汰,否則應(yīng)用將始終讀到臟數(shù)據(jù)。

對(duì)上述的數(shù)據(jù)不一致問題,業(yè)界也有一種基于CAS的解決方案,但會(huì)對(duì)緩存增加至少一倍以上的壓力。而通過NDC的數(shù)據(jù)訂閱,可以比較完美地解決上述問題,NDC數(shù)據(jù)訂閱將數(shù)據(jù)庫中的增量數(shù)據(jù)丟入消息隊(duì)列,應(yīng)用讀取消息隊(duì)列的內(nèi)容,并將其同步到緩存系統(tǒng),在這個(gè)過程中,NDC執(zhí)行節(jié)點(diǎn)和消息隊(duì)列保障高可用,而數(shù)據(jù)庫增量數(shù)據(jù)具有唯一性和時(shí)序性,可以避免緩存和數(shù)據(jù)庫的狀態(tài)不一致。

如果說使用數(shù)據(jù)訂閱只是緩存更新的一種優(yōu)選方案的話,那對(duì)下面的多機(jī)房緩存淘汰,NDC的數(shù)據(jù)訂閱功能就是必選方案了。

圖3中,應(yīng)用部署有主機(jī)房和備機(jī)房兩套環(huán)境,兩套環(huán)境各有一套應(yīng)用服務(wù),緩存和數(shù)據(jù)庫,為了保障主備機(jī)房數(shù)據(jù)一致,數(shù)據(jù)寫入只能走主機(jī)房,備機(jī)房數(shù)據(jù)庫是主機(jī)房數(shù)據(jù)庫的只讀從庫,這種架構(gòu)普遍適用于讀多寫少的應(yīng)用系統(tǒng)。


圖3 NDC解決多機(jī)房緩存淘汰問題


在業(yè)務(wù)不適用數(shù)據(jù)訂閱來更新緩存的情況下,從機(jī)房在執(zhí)行刪除數(shù)據(jù)時(shí),先刪除主機(jī)房數(shù)據(jù),再刪除從機(jī)房緩存,而從機(jī)房的數(shù)據(jù)庫同步具有一定的滯后性,在滯后的這段時(shí)間,從機(jī)房應(yīng)用服務(wù)可能會(huì)將從機(jī)房數(shù)據(jù)庫的臟數(shù)據(jù)重新載入緩存,導(dǎo)致從機(jī)房應(yīng)用依舊能看到刪除后的數(shù)據(jù)。為此,我們的方案是使用NDC訂閱從機(jī)房數(shù)據(jù)庫的刪除操作,保障從機(jī)房數(shù)據(jù)庫和緩存在刪除操作上具有一致性。

OLAP系統(tǒng)整合/ETL

業(yè)務(wù)數(shù)據(jù)庫與OLAP系統(tǒng)的數(shù)據(jù)整合,是互聯(lián)網(wǎng)產(chǎn)品架構(gòu)中非常重要的一環(huán)。比較傳統(tǒng)的應(yīng)用一般采用定時(shí)從OLTP庫中將數(shù)據(jù)全量導(dǎo)入OLAP系統(tǒng),比如每天凌晨1點(diǎn)開始把線上MySQL中所有數(shù)據(jù)通過Sqoop導(dǎo)入到Hive。這種做法有極大限制性:首先,ETL的時(shí)間完全不可控,這對(duì)于時(shí)效性比較敏感的數(shù)據(jù)尤為重要;其次ETL過程中對(duì)源庫負(fù)載壓力非常大,尤其對(duì)數(shù)據(jù)量大的應(yīng)用,而控制ETL對(duì)源端負(fù)載影響就意味著ETL時(shí)間更加失控。

在NDC這樣的系統(tǒng)出現(xiàn)后,架構(gòu)師們有了更加明智的選擇:通過NDC實(shí)現(xiàn)結(jié)構(gòu)化數(shù)據(jù)的增量ETL。首先使ETL從小時(shí)級(jí)延遲降低到秒級(jí),其次NDC的增量數(shù)據(jù)拉取對(duì)源端影響非常小。對(duì)直接支持?jǐn)?shù)據(jù)更新的OLAP系統(tǒng)而言,可以直接通過NDC實(shí)現(xiàn)ETL,如Kudu、HBase。對(duì)于不支持?jǐn)?shù)據(jù)更新的系統(tǒng),如Hive,可以通過NDC的數(shù)據(jù)訂閱功能將數(shù)據(jù)庫增量數(shù)據(jù)發(fā)布到消息隊(duì)列,再定時(shí)從消息隊(duì)列中獲取增量數(shù)據(jù),并通過MR合并到存量數(shù)據(jù),當(dāng)然這里的定時(shí)要比原先定時(shí)全量的時(shí)間間隔小很多,比如每小時(shí)、每15分鐘——通過這種方式實(shí)現(xiàn)準(zhǔn)實(shí)時(shí)的ETL。


圖4 通過NDC實(shí)現(xiàn)OLAP系統(tǒng)整合與ETL


產(chǎn)品形態(tài)


在產(chǎn)品形態(tài)上,NDC具有平臺(tái)化、可插拔和單元化三大特性。

平臺(tái)化

往前追溯幾年,各種PaaS和SaaS服務(wù)還未如現(xiàn)在這般舉目皆是,運(yùn)維小伙伴還比較習(xí)慣以部署軟件的方式為業(yè)務(wù)方提供各種服務(wù),比如在NDC之前,我們有軟件包Hamal來支持DDB的各種數(shù)據(jù)遷移工作,DBA在實(shí)施DDB擴(kuò)容時(shí),需要經(jīng)歷以下步驟:

  • 準(zhǔn)備一定數(shù)量的物理機(jī)或云主機(jī)跑遷移任務(wù);

  • 在這些節(jié)點(diǎn)上部署Hamal進(jìn)程,配置源端目標(biāo)端,并發(fā)度等參數(shù);

  • 通過Hamal日志或監(jiān)控程序?qū)崟r(shí)查看遷移進(jìn)度;

  • 數(shù)據(jù)遷移追趕上線上的數(shù)據(jù)增長后,完成切表或切庫操作;

  • 回收Hamal進(jìn)程,釋放相關(guān)資源。


隨著負(fù)責(zé)的產(chǎn)品越來越多,規(guī)模越來越大,管理員在不同產(chǎn)品的機(jī)器、配置之間疲于奔命,大量重復(fù)性工作增加了犯錯(cuò)可能,更要命的是遇到資源不足,可能還要經(jīng)歷漫長的采購周期。對(duì)于DBA一類的運(yùn)維人員,迫切需要一套幫助他們解決采購、部署、調(diào)度以及任務(wù)完成后的資源回收等一系列運(yùn)維工作的平臺(tái)化管理工具,這便是NDC。

NDC提供有跨IDC的平臺(tái)化Web管理界面和類似云計(jì)算的租戶管理概念,產(chǎn)品管理員在使用NDC時(shí),在產(chǎn)品相關(guān)租戶下創(chuàng)建、修改和刪除具體的數(shù)據(jù)遷移、同步和訂閱任務(wù),由NDC調(diào)度中心將任務(wù)調(diào)度到相關(guān)的執(zhí)行節(jié)點(diǎn)。另外配有專門的平臺(tái)管理員對(duì)NDC整個(gè)平臺(tái)做容量規(guī)劃,NDC管理界面如圖5所。


圖5 NDC管理界面


圖中可以看到,NDC除了提供基本的任務(wù)管理之外,還為管理員提供了大量運(yùn)行時(shí)的監(jiān)控統(tǒng)計(jì)數(shù)據(jù),幫助管理員更好地把控任務(wù)進(jìn)度和狀態(tài)。

可插拔

NDC除了向產(chǎn)品管理員和開發(fā)者直接提供服務(wù)外,同時(shí)也是DDB數(shù)據(jù)遷移、猛犸(網(wǎng)易大數(shù)據(jù)系統(tǒng))數(shù)據(jù)同步的依賴組件,如圖6所示。

圖6 NDC平臺(tái)可插拔特性


在DBA通過DDBAdmin做表擴(kuò)縮容,更改分區(qū)字段等操作時(shí),DDBAdmin會(huì)把請(qǐng)求解析成多個(gè)數(shù)據(jù)遷移任務(wù)提交給NDC。類似的,未來NDC可能還會(huì)支持其他自身有認(rèn)證功能的平臺(tái)系統(tǒng),比如公有云,為此,NDC 需要做到其他平臺(tái)的輕松插拔。

NDC的平臺(tái)插拔特性,本質(zhì)上是要支持不同租戶認(rèn)證的可插拔,因?yàn)橐蕾囉贜DC之上的其他平臺(tái)大都實(shí)有自己的租戶認(rèn)證功能,要求NDC支持這些不同的認(rèn)證方式是不現(xiàn)實(shí)的,我們的做法是“認(rèn)證服務(wù)”,具體的租戶認(rèn)證交由上層平臺(tái)自己完成。與此同時(shí),我們可以按照上層平臺(tái)的租戶名對(duì)任務(wù)做物理隔離和任務(wù)視圖的劃分。租戶可插拔的另外一個(gè)要點(diǎn),是NDC自帶的租戶認(rèn)證需要在API服務(wù)內(nèi)實(shí)現(xiàn),從NDC的調(diào)度中心來看,API服務(wù)與其他平臺(tái)是同一個(gè)架構(gòu)層的不同接入平臺(tái)。

NDC可插拔的另一個(gè)含義是“功能可插拔”。立項(xiàng)至今,NDC前前后后支持了六種關(guān)系型數(shù)據(jù)庫、三種OLAP系統(tǒng),每種源端和目的端都是通過實(shí)現(xiàn)統(tǒng)一的Extractor和Applier接口來支持,而且我們?cè)贘AR包上做了合理拆分,以便一些功能修改可以獨(dú)立上線。未來對(duì)新的源端目的端的支持也可以通過實(shí)現(xiàn)接口和新增JAR包在不重啟任何進(jìn)程的前提下完成擴(kuò)展。

單元化

可以通過NDC實(shí)現(xiàn)跨機(jī)房的數(shù)據(jù)同步解決方案,尤其對(duì)體量比較大的應(yīng)用,如網(wǎng)易考拉、云音樂,普遍需要在同城甚至異地機(jī)房之間做服務(wù)冗余、擴(kuò)展和容災(zāi)。相對(duì)應(yīng)地,這些應(yīng)用所依賴的底層服務(wù)也需要具備多機(jī)房冗余和擴(kuò)展的功能,如圖7所示。

圖7 NDC跨機(jī)房的單元化解決方案


在一個(gè)機(jī)房內(nèi)的系統(tǒng)架構(gòu)中,應(yīng)用服務(wù)無狀態(tài),緩存、大數(shù)據(jù),這些有狀態(tài)系統(tǒng)的數(shù)據(jù)來自于數(shù)據(jù)庫的數(shù)據(jù)同步和訂閱,而數(shù)據(jù)庫的數(shù)據(jù)除了本機(jī)房內(nèi)應(yīng)用產(chǎn)生外,也可以來自NDC從其他機(jī)房的數(shù)據(jù)同步。從這套架構(gòu)中可以看出,通過NDC同步機(jī)房間的數(shù)據(jù)庫數(shù)據(jù),再由NDC將數(shù)據(jù)庫的變更同步到大數(shù)據(jù)、緩存、消息隊(duì)列,由此驅(qū)動(dòng)業(yè)務(wù)在機(jī)房間無縫擴(kuò)展和冗余。

在圖7中,每個(gè)機(jī)房內(nèi)從應(yīng)用服務(wù)到數(shù)據(jù)庫,具有一套完整的數(shù)據(jù)鏈路,機(jī)房內(nèi)部的網(wǎng)絡(luò)、IT資源,相關(guān)的各種調(diào)度都具有高度自治性,機(jī)房間的耦合模塊只有通過NDC共享數(shù)據(jù)庫數(shù)據(jù),業(yè)界目前將這種具備完整服務(wù)鏈路,且高度自治的跨機(jī)房方案稱之為“單元化”,NDC的單元化要求在每個(gè)機(jī)房內(nèi)部署獨(dú)立的調(diào)度中心和執(zhí)行節(jié)點(diǎn)組,需要注意的是,單元化并不包含NDC的API服務(wù),API服務(wù)具有無狀態(tài)、請(qǐng)求離散等特性,沒有必要獨(dú)立部署,同時(shí)跨單元的API才能提供平臺(tái)化的管理服務(wù)。

值得一提的是,所謂“單元”是一個(gè)邏輯概念,一個(gè)單元具有物理隔離和高度自治的特性,我們也可以在一個(gè)機(jī)房內(nèi)部署多個(gè)NDC單元,以區(qū)別和隔離不同業(yè)務(wù)線,比如我們可以為DDB和猛犸部署一套獨(dú)立單元來支撐他們的平臺(tái)依賴,不過一個(gè)單元基本不會(huì)跨機(jī)房部署。

系統(tǒng)架構(gòu)


一個(gè)單元內(nèi)的NDC系統(tǒng)架構(gòu)如圖8所示。


圖8 NDC架構(gòu)圖


最上層無狀態(tài)的API服務(wù),是一套直接面向用戶的平臺(tái)化Web管理工具,API節(jié)點(diǎn)通過RPC向調(diào)度中心Center發(fā)起請(qǐng)求,除了API節(jié)點(diǎn)外,Center也會(huì)接受來自DDB管理工具、猛犸管理工具等其他平臺(tái)的RPC調(diào)用請(qǐng)求。

Center是NDC的大腦,所有管理、調(diào)度、監(jiān)控、報(bào)警工作都需要通過Center來執(zhí)行,Center目前在一個(gè)單元內(nèi)屬于單點(diǎn)服務(wù),通過高可用組件做冷備,由于元數(shù)據(jù)統(tǒng)一存儲(chǔ)在NDC的系統(tǒng)庫中,主備Center之間無需數(shù)據(jù)同步。Center會(huì)定期收集單元內(nèi)所有Engine節(jié)點(diǎn)的負(fù)載狀況、任務(wù)執(zhí)行狀態(tài)等信息,以實(shí)現(xiàn)均衡的任務(wù)調(diào)度,在任務(wù)失敗時(shí)自動(dòng)重試或重新調(diào)度,保障任務(wù)執(zhí)行具有高可用特性。

Engine是NDC系統(tǒng)中數(shù)據(jù)遷移、同步和訂閱的任務(wù)執(zhí)行者,它接收來自Center的調(diào)度請(qǐng)求,并維護(hù)一組實(shí)際任務(wù)執(zhí)行進(jìn)程Executo。在任務(wù)執(zhí)行過程中,Engine負(fù)責(zé)收集每個(gè)執(zhí)行進(jìn)程的任務(wù)狀態(tài)、進(jìn)度信息,并實(shí)時(shí)上報(bào)給Center。Center不知道任何Executor的存在,任務(wù)執(zhí)行進(jìn)程全權(quán)托管于Engine,并由Engine全程監(jiān)控。

“單元”是NDC物理資源隔離的最大單位,除了基于單元的隔離之外,NDC還提供了租戶級(jí)別的物理隔離,管理員可以為租戶分配獨(dú)占的任務(wù)執(zhí)行節(jié)點(diǎn)。在配置任務(wù)屬性時(shí)選擇“獨(dú)占型”任務(wù),則任務(wù)只會(huì)調(diào)度到屬于該用戶的資源池中,以確保任務(wù)執(zhí)行具有節(jié)點(diǎn)級(jí)別的隔離性,而普通共享型任務(wù)只具備進(jìn)程級(jí)別的隔離性。

實(shí)現(xiàn)簡述


NDC是面向結(jié)構(gòu)化數(shù)據(jù)庫的數(shù)據(jù)遷移、同步和訂閱的解決方案,而數(shù)據(jù)同步可以看做一種“永不結(jié)束”的數(shù)據(jù)遷移,下面我們就NDC在數(shù)據(jù)遷移、數(shù)據(jù)訂閱以及一些關(guān)鍵特性上的實(shí)現(xiàn)方式做個(gè)簡要介紹。

NDC的訂閱和遷移都以表為單位,如無特別說明,下文中的遷移對(duì)象均指要遷移的表。

數(shù)據(jù)遷移

與通常的“遷移”概念不同,NDC的“數(shù)據(jù)遷移”并不是將源端的數(shù)據(jù)挪到目標(biāo)端,而是在保障對(duì)源端數(shù)據(jù)影響盡可能小的前提下,將源端的數(shù)據(jù)“復(fù)制”或“同步”到目標(biāo)端。比如線上數(shù)據(jù)庫到數(shù)據(jù)倉庫的ETL,需要在不影響線上服務(wù)質(zhì)量的情況下將數(shù)據(jù)實(shí)時(shí)同步到數(shù)據(jù)倉庫。又如DDB的在線擴(kuò)容,也需要在擴(kuò)容的過程中不影響原有的數(shù)據(jù)節(jié)點(diǎn)。

當(dāng)用戶通過Web工具啟動(dòng)一個(gè)數(shù)據(jù)遷移任務(wù)后,NDC調(diào)度服務(wù)會(huì)根據(jù)任務(wù)類型、調(diào)度算法和節(jié)點(diǎn)負(fù)載,在相關(guān)的Engine資源池中選擇一個(gè)或多個(gè)節(jié)點(diǎn)下發(fā)任務(wù),一個(gè)遷移任務(wù)對(duì)應(yīng)一個(gè)源端數(shù)據(jù)庫實(shí)例。

數(shù)據(jù)遷移引擎中任務(wù)執(zhí)行流程如圖9所示。

圖9 NDC數(shù)據(jù)遷移執(zhí)行流程


從圖中可以看出,全部的數(shù)據(jù)遷移流程包含以下四個(gè)步驟:

  • 預(yù)檢查:檢查資源、網(wǎng)絡(luò)可用性、Schema兼容性、用戶權(quán)限等;

  • 全量遷移:源庫、表中存量數(shù)據(jù)的遷移過程;

  • 增量遷移:遷移過程中,源庫、表增量數(shù)據(jù)的遷移過程;

  • 數(shù)據(jù)校驗(yàn):對(duì)源端和目標(biāo)端同步的數(shù)據(jù)做抽樣校驗(yàn)。


預(yù)檢查階段,NDC會(huì)檢查源端和目標(biāo)端的網(wǎng)絡(luò)連通性、空余資源可用性、遷移使用的源端目標(biāo)端用戶在相關(guān)庫表上的權(quán)限、白名單、要遷移的Schema是否兼容等。NDC不要求遷移對(duì)象在源端目標(biāo)端的Schema嚴(yán)格一致,但要求目標(biāo)端對(duì)源端兼容,比如源端字段類型int到目標(biāo)端可以為bigint,反之則預(yù)檢查報(bào)錯(cuò),源端目標(biāo)端在索引結(jié)構(gòu)上允許有差異。

預(yù)檢查完成后,NDC任務(wù)執(zhí)行進(jìn)程會(huì)立即啟動(dòng)增量數(shù)據(jù)拉取模塊,在開始拉增量數(shù)據(jù)之后,啟動(dòng)全量遷移流程。顧名思義,全量遷移是將遷移對(duì)象的存量數(shù)據(jù)同步到目標(biāo)端。NDC的全量數(shù)據(jù)遷移采用“快照讀”,而判斷遷移對(duì)象中哪些數(shù)據(jù)是存量數(shù)據(jù),哪些是增量數(shù)據(jù)的依據(jù),是在開始全量遷移的時(shí)候獲取遷移表的最小主鍵和最大主鍵,在獲取到的最小主鍵和最大主鍵之間的所有數(shù)據(jù),被認(rèn)為是存量數(shù)據(jù),以外則作為增量數(shù)據(jù)處理。之所以沒有像MySQLDump一類的遷移工具使用大事務(wù)來劃分存量數(shù)據(jù),是為了避免大事務(wù)令源端回滾段不斷累加的影響(這是針對(duì)MySQL而言,對(duì)不同類型的源端數(shù)據(jù)庫,大事務(wù)都會(huì)造成一定的不良影響),而使用快照讀,會(huì)使全量遷移過程中引入一部分增量數(shù)據(jù),但這部分增量的“臟數(shù)據(jù)”最終會(huì)被增量遷移修正,不影響數(shù)據(jù)的最終一致性。

全量遷移以表為單位進(jìn)行,不同表之間可并發(fā)遷移,增量遷移則以源端實(shí)例為單位(想想MySQL的binlog),所以在一個(gè)遷移任務(wù)中,所有遷移對(duì)象都完成全量遷移后,才會(huì)進(jìn)入增量遷移階段。

增量遷移至少包含兩個(gè)線程,第一個(gè)是增量數(shù)據(jù)拉取線程,在全量遷移開始之前啟動(dòng),負(fù)責(zé)將源端所有(相關(guān))增量數(shù)據(jù)緩存在本地磁盤;另一個(gè)是增量回放線程,在增強(qiáng)遷移過程開始時(shí)啟動(dòng),它的作用是不斷讀取本地緩存的增量數(shù)據(jù),并按照時(shí)間順序回放到目標(biāo)端。

由于全量遷移是在增量拉取開始之后才進(jìn)行的,NDC可以保障全量遷移過程中引入的增量數(shù)據(jù)最終會(huì)在目標(biāo)端回放出來。

全量遷移和增量遷移過程中會(huì)有一部分增量數(shù)據(jù)被重復(fù)導(dǎo)入,NDC會(huì)保障增量數(shù)據(jù)導(dǎo)入具有冪等性。

隨著增量遷移的進(jìn)行,目標(biāo)端增量數(shù)據(jù)和源端增量數(shù)據(jù)的時(shí)間延遲會(huì)逐漸縮短,最終這個(gè)延遲控制在1s內(nèi)之后,我們將這個(gè)遷移任務(wù)定義為同步狀態(tài)。對(duì)同步狀態(tài)下的遷移任務(wù),管理員可以選擇實(shí)施數(shù)據(jù)校驗(yàn),一般建議采用源端5‰到100‰的隨機(jī)數(shù)據(jù)校驗(yàn)源端和目標(biāo)端的數(shù)據(jù)一致性。

NDC數(shù)據(jù)遷移中的全量遷移、增量遷移以及數(shù)據(jù)校驗(yàn)都是可選流程,不過NDC要求管理員至少勾選全量遷移和增量遷移中的一種,數(shù)據(jù)校驗(yàn)是遷移任務(wù)進(jìn)入同步狀態(tài)后的可選操作,不是在提交任務(wù)時(shí)選擇,可反復(fù)執(zhí)行。?
在實(shí)踐中,當(dāng)數(shù)據(jù)遷移任務(wù)進(jìn)入同步狀態(tài)后,一般會(huì)先執(zhí)行一次數(shù)據(jù)校驗(yàn),再執(zhí)行相關(guān)的切庫切表操作。而對(duì)數(shù)據(jù)同步場(chǎng)景,一般會(huì)定期執(zhí)行全量數(shù)據(jù)校驗(yàn)。

數(shù)據(jù)訂閱

數(shù)據(jù)訂閱是將數(shù)據(jù)庫的數(shù)據(jù)變更實(shí)時(shí)拉取出來,并交付給下游應(yīng)用執(zhí)行相應(yīng)業(yè)務(wù)邏輯的過程。與數(shù)據(jù)遷移相比,數(shù)據(jù)訂閱邏輯較為簡單——相當(dāng)于數(shù)據(jù)遷移中的增量過程,而在應(yīng)用場(chǎng)景方面,數(shù)據(jù)訂閱可以應(yīng)對(duì)更加多樣化的業(yè)務(wù)需求,例如:

  • 通過數(shù)據(jù)訂閱維護(hù)全文索引一類的第三方索引庫

  • 基于數(shù)據(jù)訂閱維護(hù)緩存

  • 通過數(shù)據(jù)訂閱實(shí)現(xiàn)復(fù)雜業(yè)務(wù)異步解耦

  • 實(shí)現(xiàn)更加復(fù)雜的ETL

數(shù)據(jù)訂閱的執(zhí)行邏輯如圖10所示。

圖10 數(shù)據(jù)訂閱執(zhí)行流程


數(shù)據(jù)訂閱任務(wù)由NDC的調(diào)度服務(wù)選擇合適的訂閱引擎節(jié)點(diǎn)執(zhí)行,與數(shù)據(jù)遷移增量過程不同的是,數(shù)據(jù)訂閱引擎不會(huì)將增量變更數(shù)據(jù)緩存在本地,而是直接丟入消息隊(duì)列中(使用了我們的消息隊(duì)列服務(wù)),SDK通過消費(fèi)消息隊(duì)列的數(shù)據(jù)實(shí)現(xiàn)增量數(shù)據(jù)回放。

之所以用消息隊(duì)列代替本地磁盤,是因?yàn)镾DK的數(shù)據(jù)回放過程完全由應(yīng)用方把持,速度不可控,若業(yè)務(wù)邏輯處理過慢,或下游節(jié)點(diǎn)意外宕機(jī),可能導(dǎo)致增量數(shù)據(jù)大量堆積,這里消息隊(duì)列可以當(dāng)做一個(gè)容量足夠大的消息緩存,使SDK端的異步消息回放更加優(yōu)雅。

數(shù)據(jù)訂閱中Engine必須嚴(yán)格按照增量數(shù)據(jù)的時(shí)間順序串行發(fā)布消息,無法做到類似數(shù)據(jù)遷移增量過程中的并發(fā)復(fù)制,這是因?yàn)橛嗛喨蝿?wù)Engine無法感知應(yīng)用端SDK消費(fèi)數(shù)據(jù),并發(fā)發(fā)布消息最終必然導(dǎo)致SDK消費(fèi)數(shù)據(jù)亂序執(zhí)行。

在實(shí)踐中,要特別注意消息隊(duì)列對(duì)發(fā)布消息的速率瓶頸以及訂閱任務(wù)Engine到消息隊(duì)列的網(wǎng)絡(luò)開銷。

關(guān)鍵特性

對(duì)NDC的實(shí)現(xiàn)部分,再分享三點(diǎn)關(guān)鍵特性給大家:

  • 并發(fā)遷移

  • 斷點(diǎn)續(xù)傳

  • 多源適配


對(duì)數(shù)據(jù)遷移和同步,速度是生命線:如果遷移速度不夠快,任務(wù)永遠(yuǎn)無法進(jìn)入同步狀態(tài),遷移和同步也無從談起。NDC的全量和增量過程都支持并發(fā)遷移,保障遷移任務(wù)能夠盡快地進(jìn)入同步狀態(tài)。

全量遷移并發(fā)較為簡單,首先可以在不同的表上做并發(fā)遷移,其次數(shù)據(jù)導(dǎo)入目標(biāo)端的過程也可以并發(fā)執(zhí)行,select數(shù)據(jù)和insert數(shù)據(jù)線程解耦在實(shí)踐中能夠極大縮短遷移時(shí)間,另外NDC的全量遷移可以配置一次導(dǎo)入操作的數(shù)據(jù)批量數(shù),減少遷移進(jìn)程和源端目標(biāo)端的交互次數(shù)。

增量并發(fā)回放是NDC最重要的核心實(shí)現(xiàn)之一,NDC增量回放線程會(huì)根據(jù)增量數(shù)據(jù)之間的沖突關(guān)系構(gòu)建一張或多張有向無環(huán)圖,圖中所有入度為0的數(shù)據(jù)節(jié)點(diǎn)都允許并發(fā)回放,增量數(shù)據(jù)導(dǎo)入目標(biāo)端后會(huì)從圖中刪除,從而解鎖其他沖突數(shù)據(jù)。這種算法理論上可最大限度發(fā)揮并發(fā)回放的優(yōu)勢(shì),在實(shí)際的性能測(cè)試中,NDC的增量并發(fā)回放效率遠(yuǎn)高于MySQL 5.7基于Group Commit的并行復(fù)制。

斷點(diǎn)續(xù)傳是NDC任務(wù)漂移和高可用實(shí)現(xiàn)的基礎(chǔ),是指遷移或訂閱任務(wù)異常退出,或進(jìn)程、節(jié)點(diǎn)crash之后,可以從最近的位置點(diǎn)重新啟動(dòng)任務(wù)。斷點(diǎn)續(xù)傳的實(shí)現(xiàn)有兩點(diǎn)前提:一是要求系統(tǒng)定期將任務(wù)的位置點(diǎn)信息持久化,在需要時(shí)可以從持久化過的位置點(diǎn)恢復(fù)任務(wù),NDC的做法是Engine定期將位置點(diǎn)信息上報(bào)給Center,由后者將其持久化在系統(tǒng)庫;二是要求遷移和訂閱任務(wù)中所有數(shù)據(jù)導(dǎo)入操作(全量和增量)具有冪等性,對(duì)此我們可以采用具有replace語義的SQL實(shí)現(xiàn)導(dǎo)入操作,對(duì)不支持replace語法的目標(biāo)端,可以使用delete+insert的組合SQL實(shí)現(xiàn)類似語義。在實(shí)踐中,保障冪等操作絕對(duì)是一項(xiàng)省時(shí)省力省心的做法。

多源適配的問題主要在于對(duì)不同的源端數(shù)據(jù)庫,采用怎樣的方式拉取增量數(shù)據(jù)最為實(shí)用和高效,目前主要有以下三種做法:

  • 基于日志:MySQL binlog、Oracle redo log;

  • 基于CDC:Oracle、DB2、SQLServer;

  • 基于觸發(fā)器:適用所有支持觸發(fā)器的數(shù)據(jù)庫。


三種做法各有優(yōu)劣,觸發(fā)器用法較為簡單,對(duì)用戶權(quán)限要求比較清晰,但性能較差,尤其是源端線上壓力比較大時(shí),可能產(chǎn)生大量的鎖超時(shí),因此不作為最優(yōu)選擇;CDC全名Change Data Capture,是一些數(shù)據(jù)庫特有的功能,可以將數(shù)據(jù)庫產(chǎn)生的增量數(shù)據(jù)同步到一些視圖或表中,遷移或訂閱進(jìn)程通過這些表和視圖來獲取增量數(shù)據(jù),可以看出CDC在使用上與觸發(fā)器非常類似,區(qū)別在于CDC是一些數(shù)據(jù)庫獨(dú)特功能,可以在性能上做優(yōu)化。以O(shè)racle為例,可以通過解析redo log產(chǎn)生增量數(shù)據(jù),比通過觸發(fā)器產(chǎn)生增量數(shù)據(jù)的做法對(duì)源端的影響要小很多,CDC的劣勢(shì)在于不同數(shù)據(jù)庫沒有統(tǒng)一規(guī)范,方言化嚴(yán)重,對(duì)權(quán)限要求更加苛刻。

一般情況下,我們將第一種基于日志的增量數(shù)據(jù)拉取方案列為最優(yōu)。以MySQL為例,MySQL自帶的binlog功能可以直接將日志同步到遠(yuǎn)端,對(duì)用戶權(quán)限、源端數(shù)據(jù)庫性能影響也都在可控范圍內(nèi)。

總結(jié)


工欲善其事,必先利其器,NDC顧名思義,就是希望為公司打造一個(gè)可以容納各種結(jié)構(gòu)化數(shù)據(jù)庫實(shí)時(shí)數(shù)據(jù)的“數(shù)據(jù)運(yùn)河”,并通過運(yùn)河將數(shù)據(jù)運(yùn)輸?shù)讲煌康亩?#xff0c;應(yīng)用只需要在管理頁面中簡單地配置幾個(gè)參數(shù),便可將數(shù)據(jù)庫的內(nèi)容輕松整合到其他數(shù)據(jù)或應(yīng)用系統(tǒng)中。

NDC的快速構(gòu)建,很大程度上要?dú)w功于我們團(tuán)隊(duì)在分布式中間件、數(shù)據(jù)遷移工具等領(lǐng)域的成果和積累,如果開發(fā)者要設(shè)計(jì)和實(shí)現(xiàn)類似系統(tǒng),建議多利用開源資源,比如調(diào)度模塊可以考慮集成或使用Apache Azkaban的實(shí)現(xiàn),任務(wù)執(zhí)行模塊也有很多開源工具和代碼可以參考。另外,在設(shè)計(jì)數(shù)據(jù)遷移和訂閱平臺(tái)時(shí)要重點(diǎn)考慮以下幾個(gè)問題:

  • 與其他平臺(tái)集成,NDC具有平臺(tái)可插拔特性,可以非常方便地與網(wǎng)易其他平臺(tái)服務(wù)集成。

  • 任務(wù)執(zhí)行要快,對(duì)源端影響盡可能小。NDC具有非常高效的數(shù)據(jù)全量遷移和增量數(shù)據(jù)回放模塊,在實(shí)現(xiàn)增量數(shù)據(jù)拉取模塊時(shí),盡可能選擇了同步日志的方式,對(duì)源端影響很小。

  • 要考慮到斷點(diǎn)續(xù)傳問題。在任務(wù)執(zhí)行過程中,可能發(fā)生網(wǎng)絡(luò)抖動(dòng)、分區(qū)、節(jié)點(diǎn)故障等各類異常,這首先要求我們的任務(wù)具備從某個(gè)時(shí)間點(diǎn)或位置點(diǎn)重新開始執(zhí)行的能力,其次要求調(diào)度中心可以快速發(fā)現(xiàn)異常,并使用合理的算法實(shí)現(xiàn)任務(wù)漂移。

  • 要考慮到灰度發(fā)布。由于NDC的平臺(tái)化設(shè)計(jì),隨著系統(tǒng)功能愈發(fā)繁多,一次平臺(tái)全面升級(jí)的代價(jià)越來越高,為此我們需要通過灰度升級(jí)保障功能在全面上線之前得到充分驗(yàn)證,另外通過功能“可插拔”的特性,保障一次上線對(duì)線上任務(wù)的影響盡可能小。

迄今為止,NDC上線半年多,承接應(yīng)用40+,遷移、同步和訂閱實(shí)踐案例10000+,可以預(yù)見,在網(wǎng)易未來的云計(jì)算、大數(shù)據(jù)布局,以及其他各類數(shù)據(jù)驅(qū)動(dòng)的應(yīng)用場(chǎng)景中,NDC都將發(fā)揮舉足輕重的作用。

作者:馬進(jìn),網(wǎng)易杭研大數(shù)據(jù)平臺(tái)組DDB項(xiàng)目負(fù)責(zé)人。入職以來先后參與了分布式數(shù)據(jù)庫DDB,緩存NKV,網(wǎng)易數(shù)據(jù)運(yùn)河NDC等項(xiàng)目,主導(dǎo)數(shù)據(jù)庫中間件的各種項(xiàng)目研發(fā)。專注于分布式系統(tǒng)架構(gòu)與數(shù)據(jù)庫技術(shù)。?


責(zé)編:仲培藝,關(guān)注數(shù)據(jù)庫領(lǐng)域,尋求報(bào)道或者投稿請(qǐng)致郵zhongpy@csdn.net。?
本文為《程序員》原創(chuàng)文章,未經(jīng)允許不得轉(zhuǎn)載,更多精彩文章請(qǐng)訂閱2017年《程序員》



總結(jié)

以上是生活随笔為你收集整理的网易数据运河系统NDC设计与应用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

五月开心婷婷 | 久久国产精品99久久人人澡 | 中文字幕av网站 | 久久免费在线观看视频 | 在线观看亚洲精品 | 天天天干 | 中文字幕人成不卡一区 | 一区二区三区在线观看免费 | 欧美日韩亚洲在线观看 | 国产精品美女久久久久久久久 | 天天操天天操天天操天天操天天操 | 国产一区二区在线播放 | 日韩久久精品一区二区三区下载 | www日韩在线观看 | 亚洲人成免费 | 高潮久久久久久久久 | 韩国三级av在线 | 中文字幕国产在线 | 三三级黄色片之日韩 | 亚洲日本在线一区 | 成人av在线播放网站 | 激情av在线播放 | 免费在线国产视频 | 永久中文字幕 | 亚洲激情在线视频 | 色综合天天综合网国产成人网 | 91av手机在线 | 天天操天天干天天综合网 | 婷婷丁香六月 | 国产精品免费一区二区三区 | 欧美久久久影院 | 激情五月亚洲 | 操碰av| 国产1区在线观看 | 国产亚洲精品久久久久久电影 | 国产成人99av超碰超爽 | 免费激情网 | 超级碰碰碰免费视频 | 国产高清精品在线观看 | 欧美色图东方 | 久久99久久99| 久久国产二区 | 日日日网| 成人毛片一区 | 99欧美| 精品国产一区二区三区久久久久久 | 日韩黄视频 | 亚洲资源视频 | 日韩欧美在线观看 | 日韩中文字幕免费视频 | 日韩精品久久久久久久电影竹菊 | 久久综合成人 | 午夜视频免费在线观看 | 亚洲最新视频在线播放 | 亚洲精品视频网 | 91麻豆免费版 | 亚洲精品欧美成人 | 久久a v电影| 天天综合网久久 | 日韩理论片在线观看 | 超碰97免费在线 | 狠狠干在线播放 | 国产中年夫妇高潮精品视频 | 亚洲欧洲中文日韩久久av乱码 | 在线观看一区二区精品 | 在线视频黄 | 亚洲综合国产精品 | 成人在线播放视频 | 成人在线黄色电影 | 国产精品白丝jk白祙 | 久久综合婷婷 | 亚洲电影一区二区 | 国产日韩欧美在线影视 | 97视频免费看 | 天天射天天做 | 人人草人| 亚洲国产资源 | 成人毛片在线视频 | 日韩高清网站 | 亚洲人成在线电影 | 久久激情电影 | 色欲综合视频天天天 | 成人四虎影院 | 男女视频久久久 | 国产精品第一页在线观看 | 中文字幕91视频 | 99热播精品| 西西www4444大胆视频 | 久章草在线 | 国产精品一级在线 | 天操夜夜操| 在线看日韩av | avwww在线| 超碰av在线免费观看 | 久久综合五月婷婷 | 婷婷久久丁香 | 成人在线一区二区 | 色婷婷六月天 | 91麻豆高清视频 | av大全免费在线观看 | 久久精品韩国 | 国产精品18p| 九九精品视频在线观看 | 奇米影视8888在线观看大全免费 | 日韩高清av | 成人宗合网 | 免费人成在线观看网站 | 亚洲午夜久久久综合37日本 | 天天射天天搞 | 成人一区二区三区中文字幕 | 国产亚洲在线视频 | 狠狠操狠狠干2017 | 亚洲精品小视频 | 一区二区三区四区在线 | 网站免费黄| 久久伊人八月婷婷综合激情 | 日韩中文字幕在线不卡 | 亚洲精品免费在线观看视频 | 国产精品麻豆果冻传媒在线播放 | 久久精品美女 | 国产欧美在线一区二区三区 | 国内精品在线一区 | 国产精品理论视频 | 色综合久久久久久久 | 丝袜美腿在线播放 | 亚洲黄色av网址 | 国产精品99蜜臀久久不卡二区 | 不卡视频在线 | 亚洲九九精品 | 人人看人人爱 | 午夜精品av在线 | 亚洲国产日韩在线 | 亚洲精品国偷拍自产在线观看蜜桃 | 国产免费人成xvideos视频 | 97人人模人人爽人人喊中文字 | 99这里都是精品 | 天天干天天拍天天操 | 国产二区电影 | 成人动漫精品一区二区 | 亚洲欧美日韩国产精品一区午夜 | 永久中文字幕 | 免费三级黄 | 免费一级片在线 | 婷婷色在线 | 伊人国产在线观看 | 在线观看www. | 国产精品久久久久久吹潮天美传媒 | 二区三区毛片 | 成人影片在线免费观看 | 91最新在线观看 | 狠狠搞,com| 91最新中文字幕 | 精品国产自在精品国产精野外直播 | 精品国产一区二区三区日日嗨 | 91成人在线免费观看 | 欧美性生活大片 | 久久新视频 | 91精品一区二区三区久久久久久 | 国产黄色视 | 欧美激情综合五月色丁香 | 美女黄频视频大全 | 色综合久久久久综合 | 福利电影一区二区 | 婷婷丁香国产 | 成人黄大片 | 免费a v观看| 91日韩精品 | 日产中文字幕 | 91成人观看 | 99久久99久久精品国产片果冰 | 国产日产欧美在线观看 | 国产精品美女久久久久久久 | 色婷婷六月天 | 久久图| 狠狠色狠狠色综合日日92 | 97视频资源| 欧产日产国产69 | 精品国产乱码久久久久久三级人 | 日韩大片在线播放 | 国产美女免费观看 | 热久久影视 | 色多多视频在线观看 | 深夜精品福利 | 色资源在线 | 中文字幕资源在线 | 国产精品国产亚洲精品看不卡15 | 国产成人av电影在线 | 在线亚洲精品 | 夜夜躁狠狠躁 | 精品福利视频在线 | 在线观看成人小视频 | 欧美片一区二区三区 | 国产欧美高清 | 黄色毛片观看 | 亚洲精品国偷拍自产在线观看蜜桃 | 五月激情视频 | 亚洲成av人电影 | 三日本三级少妇三级99 | 久久综合九色综合欧美狠狠 | 99视频精品免费视频 | 91在线免费观看国产 | av片子在线观看 | 六月婷婷久香在线视频 | 91福利区一区二区三区 | 国产亚洲精品久久久久久大师 | 中文字幕在线观看免费观看 | 久久avav| 91香蕉视频好色先生 | 色狠狠综合天天综合综合 | 国产免费亚洲 | 中文字幕在线播放av | 久久免费精品国产 | 久久久精品视频成人 | 国产精品国产三级国产不产一地 | 日本黄色a级大片 | 成人黄色av网站 | 欧美日韩在线免费观看视频 | 91麻豆精品国产91久久久更新时间 | 久久久久久久久久久黄色 | 黄色毛片在线观看 | 国产高清av在线播放 | jizz18欧美18| 日日干天天射 | 久久精品国产第一区二区三区 | 色婷婷综合在线 | 狠狠网亚洲精品 | 91激情视频在线观看 | 亚洲高清不卡av | 欧美日韩首页 | 粉嫩av一区二区三区四区 | 国产精品毛片一区视频 | 久久久久一区二区三区 | 青青河边草免费观看 | 久久精品美女视频 | 夜夜躁日日躁狠狠久久88av | 精品少妇一区二区三区在线 | 久久99热精品这里久久精品 | 国产一二三四在线观看视频 | 亚州精品天堂中文字幕 | 不卡av电影在线 | 亚洲欧美成aⅴ人在线观看 四虎在线观看 | 精品视频123区在线观看 | 91九色视频观看 | 日韩免费| 中国一级片在线 | 国产一区91 | 国产福利免费在线观看 | 精品一区二区免费在线观看 | 天天插日日操 | 精品久久一 | 国模精品在线 | 国产又粗又猛又爽 | 欧美亚洲一区二区在线 | 中文字幕首页 | 天堂网中文在线 | 日韩视频中文字幕在线观看 | 九九九九精品九九九九 | 日韩欧美在线不卡 | 亚洲欧美国产精品va在线观看 | 中文字幕一区二区三区久久 | 在线免费观看黄色大片 | 又粗又长又大又爽又黄少妇毛片 | 97福利| 久久国产美女 | 最新av电影网站 | 免费看黄在线看 | 视频在线观看日韩 | 波多野结衣在线视频免费观看 | av网址在线播放 | www.色午夜.com | 日韩区在线观看 | 亚洲伦理一区二区 | 国内外成人在线视频 | 日韩免费在线网站 | 免费高清在线观看成人 | 国产精品免费视频观看 | 久久久久久久久久久久av | 日本h在线播放 | 天天天天天天天操 | 亚洲精品在线一区二区三区 | 亚洲视频 在线观看 | 国产免费一区二区三区网站免费 | 欧美日韩久久 | 91九色视频 | 精品国产_亚洲人成在线 | 日韩av不卡在线观看 | 久久久国际精品 | 91夫妻自拍 | 九精品 | 人人澡人人添人人爽一区二区 | 日韩在线观看一区 | 玖玖在线观看视频 | 亚洲成人999 | 男女视频国产 | 欧美精品久久久久久久久久久 | 亚洲精品欧美视频 | 天天干天天射天天插 | 国产小视频你懂的在线 | 麻豆高清免费国产一区 | 欧美做受xxx| 国产视频九色蝌蚪 | 91在线视频免费播放 | 美女黄频在线观看 | 亚洲视频免费在线观看 | 日本精品一 | 婷婷色影院 | 夜夜嗨av色一区二区不卡 | 丁香 久久 综合 | 天天色天天操综合网 | 久久精品精品电影网 | 青青河边草免费观看 | 手机av资源| 国产日韩在线一区 | 色综合在 | 四虎永久网站 | 最近免费中文字幕mv在线视频3 | 超碰在线资源 | 亚洲经典在线 | 久久综合中文字幕 | 九九99视频 | 伊人视频 | av高清不卡 | 91九色国产蝌蚪 | 午夜影院一级片 | 久久五月情影视 | 色的网站在线观看 | 首页中文字幕 | 国产一区免费 | 免费裸体视频网 | 国产专区视频 | 一区二区精品在线 | 激情视频在线观看网址 | 深夜国产福利 | 日韩精品大片 | 精品国产亚洲在线 | 在线观看视频福利 | av网站手机在线观看 | 黄色亚洲片| 四虎永久国产精品 | 欧美日本不卡 | 国产精品福利小视频 | 亚洲经典在线 | 亚洲国产免费网站 | 久久久久久久久久久福利 | www.久久99 | 国产精品va在线观看入 | 日本高清中文字幕有码在线 | 亚洲成人欧美 | 久久综合九色九九 | 激情综合啪 | 高清在线观看av | 天天拍天天色 | 国产精品欧美精品 | 中文在线中文资源 | 国产剧情在线一区 | 日韩精品一区二区三区不卡 | 一区二区网 | 亚洲精品国产精品国自产观看 | 美女很黄免费网站 | 成人a免费| 日韩免费播放 | 国产成人综合图片 | 在线观看av国产 | 久久久午夜视频 | 色多多视频在线 | www..com黄色片 | 久草热久草视频 | 亚洲精品9| 黄色中文字幕 | 国内丰满少妇猛烈精品播 | 人人盈棋牌 | 99精品在线观看 | 在线免费观看国产黄色 | 国产精品99精品 | 欧美亚洲久久 | 久久一久久 | 日韩电影中文字幕在线观看 | 精品毛片一区二区免费看 | 四虎影视8848aamm | 四虎影视精品永久在线观看 | 日韩最新在线视频 | 久久成人免费 | 在线免费观看黄色小说 | 免费视频久久 | 精品免费一区二区三区 | 国产淫a| 亚洲国产剧情 | avav99| 99热国产在线 | 新版资源中文在线观看 | 久久精品久久99 | 精品伊人久久久 | 免费看三级网站 | 久久高清国产 | 久久一区二区三区日韩 | 久久精选视频 | 四虎最新入口 | 久草网站在线 | 国内精品视频在线播放 | 久久久国产在线视频 | av资源免费观看 | 久久成人国产精品免费软件 | 韩国av免费在线 | 成年人免费在线 | 久久精品网站免费观看 | 九九在线免费视频 | 婷婷丁香av | 国产精品高清av | 亚洲国产成人久久 | 玖玖玖精品 | 美女在线观看av | 亚洲一区久久 | 五月导航| 日韩网站在线 | av 一区 二区 久久 | 久久综合九色综合欧美就去吻 | 久久不色| 在线免费观看视频你懂的 | 欧美日韩一区二区三区在线免费观看 | 免费观看的av网站 | 绯色av一区| 丁香视频五月 | 深夜免费小视频 | 狠狠搞,com | 免费在线色 | 精品一区二区免费在线观看 | 国产在线91精品 | 九九久久精品视频 | 一本一道波多野毛片中文在线 | 中文字幕视频免费观看 | 天天爽综合网 | 91在线看 | 丁香五月亚洲综合在线 | 国产精品嫩草影院99网站 | 日日夜夜精品视频天天综合网 | 最新国产在线 | 99热播精品 | 91丨九色丨国产在线 | 97av视频在线观看 | 成人精品影视 | 狠狠狠色丁香婷婷综合久久88 | 国产999精品久久久久久麻豆 | 亚洲精品视频二区 | 国产午夜精品免费一区二区三区视频 | 日韩有码第一页 | 精品久久久久久久久久久院品网 | 久久久伊人网 | 日韩网站一区二区 | 国产成人精品一区二区在线 | 在线成人中文字幕 | 精一区二区| 国内精品久久久久久久久久久 | 亚洲三区在线 | 国产一级黄 | 免费网站色 | 99久久精品免费看国产免费软件 | 久久精品视频网址 | 精品国产亚洲在线 | 夜夜操网站 | 日韩av线观看 | 又黄又刺激视频 | 手机在线黄色网址 | 久草久视频 | 国产精品精品久久久 | 丁香花中文在线免费观看 | 久国产在线播放 | 91亚瑟视频 | 亚洲在线资源 | 玖玖在线播放 | 日韩在线观看你懂的 | 园产精品久久久久久久7电影 | 免费视频黄色 | 91看片淫黄大片在线播放 | 九色在线视频 | 国产精品美女www爽爽爽视频 | 免费看的黄色的网站 | 99久免费精品视频在线观看 | 九九影视理伦片 | 国产涩图 | 久久国产精品免费一区 | 在线观看亚洲国产 | 日批视频在线 | 香蕉视频亚洲 | 国产精品嫩草影院99网站 | 久草在线视频看看 | 黄色资源在线 | av一级在线 | 色诱亚洲精品久久久久久 | 亚洲专区欧美 | 久久这里只有精品久久 | 97精品国产一二三产区 | www在线观看视频 | 91精品办公室少妇高潮对白 | 999久久a精品合区久久久 | 97操碰 | 中文字幕视频一区二区 | 国产精品入口传媒 | 日韩欧美在线高清 | 国产精品视频免费看 | www.69xx| 精品在线观看一区二区 | 又黄又刺激的网站 | 成人av中文字幕在线观看 | 中文资源在线观看 | 在线观看欧美成人 | 亚洲激情中文 | 国产精品国产三级国产专区53 | 超碰在线91 | 日韩电影在线观看一区二区 | 99精品在线视频观看 | 国产视频一区二区在线观看 | 国内精品久久久久久久97牛牛 | 91夫妻自拍 | 色综合久久中文字幕综合网 | 五月婷婷免费 | 久久色网站 | 国产不卡一区二区视频 | 久久精品国产第一区二区三区 | 碰碰影院| 麻豆国产露脸在线观看 | 久久成人麻豆午夜电影 | 国产高清99 | 午夜免费电影院 | 黄色www在线观看 | 色香蕉在线 | 三级黄色网址 | 日韩欧美综合在线视频 | 国产高清久久久久 | av线上看| 国产人成看黄久久久久久久久 | 久久免费99精品久久久久久 | 精品一区 精品二区 | 成人一级在线观看 | 久久这里精品视频 | 射射射综合网 | 日韩天堂在线观看 | 免费人成网 | 国产午夜激情视频 | 欧美一级性生活视频 | 91亚洲综合 | 91精品国自产在线偷拍蜜桃 | 国产成人精品久久久 | 五月婷婷在线播放 | 丁香激情网 | av久久在线 | 午夜av影院 | 最近能播放的中文字幕 | 成人久久视频 | 91av电影在线观看 | 高潮久久久 | 午夜一级免费电影 | 亚洲电影久久久 | www.com.日本一级 | 国产一区二区三精品久久久无广告 | 国产激情小视频在线观看 | 蜜臀av免费一区二区三区 | 国产成人精品一区二区三区福利 | 国产高清免费av | 亚洲久草视频 | 爱爱一区| 国产美女网站视频 | 久久国产片 | 欧美三级在线播放 | 久久草在线视频国产 | 国产免费又爽又刺激在线观看 | 国产精品日韩欧美 | 国产精品第72页 | 日本精品一 | 亚洲尺码电影av久久 | 亚洲欧美日韩精品一区二区 | 亚州av网站大全 | 69xx视频| 手机在线黄色网址 | 久久五月婷婷丁香 | 国产h片在线观看 | 亚洲视频免费在线 | 国产亚洲精品免费 | 日韩欧美视频在线播放 | 欧美激情视频在线免费观看 | 黄网站色视频免费观看 | 91网址在线看 | 久久婷婷色综合 | 久久国产精品免费看 | 久久成人18免费网站 | 亚洲一二区视频 | 四虎伊人 | 天天爱天天操天天爽 | 国产精品久久在线观看 | 国产精品一区二区久久精品爱涩 | 精品欧美一区二区在线观看 | 欧美日韩视频在线观看一区二区 | 日韩中文在线字幕 | 国产中年夫妇高潮精品视频 | 亚洲精品大片www | 91色视频 | 精品国产aⅴ一区二区三区 在线直播av | a黄色大片 | 日韩在线网址 | 在线色资源 | 久草视频免费看 | 最新国产一区二区三区 | www五月天婷婷| 亚洲国产视频网站 | 999国产精品视频 | 久久1电影院 | 中文在线免费一区三区 | 五月婷婷开心中文字幕 | 日韩极品视频在线观看 | 91av在线免费播放 | 综合国产在线观看 | 91精品国产福利在线观看 | 欧美精品久久久久久久久免 | 天天看天天干 | 亚洲黄色网络 | 欧美 日韩 久久 | 国产精品国产亚洲精品看不卡 | 狠狠干网址| 免费观看性生交 | 亚洲理论视频 | 日韩中文免费视频 | 欧美一区二区三区在线视频观看 | 中文字幕永久 | 国产99久 | 精品免费一区 | 免费看三级 | 日韩免费高清 | 午夜精品一区二区三区在线观看 | 久久久久久久久久久影院 | 天天天插 | 欧美久久久久久久久中文字幕 | 欧美精品久久久久久久久久丰满 | 在线91观看| 蜜桃av人人夜夜澡人人爽 | 国产精品乱码一区二区视频 | 日韩专区 在线 | 中文字幕二区在线观看 | 国产精品普通话 | 亚洲成av人片在线观看香蕉 | 中文字幕一区二区三区久久蜜桃 | 色国产视频 | 欧美日韩视频观看 | 欧美精品一区二区蜜臀亚洲 | 国产亚洲欧美精品久久久久久 | 精品福利网站 | 麻豆果冻剧传媒在线播放 | 91精品国自产在线偷拍蜜桃 | 国产香蕉视频在线播放 | 国产h在线播放 | 日本久久免费电影 | 69欧美视频 | 亚洲欧美精品一区 | 天天色天天色天天色 | 91在线精品播放 | 中文字幕丰满人伦在线 | 五月开心色| 亚洲成a人片在线观看网站口工 | 久草在线免费看视频 | 国产精品久久久久久超碰 | 玖玖色在线观看 | 久久激情五月丁香伊人 | 久久久久久久久久久免费视频 | 免费成人av在线看 | 福利电影久久 | 天天干夜夜夜操天 | www黄| 日本中文字幕在线一区 | 欧美a性 | 四虎永久免费网站 | 青青河边草观看完整版高清 | 成年人视频免费在线播放 | 日韩成人高清在线 | 久草视频播放 | jizzjizzjizz亚洲 | 午夜久久久影院 | 久久国产香蕉视频 | 黄色在线免费观看网站 | 国产黄色精品视频 | 欧美在线观看视频 | 精品国偷自产国产一区 | 日韩精品在线视频免费观看 | 黄网站a | 中文字幕美女免费在线 | 国产在线国产 | 中文字幕在线观看视频网站 | 欧美少妇的秘密 | 精品高清美女精品国产区 | 日韩电影一区二区三区在线观看 | 国产91大片 | 日韩精品久久一区二区 | 欧美成人播放 | 久久嗨| 免费麻豆| 国产精品免费久久久久影院仙踪林 | 精品久久久久久国产91 | 欧美日韩在线视频一区 | 日韩字幕 | 永久免费精品视频网站 | 欧美日韩中文字幕综合视频 | 五月婷婷网站 | 久久无码精品一区二区三区 | av资源免费在线观看 | 国内免费久久久久久久久久久 | 国产资源精品在线观看 | 97高清免费视频 | 黄色h在线观看 | 日韩高清片 | 欧美一级激情 | 国产69久久久 | 一本一本久久a久久精品牛牛影视 | 欧美日韩国产精品爽爽 | 一区二区理论片 | 亚洲综合色视频 | 午夜精品久久久久久久99无限制 | 国产高清视频在线免费观看 | 成人va天堂| 网站你懂的| 一二三四精品 | 97超碰人| 六月丁香六月婷婷 | 蜜桃麻豆www久久囤产精品 | 天堂av网址 | 亚洲人成人在线 | 亚洲欧美婷婷六月色综合 | 波多野结衣一区二区三区中文字幕 | 午夜成人免费影院 | 中文字幕一区二区三区四区在线视频 | 在线观看91精品国产网站 | 国产特级毛片aaaaaa毛片 | 国产亚洲精品中文字幕 | 中文一区二区三区在线观看 | 激情综合色综合久久综合 | 亚洲精品乱码久久久久久久久久 | 欧美一级日韩三级 | h视频日本 | 亚洲日本欧美在线 | 在线中文字幕电影 | 99热这里精品 | 久免费| 久久激情五月激情 | 欧美乱码精品一区 | 男女全黄一级一级高潮免费看 | 国产精品视频区 | 韩国精品一区二区三区六区色诱 | 午夜视频播放 | www.色婷婷| 欧美韩日视频 | 黄色成人av网址 | 中文字幕在 | 日韩大片在线 | 精品欧美日韩 | 99久久er热在这里只有精品15 | 九九久久免费视频 | 亚洲毛片久久 | 日韩一区二区三区免费视频 | 韩日av一区二区 | 久久精品久久精品久久精品 | 97国产精品一区二区 | 91亚色视频| 四季av综合网站 | 久久一区国产 | 国产资源av| 日韩高清dvd | 国产精品第2页 | 亚洲精品国产欧美在线观看 | 中文字幕网址 | 亚洲一区二区高潮无套美女 | 欧美综合色在线图区 | 欧美激情h| 天天天天综合 | 国精产品999国精产品岳 | 久久人人爽爽人人爽人人片av | 欧美午夜精品久久久久久浪潮 | 国产一区视频在线播放 | 日日爱夜夜爱 | 成人免费av电影 | 一级c片| 一区二区视频播放 | 午夜999 | 国产成人精品久久 | 国产精品久久久久久婷婷天堂 | 丁香综合 | 亚洲精品影视在线观看 | av电影免费| 黄污视频网站大全 | 成人三级av | 一级α片免费看 | 日本精品一区二区三区在线播放视频 | 97在线观看免费高清 | 亚洲国产美女久久久久 | 日韩手机在线观看 | 激情综合色图 | 激情五月婷婷综合 | 久久精品成人欧美大片古装 | 国产伦理久久精品久久久久_ | 久久精品国产第一区二区三区 | 色婷婷视频 | 久久久久久久久久久免费视频 | 天天操网址 | 在线看片a | 国产视频2021| 免费在线黄 | 免费看一级黄色大全 | 免费福利小视频 | 成片免费| 日韩在线电影一区二区 | 欧美性极品xxxx娇小 | 久久成人国产精品免费软件 | 国内少妇自拍视频一区 | 天天干天天干天天干 | 国产精品男女 | 日韩欧美一区二区在线播放 | 成人av片免费看 | 一区二区三区四区五区在线 | 永久免费的av电影 | 一级片免费观看视频 | 精品国内自产拍在线观看视频 | 久草在线免费播放 | 99视频久久 | 日韩成人在线一区二区 | 国产中文在线视频 | 欧美日韩电影在线播放 | 少妇bbw搡bbbb搡bbbb | 亚洲最新av网址 | 麻豆视频在线免费观看 | 精品字幕在线 | 五月婷婷天堂 | 人人玩人人爽 | 国产精品网红直播 | www.久久成人| 国产成人99av超碰超爽 | 欧美一区视频 | 亚洲第一区在线播放 | 久久久久久久久久久成人 | 国产99免费视频 | 国产丝袜高跟 | 在线日韩av | 免费试看一区 | 国产精品专区在线 | 国产亚洲片| 四虎精品成人免费网站 | 国产一区二区午夜 | 成人国产在线 | 国产一级二级三级在线观看 | 成人免费观看视频大全 | 久久国产精品成人免费浪潮 | 懂色av懂色av粉嫩av分享吧 | 日韩欧美视频一区 | 91成人在线看 | 日韩av不卡在线播放 | 91在线产啪| av福利电影 | 久久不卡免费视频 | 午夜av不卡| 婷婷电影在线观看 | 免费高清看电视网站 | 久久久久久久久爱 | 精品美女久久久久久免费 | 亚洲一区二区三区毛片 | 国产成人精品久久久 | 992tv人人草| 日本在线视频一区二区三区 | 国产精品va | 91av原创 | 国产精品视频地址 | 久久国产精品一区二区三区四区 | 日韩精品久久一区二区 | 久久视频这里有精品 | 久久综合色播五月 | 国产精品麻豆果冻传媒在线播放 | 久久手机免费观看 | 欧美一区二区视频97 | av免费电影网站 | 在线之家免费在线观看电影 | av免费电影在线观看 | 国产精品视频永久免费播放 | 欧美性受极品xxxx喷水 | 天天插伊人 | 成人网在线免费视频 | 91av观看| 久久久久观看 | 免费高清在线观看电视网站 | 久久婷婷一区二区三区 | 99精品系列| 日韩欧美精品在线观看视频 | 国产综合久久 | 波多野结衣在线观看一区二区三区 | 国产成人一区二区在线观看 | 激情网色| 久久激情视频网 | 免费大片av | 久久久久久久久久久免费视频 | 精品福利视频在线 | 日韩v在线91成人自拍 | 亚洲午夜久久久影院 | 欧美另类xxxxx | av成人在线看 | 日本中文一级片 | 久久久久五月天 | 亚洲视频,欧洲视频 | 久久久久美女 | 黄色的视频 | 亚洲精选国产 | 99在线观看视频网站 | 午夜精品视频在线 | 午夜久操 | 久久综合久久鬼 | 免费黄色av片| 久久久毛片 | 麻豆视频国产精品 | 5月丁香婷婷综合 | 网站在线观看日韩 | 久久伊人爱 | 香蕉视频久久久 | 中文字幕在线看视频国产 | 欧美性大战久久久久 | 国产精品中文字幕av | 国产乱码精品一区二区蜜臀 | 欧美日本啪啪无遮挡网站 | 成人黄色大片在线观看 | 亚洲专区欧美 | 一区二区 不卡 | 日日精品 | 国产精品一区二区吃奶在线观看 | 亚洲春色综合另类校园电影 | 国产亚洲精品成人av久久ww | 91精品一区二区三区久久久久久 | 精品免费视频. | 9幺看片 | 国产精品久久久久久久久久久杏吧 | 亚洲成aⅴ人片久久青草影院 | 亚洲六月丁香色婷婷综合久久 | 免费黄色网址大全 | 91精品一区二区在线观看 | 波多野结衣最新 | 国产伦理剧| 日韩电影黄色 | 日本中文字幕在线视频 | 国产一级免费av | 美女黄频网站 | www.亚洲精品视频 | 久久久久久97三级 | 国产淫a | 国产黄色精品视频 | 亚洲国产免费看 | 欧美成人性战久久 | 97精品久久 | 亚洲成人麻豆 | 99在线观看视频网站 | 久久久黄视频 | 在线视频手机国产 | 久草观看 | 亚洲国产免费网站 | av片一区 | 日韩在线免费播放 | 国产精品你懂的在线观看 | 久久久久免费精品国产小说色大师 | 中文字幕在线免费观看视频 | www.夜夜操.com | 99av在线视频| 精品一区中文字幕 | 欧美色图88| 激情五月***国产精品 | 亚洲成人一二三 | 婷婷伊人综合亚洲综合网 | 91丨九色丨91啦蝌蚪老版 | 人人玩人人添人人 | 日韩在线视频观看 | 欧美日韩国产伦理 | 在线观看色网站 | 97免费在线观看视频 | 亚洲免费资源 | 婷婷射五月| 久久毛片网站 | 中文国产字幕在线观看 | 激情五月视频 | 五月综合激情婷婷 | 国产999精品久久久久久绿帽 | 正在播放国产一区二区 | 日韩啪啪小视频 | 国产精品乱码久久久 | 91在线看视频免费 | 国产三级精品在线 | 91视频在线看 | 有码一区二区三区 | 成人久久18免费网站 | 午夜视频在线观看网站 | 另类老妇性bbwbbw高清 | 日一日干一干 | av电影免费看 | 国产伦精品一区二区三区无广告 | av观看在线观看 | 不卡的av片 | 在线导航av| 91香蕉嫩草| 日韩在线观看小视频 | 久久只精品99品免费久23小说 | 黄色一级性片 | 欧美日韩综合在线 |