四虎国产精品永久一区_国产熟女高潮av6666_久草在线这里只有精品_欧美成人午夜精品_国产韩国精品一区二区三区_性插久久

一文帶你了解京東自主研發(fā)物流數(shù)據(jù)平臺(tái)—數(shù)據(jù)蜂巢!

來(lái)源:IT168企業(yè)級(jí) | 2018-08-22 12:17

  9年互聯(lián)網(wǎng)/大數(shù)據(jù)領(lǐng)域研發(fā)、架構(gòu)經(jīng)驗(yàn),2015年加入京東物流,主要負(fù)責(zé)大數(shù)據(jù)相關(guān)架構(gòu)與開(kāi)發(fā)工作。

  摘要: 數(shù)據(jù)蜂巢平臺(tái)是京東物流自主研發(fā)的分布式、高性能、高可用、支持異構(gòu),離線和實(shí)時(shí)的大數(shù)據(jù)同步與管理平臺(tái)。關(guān)鍵技術(shù):HA;離線與實(shí)時(shí)同步整合;binlog采集,存儲(chǔ)與訂閱;客戶端并發(fā)消費(fèi);一致性校驗(yàn)與修復(fù);任務(wù)隔離。

  目前已經(jīng)在京東物流系統(tǒng)中大規(guī)模應(yīng)用,比如單源和多源復(fù)制,從全國(guó)各地倉(cāng)儲(chǔ)園區(qū)集群(上百個(gè))實(shí)時(shí)復(fù)制到IDC,從mysql到ES,從mysql到cassandra等等。倉(cāng)儲(chǔ)園區(qū)硬件、網(wǎng)絡(luò)環(huán)境復(fù)雜,數(shù)據(jù)蜂巢平臺(tái)需要考慮硬件設(shè)施和網(wǎng)絡(luò)故障的容錯(cuò)性。議題主要分享平臺(tái)誕生的背景,使用的關(guān)鍵技術(shù),架構(gòu)的演進(jìn)過(guò)程,演進(jìn)過(guò)程中所踩過(guò)的坑。

  正文:

一文帶你了解京東自主研發(fā)物流數(shù)據(jù)平臺(tái)—數(shù)據(jù)蜂巢!

  京東物流一線數(shù)據(jù)大部分都存在MySQL數(shù)據(jù)庫(kù)上,分布比較廣,包括國(guó)內(nèi)外園區(qū)庫(kù)房和IDC,這樣數(shù)據(jù)使用起來(lái)極不方便,各業(yè)務(wù)系統(tǒng)為了使用數(shù)據(jù),開(kāi)發(fā)出多種版本的同步工具,結(jié)果導(dǎo)致管理非常困難以及資源的浪費(fèi)。這時(shí)就需要一個(gè)統(tǒng)一的平臺(tái)把這些數(shù)據(jù)管理起來(lái)。

  架構(gòu)設(shè)計(jì)

一文帶你了解京東自主研發(fā)物流數(shù)據(jù)平臺(tái)—數(shù)據(jù)蜂巢!

  關(guān)于數(shù)據(jù)同步,主要分為:批量同步、實(shí)時(shí)訂閱和實(shí)時(shí)同步。

  批量同步: 采用sqoop的模式,把數(shù)據(jù)分片,然后進(jìn)行多機(jī)并發(fā)復(fù)制,用以提升效率。

  實(shí)時(shí)訂閱:使用消息隊(duì)列,即將binlog事件解析生成對(duì)應(yīng)的消息存儲(chǔ)在隊(duì)列中;

  實(shí)時(shí)同步:通過(guò)客戶端去消費(fèi)隊(duì)列將數(shù)據(jù)寫(xiě)入目標(biāo)存儲(chǔ),從而實(shí)現(xiàn)數(shù)據(jù)的實(shí)時(shí)同步。

  如何中將以上三個(gè)功能整合到一個(gè)平臺(tái)?

  首先,適配批量同步,參照sqoop, sqoop是借助于hadoop集群提交一個(gè)mr作業(yè), 類似的,蜂巢系統(tǒng)也提供一個(gè)集群,將一個(gè)批量同步作業(yè)分為多task去執(zhí)行。實(shí)時(shí)訂閱也可使用這種思路,不同的是每一個(gè)task即對(duì)應(yīng)一臺(tái)mysql實(shí)例的binlog采集;同理實(shí)時(shí)同步也可分成多個(gè)task,每一個(gè)task即為一個(gè)消息隊(duì)列的消費(fèi)客戶端。

  架構(gòu)圖如下所示:

一文帶你了解京東自主研發(fā)物流數(shù)據(jù)平臺(tái)—數(shù)據(jù)蜂巢!

  采用了經(jīng)典的master、slave結(jié)構(gòu),每一個(gè)slave上可以跑三種對(duì)應(yīng)的任務(wù)。BatchWorker負(fù)責(zé)把MySQL數(shù)據(jù)批量同步到storage里面,這里的storage是一個(gè)抽象,不一定就是存儲(chǔ)之類的系統(tǒng),也有可能是一些業(yè)務(wù)的處理。StreamWorker負(fù)責(zé)binlog的采集和消息隊(duì)列的維護(hù),如果有訂閱需求,使用系統(tǒng)提供的客戶端Consumer就可以直接消費(fèi)。

  Pieworker則是Consumer的分裝,只不過(guò)這個(gè)客戶端由集群去管理維護(hù)。

一文帶你了解京東自主研發(fā)物流數(shù)據(jù)平臺(tái)—數(shù)據(jù)蜂巢!

  BatchWorker結(jié)構(gòu)比較簡(jiǎn)單,主要由Fetcher、Sinker和Storage(與整體架構(gòu)圖中的storage不同,此處為一個(gè)buffer)組成。Fetcher接口負(fù)責(zé)抽取數(shù)據(jù),Storage負(fù)責(zé)緩存數(shù)據(jù),Sinker接口負(fù)責(zé)數(shù)據(jù)的寫(xiě)入。

一文帶你了解京東自主研發(fā)物流數(shù)據(jù)平臺(tái)—數(shù)據(jù)蜂巢!

  StreamWorker模仿MySQL的主從復(fù)制機(jī)制, RelayLogTask負(fù)責(zé)binlog的抽取;HHLTask負(fù)責(zé)解析binlog,生成消息體,最后存在hhl中,hhl即為上文提到消息隊(duì)列。

一文帶你了解京東自主研發(fā)物流數(shù)據(jù)平臺(tái)—數(shù)據(jù)蜂巢!

  客戶端: StreamJob除了采集binlog,維護(hù)消息隊(duì)列外,還提供了一個(gè)ClientServer模塊,用于接收客戶端的消費(fèi)請(qǐng)求。當(dāng)Consumer需要消費(fèi)的時(shí)候,請(qǐng)求會(huì)發(fā)送到ClientServer,ClientServer通過(guò)索引快速的定位到hhl文件的某一個(gè)位置,然后把數(shù)據(jù)讀取出來(lái),然后經(jīng)過(guò)客戶端的指定過(guò)濾規(guī)則進(jìn)行過(guò)濾,最終將消息體傳送給客戶端。

一文帶你了解京東自主研發(fā)物流數(shù)據(jù)平臺(tái)—數(shù)據(jù)蜂巢!

  消息的位點(diǎn)由三部分組成的:Serverld對(duì)應(yīng)的就是MySQL的Serverld;binlogPosition是一個(gè)長(zhǎng)整型數(shù)字,高32位為binlog文件下標(biāo),低32位為文件內(nèi)部的位置;time為對(duì)應(yīng)的binlog事件產(chǎn)生的時(shí)間。

  為解決性能問(wèn)題,客戶端支持多種并行模式。

  第一種是以事務(wù)為單位串行處理;

  第二種是在第一種基礎(chǔ)上進(jìn)行了一個(gè)簡(jiǎn)單的優(yōu)化,比如:一個(gè)事務(wù)內(nèi)只對(duì)單表操作,那么這個(gè)事務(wù)是完全可以并發(fā)的,不同表間的事務(wù)順序并不會(huì)影響最終結(jié)果的一致性;但事務(wù)內(nèi)對(duì)多表操作就需要繼續(xù)串行。所以第二種并發(fā)模式就是不斷串行并行轉(zhuǎn)變的過(guò)程。

  以上兩種消費(fèi)模式是以事務(wù)為單位,以下兩種以行為單位

  第三種是表級(jí)并發(fā),將事務(wù)拆分為多個(gè)行級(jí)操作,同表操作由同一線程完成,保障同一表操作的有序性;

  第四種是行級(jí)并發(fā),主要是把MySQL的數(shù)據(jù)同步到NOSQL上時(shí)使用,關(guān)系型數(shù)據(jù)庫(kù)同步時(shí)局限性較大,因?yàn)樾屑?jí)并發(fā)只保障同一主鍵的操作有序,而關(guān)系型數(shù)據(jù)庫(kù)會(huì)存在多個(gè)唯一約束,這樣即使保障了主鍵的操作有序也可能引起數(shù)據(jù)不一致。

一文帶你了解京東自主研發(fā)物流數(shù)據(jù)平臺(tái)—數(shù)據(jù)蜂巢!

  集群的特性:作為一個(gè)集群都需要要保證高可用、數(shù)據(jù)本地性和負(fù)載均衡。高可用這一塊主要分為三部分:

  MySQL: 由DBA保證數(shù)據(jù)庫(kù)的高可用,但當(dāng)Mysql主從切換時(shí),binlog的位點(diǎn)是不一致的,此時(shí)系統(tǒng)通過(guò)Serverld的檢測(cè)發(fā)現(xiàn)該變更,然后通過(guò)時(shí)間在新的mysql實(shí)列上定位正確的binlog位點(diǎn)。

  master(Queen):基于Zookeeper完成Active角色的選舉

  Bee(Slave):Bee宕機(jī)后由Master將其運(yùn)行的任務(wù)遷移到其他的Slave上。

  數(shù)據(jù)本地性:每一個(gè)Bee在啟動(dòng)時(shí)都配置了機(jī)房,分組等信息,作業(yè)提交時(shí)可以指定自己期望的運(yùn)行位置,與hadoop,spark類似。

  負(fù)載均衡: 每一個(gè)Bee會(huì)將自己的負(fù)載信息通過(guò)心跳發(fā)給Queen,queen進(jìn)行作業(yè)調(diào)度時(shí),會(huì)在滿足數(shù)據(jù)本地性的前提下選擇壓力最小的機(jī)器去運(yùn)行新任務(wù)。

  演進(jìn)

一文帶你了解京東自主研發(fā)物流數(shù)據(jù)平臺(tái)—數(shù)據(jù)蜂巢!

  HHL文件丟失:上文提到過(guò),如果Streamworker的運(yùn)行主機(jī)宕機(jī),Master會(huì)把它遷移到另外一臺(tái)機(jī)器上,但是Streamworker采集解析的binlog存在本地,遷移后會(huì)引起數(shù)據(jù)丟失,解決這個(gè)問(wèn)題通用的方案是多副本,但大數(shù)據(jù)量下的多復(fù)本會(huì)造成磁盤空間的浪費(fèi),尤其是在庫(kù)房環(huán)境下。

  并且這些數(shù)據(jù)有一個(gè)特點(diǎn),就是發(fā)生遷移時(shí),雖然解析過(guò)的數(shù)據(jù)丟失,但是原始binlog都會(huì)在機(jī)器上保存(dba會(huì)保留n天的binlog數(shù)據(jù)),最終可以通過(guò)數(shù)據(jù)補(bǔ)全來(lái)保證數(shù)據(jù)不丟失。

一文帶你了解京東自主研發(fā)物流數(shù)據(jù)平臺(tái)—數(shù)據(jù)蜂巢!

  上圖為第一版streamworker的擴(kuò)展,最右面的可以認(rèn)為是這一組的主線程,虛線位置發(fā)生任務(wù)遷移,切換到了新的主機(jī)上,此時(shí)虛線左邊的數(shù)據(jù)全部丟失。如果有客戶端需要消費(fèi)丟失的數(shù)據(jù),服務(wù)端則啟動(dòng)一組新線程,然后進(jìn)行catchup,catchup會(huì)把丟失的部分補(bǔ)齊并提供給客戶端消費(fèi)。

一文帶你了解京東自主研發(fā)物流數(shù)據(jù)平臺(tái)—數(shù)據(jù)蜂巢!

  元數(shù)據(jù): binlog是不記錄字段名等元數(shù)據(jù)的,而客戶端消費(fèi)時(shí)需要。最簡(jiǎn)單的方式是收集到binlog之后,去源庫(kù)上查詢,但在binlog采集延遲期間如果有ddl操作,會(huì)導(dǎo)致元數(shù)據(jù)不準(zhǔn)確。為解決該問(wèn)題系統(tǒng)實(shí)現(xiàn)了一個(gè)快照模塊。

  在StreamJob初次啟動(dòng)的時(shí)候,把對(duì)應(yīng)的MySQL里面所有表都做一份快照,在此后的運(yùn)行期間監(jiān)控DDL操作,當(dāng)解析到DDL操作時(shí)會(huì)將原快照取出生成一個(gè)復(fù)本,并在這個(gè)復(fù)本上應(yīng)用這個(gè)ddl,生成新的快照 。這樣系統(tǒng)可以保證任何時(shí)刻binlog對(duì)應(yīng)的元數(shù)據(jù)都是正確的,方便用戶使用。

一文帶你了解京東自主研發(fā)物流數(shù)據(jù)平臺(tái)—數(shù)據(jù)蜂巢!

  客戶端:服務(wù)端并不記錄客戶端的消費(fèi)位點(diǎn),消費(fèi)的位置由客戶端自行存儲(chǔ)。由于客戶端采用的是并發(fā)消費(fèi)模式,消息又是嚴(yán)格有序的,此時(shí)位點(diǎn)記錄就必須保障每一個(gè)記錄下的位點(diǎn)之前的所有消息都被正確處理了,此處引入了一個(gè)環(huán)形提交隊(duì)列(具體實(shí)現(xiàn)與disruptor類似)。

  當(dāng)連續(xù)的多個(gè)消息被正確處理,并達(dá)到記錄位點(diǎn)的間隔,此時(shí)提交隊(duì)列會(huì)將一個(gè)位點(diǎn)寫(xiě)入對(duì)應(yīng)的存儲(chǔ)介質(zhì)。比如1,2,3,4,5,8,10,14被處理完成,位點(diǎn)提交間隔為5,則5位置對(duì)應(yīng)的位點(diǎn)被記錄,當(dāng)6,7,9被處理完成后10再被記錄。

一文帶你了解京東自主研發(fā)物流數(shù)據(jù)平臺(tái)—數(shù)據(jù)蜂巢!

  以下主要為易用性的改進(jìn):

  SQL: 用戶通過(guò)SQL描述需要同步哪些字段,同步條件等信息,服務(wù)端通過(guò)解析sql執(zhí)行對(duì)應(yīng)的同步邏輯。

  Union: 用于處理多表合一的場(chǎng)景,通過(guò)加入來(lái)源標(biāo)識(shí)字段來(lái)解決唯一約束。

  Join: 在同步的過(guò)程中完成寬表的加工,內(nèi)部通過(guò)緩存,布隆過(guò)濾器等優(yōu)化方案來(lái)提升性能。

一文帶你了解京東自主研發(fā)物流數(shù)據(jù)平臺(tái)—數(shù)據(jù)蜂巢!

  一致性較驗(yàn):

  系統(tǒng)提供了兩種模型:

  第一種是使用pt_table_checksum的思路,比如要較驗(yàn)一張表的數(shù)據(jù),先把這張表的數(shù)據(jù)分成多個(gè)片段,然后對(duì)這些片段進(jìn)行crc計(jì)算,并將結(jié)果和計(jì)算的范圍存儲(chǔ)到同一個(gè)數(shù)據(jù)庫(kù)的表里去,此時(shí)會(huì)觸發(fā)一個(gè)binlog事件,當(dāng)消費(fèi)者消費(fèi)到這個(gè)事件后重現(xiàn)該操作,通過(guò)比對(duì)計(jì)算結(jié)果值來(lái)確定數(shù)據(jù)是否一致。

  這種方式一是侵入性比較強(qiáng),需要在原庫(kù)上建對(duì)應(yīng)的比對(duì)結(jié)果表,二是需要加鎖,三是對(duì)延遲的要求很高,當(dāng)延遲較大時(shí),消費(fèi)端拿不到對(duì)應(yīng)的比對(duì)事件,將無(wú)法確定數(shù)據(jù)一致性。

  第二種數(shù)據(jù)校驗(yàn)的模型是基于BatchJob實(shí)現(xiàn)。

一文帶你了解京東自主研發(fā)物流數(shù)據(jù)平臺(tái)—數(shù)據(jù)蜂巢!

  Fetcher抽取源和目標(biāo)雙方的數(shù)據(jù),排序后通過(guò)storage把數(shù)據(jù)傳遞給sinker,Sinker根據(jù)用戶自定義的比較接口對(duì)數(shù)據(jù)進(jìn)行比較,最后將差異通過(guò)Collector進(jìn)行收集。這種比對(duì)方式的缺點(diǎn)是不能保證時(shí)間序列,在比對(duì)的時(shí)候數(shù)據(jù)是變更的,比對(duì)出來(lái)的結(jié)果可能并不是真正的差異。

  此時(shí)我們需要修復(fù)比對(duì)結(jié)果,首先在比對(duì)開(kāi)始時(shí)把消費(fèi)端的位點(diǎn)記錄下來(lái),比對(duì)完成后,如果有差異則從比對(duì)開(kāi)始前記錄的位點(diǎn)進(jìn)行binlog重放,通過(guò)分析binlog中操作,對(duì)差異進(jìn)行修復(fù),輸出最終結(jié)果。

  該比對(duì)模型最大的問(wèn)題是需要抽取比對(duì)雙方的數(shù)據(jù),對(duì)帶寬占用較大,為減少網(wǎng)絡(luò)傳輸,內(nèi)部會(huì)對(duì)數(shù)據(jù)進(jìn)行初步的篩選,將要比對(duì)的數(shù)據(jù)分成多個(gè)片段,在存儲(chǔ)端對(duì)每個(gè)片段進(jìn)行md5計(jì)算,fetcher只收集md5值 ,只有雙方md5值不同時(shí)才將真正的數(shù)據(jù)抽取到計(jì)算端進(jìn)行比較。

一文帶你了解京東自主研發(fā)物流數(shù)據(jù)平臺(tái)—數(shù)據(jù)蜂巢!

  修復(fù):

  系統(tǒng)提供兩種修復(fù)方式:

  一是基于binlog事件傳遞,當(dāng)比對(duì)出差異數(shù)據(jù)后,只需要在源庫(kù)上對(duì)差異數(shù)據(jù)進(jìn)行一個(gè)偽操作(比如更改update_time字段),觸發(fā)binlog事件的產(chǎn)生,消費(fèi)端收到該事件即可修復(fù)錯(cuò)誤數(shù)據(jù)(事件對(duì)應(yīng)的消息體內(nèi)包含了所有對(duì)應(yīng)字段的值,并不只限于update_time字段),該方式缺點(diǎn)是受延遲的影響,同時(shí)還需要源庫(kù)的寫(xiě)權(quán)限。

  二是直接修復(fù),即直接在目標(biāo)上將差異數(shù)據(jù)修正。在修復(fù)數(shù)據(jù)時(shí)需要加鎖或暫停同步,避免并發(fā)問(wèn)題。

一文帶你了解京東自主研發(fā)物流數(shù)據(jù)平臺(tái)—數(shù)據(jù)蜂巢!

  資源的隔離: 系統(tǒng)默認(rèn)只提供了常用的同步功能,當(dāng)默認(rèn)實(shí)現(xiàn)無(wú)法滿足客戶需求時(shí),用戶需要自行編寫(xiě)代碼來(lái)實(shí)現(xiàn)對(duì)應(yīng)的接口來(lái)完成他們的邏輯。Bee開(kāi)始使用的線程模型,即每一個(gè)Bee可以看做一個(gè)線程池,多個(gè)任務(wù)都在同一線程池內(nèi)運(yùn)行,而用戶自定義代碼又無(wú)法控制,導(dǎo)致不同任務(wù)相互影響,更有甚者任務(wù)結(jié)束后資源不釋放。

  為保證資源隔離,將線程改為進(jìn)程,將不同作業(yè)的任務(wù)交由不同的子進(jìn)程去執(zhí)行,子進(jìn)程啟動(dòng)時(shí)會(huì)指定額定運(yùn)行資源;所有子進(jìn)程由Bee統(tǒng)一管理,Bee不再運(yùn)行具體任務(wù),作業(yè)結(jié)束后,Bee將未退出的子進(jìn)程全部強(qiáng)制殺死。


【聲明】物流產(chǎn)品網(wǎng)轉(zhuǎn)載本文目的在于傳遞信息,并不代表贊同其觀點(diǎn)或?qū)φ鎸?shí)性負(fù)責(zé),物流產(chǎn)品網(wǎng)倡導(dǎo)尊重與保護(hù)知識(shí)產(chǎn)權(quán)。如發(fā)現(xiàn)文章存在版權(quán)問(wèn)題,煩請(qǐng)聯(lián)系小編電話:010-82387008,我們將及時(shí)進(jìn)行處理。

10秒快速發(fā)布需求

讓物流專家來(lái)找您

主站蜘蛛池模板: 久草视频手机在线观看_高清一区二区三区四区_999ZYZ玖玖资源站永久_99热精品在线播放_国产老熟妇精品观看_欧美日韩成人网_天天摸日日添狠狠添婷婷_激情av中文字幕 | 在线99_三年片免费观看影视大全满天星_国产网红主播精品av_日韩美女在线_一级在线播放_国产精品成人一区无码_精品久久久久一区二区_H无码精品动漫在线观看导航 | 国产免费一级特黄真人视频_9x9x9x人成免费观看y_拍拍拍产国影院在线观看_国产av久久久久精东av_亚洲熟妇无码爱V在线观看_久久精品国产一区_看黄色a级片_久久久久99人妻一区二区三区 | 一级久久精品_eeuss影院一区二区三区_久久精品国产成人_在线播放偷拍一区精品小说_91懂色_女人十八毛片a级毛片_无码人妻一区二区三区免费看成人_欧美2区3区4区 | 国产精品原创巨作av_馬与人黃色毛片一部_91成人品_国产一极内射視颍一_一级国产_日日日日干干干干_啪视频网站_裸体久久女人亚洲精品 | 国产精品人妖_亚洲永久经典_久久久精品久久日韩一区综合_gogogo免费高清看中国_国产真实生活伦对白_日韩欧美资源_九九久久国产_国产精品无码日韩欧 东京复仇者第三季天竺篇在线观看_99手机国产精品_国产网红福利视频一区二区_色wwwwww_五月香蕉网_天天操天天射综合_在线不卡中文_av观看免费 | 亚洲第一视频_com.黄_欧美日韩在线亚洲二区综二_免费中午字幕无吗_www.久久精品视频_精品自拍农村熟女少妇图片_狠狠操狠狠干狠狠_欧美一区二区三区诱惑在线 | 国产精品草草在线观看_国产成人亚洲影院在线播放_亚洲一二三四区不卡_黄频视频在线观看_性欧美极品另类_免费在线看一区_人妻无码精品久久亚瑟影视_息与子五十路中文字幕 | 欧美日韩精品视频一区二区在_欧美一级片网站_大地资源影院在线播放_亚洲bbw性色大片_小伙和少妇干柴烈火_少妇厨房愉情理伦片BD在线观看_精品一区二区三区日韩_91日日日 | 亚洲国产精品乱码一区二区三区_日韩精品91_久久中文字幕一区_国产精品久久久久9999_午夜免费精品_伊人网成人网_草久在线播放_伊人亚洲综合影院首页 国产偷伦视频片免费视频_久久影院一区二区三区_成人网免费在线观看_成人无码www免费视频网站软件_黄色网站免费观看视频_色综合天天_5g国产精品影院天天5g天天爽_wwxx在线观看免费 | 天天搞美女视频_久久久亚洲欧洲日产国码二区_边摸边吃奶边做爰视频网站_天天干天天爱天天操_欧美熟妇性XXXX欧美熟人多毛_亚洲春色CAMELTOE一区_免费国无人区码卡二卡_亚洲精品国产黑色丝袜 | 人妻少妇精品专区性色av_中文字幕.av.在线_久久精品国产亚洲7777_av鲁丝一区鲁丝二区鲁丝三区_欧美大片18禁AAA免费视频_欧美第一页_99国产精品久久久久99打野战_国产精品无码无卡在线观看久 | 本免费Av无码专区一区_日韩中文不卡_丝袜高潮流白浆潮喷在线播放_亚洲AV无码片区一区二区三区_春色视频成人www_久久久国产一级_日韩精品一二三区_av黄色免费 | 亚洲一区二区精品在线观看_91精品国产综合久久小仙女图片_性欧美freexxxx_精品国产免费久久久久久尖叫_撕开奶罩揉吮奶头好爽_亚洲精品中文幕一区二区_成人wwxx免费观看_国产精品第页 | 国产在热线精品视频_亚洲精品无码MV在线观看_亚洲一区二区三区在线观看精品中文_污网站在线浏览_色情WWW成人片WWW222_久久久国产精品女同三区_国产偷亚洲偷欧美偷精品_欧美一区二区三区xxxx监狱 | 国产精品欧美亚洲_av午夜影院_999av视频_一二级黄色大片_成人高清影院_国内成人精品2018免费看_国产精品se_亚洲富人天堂视频 | 飘雪影院手机免费观看免费动漫_国产五十路毛片_a级毛片_欧产日产国产精品乱噜噜_亚洲日本国产精品_久久超乳爆乳中文字幕_囯产精品一品二区三区_国产精品精品自在线拍 | 五十路六十路老熟妇a片_麻豆视频大全_国产亚洲欧美日韩夜色凹凸成人_国产一级毛片不卡_免费看处国视频毛片_亚洲精品主播自拍_五十路熟女の豊満な肉体_久久久无码精品成人A片小说 | 久久久国产精华液_制服丝袜第10页综合_亚洲色无码a片一区二区麻豆_40岁成熟女人牲交片_国产欧美一区二区三区国产幕精品_欧美gogo_日本无人区码suv_人人性人人爱 中文字幕无码日韩专区_久久艹逼_男人j进女人p免费视频_日本黄色免费在线_天堂综合网久久_亚洲欧美国产精品久久久久_中文字幕日韩高清2024_亚洲欧美激情精品一区二区 | 色网站在线视频_国产九色网站_成人免费视频国产_禁果av一区在线在观看_欧美暴力analvideos_在线观看中文字幕dvd播放_日韩精品资源二区在线_无码H肉3D动漫在线观看 | a黄色录像_久久久123_69视频网站_无码高潮爽到爆的喷水视频_最新国产成人av网站网址麻豆_亚洲第一天堂久久_99国产精品一区二区_欧美区国产区 | 日日操日日爽_一级毛片免费网站_久久久国产一区二区_日韩av免费在线播放_欧美国产日韩久久MV_国产精品∧V在线观看_国产动作大片中文字幕_国产美女自卫慰视频福利 | 91黄在线_国产99视频精品免费视看6_91啦丨porny丨国产_欧美日韩国产另类图片区_国产在线精品无码二区_青青青视频香蕉在线观看视频_日韩在线免费视频观看_日本三级毛片 | 国产内射在线激情一区_免费观看成人欧美WWW色_国模无码视频一区_午夜a级理论片在线播放琪琪_四虎看黄_亚洲AV成人无码一区无广告_成人午夜影视_国语对白做受xxxxx在线 | 九九久久久久_国产一级毛片不卡视频_91福利视频在线观看_国产精品久久午夜夜伦鲁鲁_av激情_av无码国产精品色午夜_国产一区免费在线观看_亚洲国产成人精品无码区 | 欧美高清FREEXXXX性_好大好硬好爽18禁视频_HEYZO无码综合国产精蜜臀_天天av综合_在线国产福利精品_亚洲另类伦春色综合妖色成人网_免费无套内谢少妇毛片A片软_免费不卡欧美自拍视频 | 粉嫩蜜臀av国产精品网站_一级级黄_日韩高清中文字幕一区二区_黄色影院免费看_农村熟女大胆露脸自拍_中文字幕亚洲二区_一本岛视频在线观看_亚洲欧美日韩不卡 | 欧美视频亚洲视频_丰满熟妇乱又伦在线无码视频_在线中文字幕精品第5页_粉嫩在线一区二区三区视频_免费A级毛片无码A∨性按摩_一女三黑人理论片在线_扒开双腿疯狂进出爽爽爽动态图_国产成人精品无码免费看 | 91色片_99久热RE在线精品99RE6_把女人弄爽特黄a大片777_免费观看很黄很色裸乳视频网站_日本aaaaa级毛片片_91免费在线视频观看_欧美の无码国产の无码影院_永久中文字幕免费视频网站 | 一本一道久久a久久精品逆3p_内射精品无码中文字幕_午夜久久国产_免费av毛片不卡无码_天天躁夜夜躁狠狠综合2020_国产香蕉精品视频老妇_欧美一区二区三区蜜桃_色999在线 | 国产乱色精品成人免费视频_亚洲免费一二三区_中文字幕色视频_免费在线中文字幕_很黄很色的动态图_亚洲成a人片在线观看天堂_av在线免费观看中文字幕_亚洲AV永久无码天堂网国产 | 2019中文字幕在线_97精品超碰一区二区三区_亚洲精品自拍_国产成人毛片精品不卡在线_日黄的免费视频_国产美女一区二区三区在线观看_亚洲激情av在线_800AV凹凸视频免费观看 | 九色免费视频_国产精品一区二区亚洲_www.久久综合_亚洲九九影院_日本国产免费_狠狠色噜噜狠狠狠狠色综合久AV_亚洲精品美女久久777777_中文一区二 | 黑人大荫道BBWBBB高潮潮喷_亚洲欧美h_免费观看国产大片_男人戳女人戳到爽视频_av在线直接看_性xxxx18免费观看视频软件_四虎5151久久欧美毛片_日韩高清片 | 国产精品久久久天天影视香蕉_黄色毛片前黄_一本色道久久88亚洲精品综合_青青草欧美_国产一区二区三区天码_久久久精品区_怡春院性无码免费视频_成人短篇合集t×t | 97caopron在线视频_久久精品国产免费观看_色欲AV蜜桃一区二区三_久久精品88_瑞典性xxxxxhd高清_69av网站_91大神新作在线观看_巨茎爆乳无码性色福利 国产福利一区二区三区在线播放_中文字幕久精品免费视频_毛片a在线_精品黄色视_免费观看韩国理论片_成人免费A级毛片无码_一级免费看_中文字幕永久免费 | CHINESE国产AV巨作VIDEOS_美女视频很黄很a免费_国产在线视频不卡香蕉_久久无码中文字幕免费影院蜜桃_国产激情_亚洲国产精_2021久久_国产亚洲精品美女久久久久 | aaaa视频_丁香五月缴情在线中文视频_亚洲国产精品久久久天堂_国产免费AV片无码永久免费_久久国产禁久久_www.亚洲.com_精品一区二区三区久久_无毒不卡在线 欧美日韩高清一区二区_www.se天堂_99国产精成人午夜视频一区二区_亚洲国产高清在线一区二区三区_久久婷婷五月综合色99啪_国产婷婷色一区二区三区在线_小尤奈无码视频_a4yy欧美一区二区三区 | 成人AV片无码免费天天看_亚洲色图啪啪_色婷婷一区二区三区冲田杏梨_亚洲韩日精品_国产AV无码专区亚洲精品_亚洲乱色_免费xxxx大片国产片_人妻无码一区二区三区TV | 色网站在线视频_国产九色网站_成人免费视频国产_禁果av一区在线在观看_欧美暴力analvideos_在线观看中文字幕dvd播放_日韩精品资源二区在线_无码H肉3D动漫在线观看 | 东北丰满熟女人妻与小伙_久久93_最新在线视频_免费A级毛片18禁_国产精品久久久久久久久婷婷_疯狂做受XXXX高潮欧美老妇_四虎国产精品永久地址99_99精品视频免费热播在线观看 |