精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

字節(jié)跳動合并編譯實踐

開發(fā)
本文整理自字節(jié)跳動基礎架構/服務框架團隊尹旭然在 QCon 2024 的分享,主要介紹了服務框架團隊編譯期合并服務的技術實踐和經(jīng)驗總結。

字節(jié)跳動微服務過微的背景

截止 2023 年底,字節(jié)跳動內部微服務的數(shù)量超過了 30 萬,而且這個數(shù)字還在快速的增長當中,每個季度仍然會新增上萬個微服務。伴隨著海量的微服務,微服務過微帶來的編解碼、序列化、網(wǎng)絡和服務治理開銷過大問題也愈加凸顯,在一些性能敏感、QPS 大的的服務上急需優(yōu)化。于是極致的微服務合并方案合并編譯應運而生。目前公司內采用合并編譯方式合并的服務超過 300w core,取得的 CPU Quota 收益超過 40w core,接口時延根據(jù)包大小有 2-15 ms 不等的優(yōu)化。

合并編譯如何解決微服務過微的問題

合并編譯是將兩個(或多個)微服務,在編譯期間合并為一個二進制,以一個進程的方式運行。如果當前存在 A -> B 這樣一個調用關系,A B 合并之后,將以一個二進制的方式呈現(xiàn)。A 原來通過 RPC 方式調用 B 的邏輯,將轉變?yōu)?A 在進程內部通過函數(shù)調用 B 實際的處理函數(shù)。

圖片

流量比例 A : C : D = 8 : 1 : 1 示意圖


合并編譯優(yōu)勢相比 RPC 調用是非常明顯的。

  • 在性能方面:RPC 調用時的「編解碼、服務治理、網(wǎng)絡」的開銷在合并后將完全的「減少到零」
  • 在研發(fā)效率方面:合并編譯仍然能夠「保留微服務研發(fā)的優(yōu)勢」,在日常開發(fā)的時候還是 A 服務的團隊去維護 A, B 服務的團隊去維護 B,只有在上線時才會合并在一起,并不會對研發(fā)效率造成影響
  • 在靈活性方面:合并編譯能夠做到「靈活地合并與拆分」,如示意圖所示,A 和 B 就合起來了, C 和 D 并不接入合并編譯,仍然以 RPC 的方式去調用真正部署的 B
  • 在穩(wěn)定性方面:合并后的服務的「穩(wěn)定性也會相應地提高」,合并編譯不再經(jīng)過網(wǎng)絡也意味著微服務帶來的超時、過載等問題將不復存在。

不過,合并編譯還是有一點劣勢的。首先,在運行時隔離性上,微服務帶來的資源的隔離、故障隔離在合并后將不復存在;第二個點是版本管理,在合并之后,如果要更新 A 進程中依賴的 B 的版本,需要將 A 重新編譯上線。我們也做了大量的工作去減少這些弊端對業(yè)務的影響。

合并編譯面臨的挑戰(zhàn)

合并編譯在研發(fā)過程中也面臨非常多的挑戰(zhàn),我們將這些挑戰(zhàn)分成了三大類:基礎挑戰(zhàn),可優(yōu)化的點以及理想形態(tài)。基礎挑戰(zhàn)是合并編譯必須要解決的問題,否則在上線過程中可能會出現(xiàn)很多問題;而優(yōu)化項則是能夠讓用戶更友好的使用合并編譯,減少合并編譯對用戶的影響;最后是合并編譯的理想形態(tài),也是目前合并編譯還沒有解決的一些點。

圖片

合并編譯面臨的挑戰(zhàn)


在基礎挑戰(zhàn)方面,主要包括四大類:

1.在隔離性上:

   a. 依賴隔離:兩個服務依賴了不兼容的依賴版本,該如何解決沖突?

   b. 環(huán)境變量隔離:兩個服務依賴了相同的環(huán)境變量但是不同的值,該如何隔離環(huán)境變量?

   c. 權限的隔離,合并后的服務如何仍然擁有原本的身份呢?

   d. 身份的隔離:合并后的服務如何按照原有的身份進行打點和上報呢?

2.調用轉換:如何自動化地將 RPC 的方式去轉換為 Func call 的方式?

3.易用性上:合并編譯需要一個自動化的工具去自動的完成這一次的合并。

4.穩(wěn)定性上,合并編譯改造完成后,如何進行第一次的上線,最好還能有一些灰度的邏輯呢?如何保障在后續(xù)迭代過程中的穩(wěn)定性呢?

在可優(yōu)化項當中,主要包括兩大類:

1.穩(wěn)定性:合并后該如何測試才能保證合并后的穩(wěn)定性呢?以及如果線上出現(xiàn)了問題,該如何快速的定位到問題,讓相應的同學快速止損和排查呢?

2.易用性上:

   a. 版本管理:下游怎么知道上游用了哪些版本?上游又怎么知道自己該使用下游哪個版本呢?

   b. 研發(fā)流程:上游有上游的研發(fā)流程,下游有下游的研發(fā)流程,那合并后的研發(fā)流程應該是什么樣子的呢

   c. 編譯問題排查:合并后的服務,如果遇到編譯問題用戶就會找上來,如何讓用戶能夠擁有一定的排查能力呢?

   d. 本地 Debug:用戶是沒有合并后代碼的,在本地用戶該如何進行斷點調試呢?

以上的這些問題合并編譯都一一的解決了,不過針對最后一個大類理想層面,目前還沒有很好的解決方式。第一類是集中在運行時進程內的隔離性,如何將資源、Panic 進行隔離;第二類是如何讓用戶接受和理解合并編譯的形態(tài),就好像接受和理解微服務一樣。

合并編譯如何解決技術挑戰(zhàn)

依賴隔離

Go 采用 Go Module 的方式進行依賴管理,不同的 import path 代表不同的依賴,比如

import (
    "namespaceA/github.com/cloudweGo/kitex"
    "namespaceB/github.com/cloudweGo/kitex"
)

代表兩個依賴。同時 Go Module 支持 replace 的方式,將遠端依賴替換到本地目錄當中,并按照路徑進行尋址。比如

replace github.com/cloudweGo/kitex => /tmp/kitex

那么,代碼中引用的 github.com/cloudweGo/kitex/client 會去 /tmp/kitex/client 路徑下尋找對應的代碼。

于是合并編譯利用這兩個特性進行了依賴隔離:首先將每個服務的依賴下載下來分別放到隔離后的目錄內,如下圖所示

圖片

之后對不同的服務內的每個 import path 添加相對應的前綴,并使用 replace 將前綴指向對應的本地目錄。

圖片

通過這種方式,合并編譯實現(xiàn)了完全的依賴隔離。有了依賴隔離作為基礎,其他的環(huán)境變量的隔離、權限的隔離、身份的隔離等等都很容易能夠解決了。

調用轉換

圖片

調用轉換


左邊是一個 RPC 方式的調用圖,Client 發(fā)起一次調用,需要經(jīng)過服務治理的中間件、傳輸?shù)脑畔⒑途幗獯a部分,再通過網(wǎng)絡傳輸?shù)綄Χ耍?Server 也需要進行一次同樣的一些操作。合并編譯希望做到右邊的這種形式,Client 發(fā)起一次調用,它調用的是進程內的 Server 的對應的方法。實現(xiàn)這樣的轉換需要兩步,第一步需要獲得 method 實現(xiàn);第二步將實現(xiàn)去注入到 Client 當中去。

為了獲得 Server 暴露的接口,合并編譯做了下圖所示的處理。左邊這張圖是一個正常的 Kitex 服務的初始化和啟動,它會執(zhí)行一些初始化的邏輯,然后初始化并且啟動 Server。在合并編譯場景下,這部分的邏輯變成了右圖。合并編譯將 main 函數(shù)變成了一個可導出的內函數(shù),可導出了才可以讓 Client 去調用。第二個合并編譯給這個函數(shù)增加了返回值,表示 Server 的元信息。

圖片

獲取接口的信息


得益于 Kitex 良好的擴展性,Kitex 將 Client 抽象為了一個接口,只要實現(xiàn)這個 Call 方法,就可以實現(xiàn)一個 Kitex 的 Client,也是得益于這個抽象,使得合并編譯注入 Server 實現(xiàn)非常容易。

type Client interface {
    Call(ctx context.Context, method string, request, response interface{}) error
}

一個普通的 RPC Client 的初始化只需要這一次 RPC 的信息就可以了。那針對合并編譯 ServiceInlineClient 的初始化,還需要增加Server 的元信息參數(shù)。這個信息就是通過上文對改造后的 main 函數(shù)調用獲得的。

serverInfo := server.Main()
kc, err := client.NewServiceInlineClient(serviceInfo(), serverInfo ,options…)

第二步合并編譯需要為 ServiceInlineClient 實現(xiàn) Call 方法,使得它在 Call 的時候不去走 RPC 的邏輯,而是去走本地調用,在 ServerInfo 里找對應的方法。Kitex 針對合并編譯做了一些特殊的支持,以上的這部分代碼的實現(xiàn)在 CloudweGo Kitex 當中以上代碼,感興趣的小伙伴可以參考 Kitex 中合并編譯部分。

版本管理

合并編譯和 SDK 版本管理的痛點有點相似,比如:

  1. 下游升級時,上游感知不到,會造成版本的不一致
  2. 下游并不知道上游依賴的是自己的哪個版本,也就無法告知上游升級
  3. 版本選擇復雜,上游也不知道這次升級需要選擇下游的哪個版本

于是,合并編譯針對具體的業(yè)務場景做了梳理,并與研發(fā)流程與發(fā)布平臺做了聯(lián)動,平臺提供了基礎的能力,減少用戶對合并編譯的學習成本。

圖片

針對最終一致性,下游可以在鏡像平臺上配置好上游依賴的默認版本,下次上游上線的時候可以默認帶上去,也不用上游主動去選擇該使用的版本。針對強一致性可以通過一條流水線,同時升級上下游;也可以擁有上游權限的團隊直接去升級上游服務。除此之外,平臺上也會收集版本的元信息,用戶可以很直觀的看到自己依賴了哪些版本,以及自己的哪些版本被依賴了。


圖片

修改默認發(fā)布的版本


圖片

上游選擇下游的版本

服務接入

合并編譯主要解決微服務過微帶來的性能問題,其收益公式如下

DownstreamQuota 指下游服務的資源申請量;MergeRatio 指合并的比例;Codec Ratio 指編解碼的開銷;ServiceGovernaceRatio 指服務治理的開銷。

從收益公式中可以看到,合并編譯應該聚焦于「資源量大、調用關系密切、編解碼開銷大」的服務,才能夠拿到較大的收益。為了能夠快速篩選出適合接入的服務,合并編譯團隊從 Trace 流量表、Quota 資源表出發(fā),對全公司內的服務進行篩選,篩選條件為:從 Server 視角看,來自單一最大上游的流量占總流量的比例超過 30% 或者從 Client 視角看,來自單一最大下游的流量占總流量的比例超過 30%。之后再和 Quota 表做關聯(lián),按照 Client + Server 總 Quota 降序排列,于是就得到了一張公司內大致適合合并的鏈路表。該表是合并的必要條件,還要滿足:

  1. 非緩存、固定開銷類型的服務:這類型的服務在合并后因為實例數(shù)增加會導致開銷增加。
  2. 容器負載太高的服務:容器負載高的服務本身就不是很穩(wěn)定,合并可能會加劇。除此之外,內存很高的服務沒法合并,合并是內存直接相加,但是容器規(guī)格是有上限的。
  3. 編解碼大于3%的服務:編解碼大于 3% 合并后比較穩(wěn)妥的可以看到收益,如果低于 3% 的話服務是很重計算型的服務,不一定適合合并。

案例分析

下面是從鏈路表中篩選出的一對比較適合合并的服務。從 Server Ratio 中 0.962 中可以看出,這個下游 96% 的流量都是來自這一個上游,流量的親和度非常高;同時 Client Quota 和 Server 的 Quota 相差不多,那這一對就是潛在的適合合并的服務。

圖片

之后再結合火焰圖上尋找 Kitex 的編解碼開銷,一般來說編解碼開銷在 3% 以上合并是有收益的,開銷在 5% 以上的收益比較大。像下面的這個服務編解碼占到了近10%(包非常大),這樣的服務合并的收益是非常大的。

圖片

火焰圖編解碼開銷


結合流量關系表和火焰圖的篩選,這對服務取得了 4w+ 核的收益。

除此之外,除了拿到 CPU 收益,針對時延、SLA 等也拿到了不小的收益,甚至在很多非 CPU 收益的場景,合并編譯繼續(xù)發(fā)揮它的價值,比如:

  • 大上游 + 小下游:防止突發(fā)流量導致下游過載,常態(tài)預留較多資源又會造成浪費。合并后使得小下游可以使用整個服務的資源。
  • 利用合并編譯做 RPC 權限收斂:下游每新增一個上游就要為這個上游添加訪問權限、配置限流等等,而利用合并編譯多身份的能力,用戶添加了一個 proxy 層,并將多個上游與該 proxy 進行合并編譯,大大減少了配置的成本。

合并規(guī)模

根據(jù)鏈路表中的數(shù)據(jù),粗篩公司內部一共有 1.8w 條鏈路可以合并,鏈路總核數(shù)約 2.6 億核。抽樣 500 條鏈路,其中能夠合并的服務鏈路條數(shù)為 13 條。按照合并后 10% 的收益統(tǒng)計,合并編譯可以帶來的 CPU 收益約為 67w core。

目前,合并編譯采用重點服務點對點跟進的策略,公司內部已經(jīng)完成合并編譯的 CPU 核數(shù)超過 300w core,取得了超過 40w core 的收益,接口時延也有 2-15ms 不等的收益。

總結與展望

合并編譯能夠在字節(jié)跳動內部大規(guī)模落地,證明了合并編譯這種形態(tài)在架構上的可行性。目前,合并編譯推進方式是點對點的,針對的是已有的服務,在降本增效的背景下,如果合并后有性能和成本的收益,則會盡可能的推動業(yè)務進行合并。不過,這樣的推進缺乏全局統(tǒng)一的視角,對業(yè)務架構的演進幫助不大,且效率相對比較低。未來,我們希望自頂向下的平臺化地推進。

這與團隊內發(fā)起的業(yè)務域體系構建項目不謀而合。業(yè)務域項目針對目前面臨的業(yè)務架構混亂、鏈路復雜、架構復雜度高等問題,推出一套完善的平臺和產(chǎn)品,幫助業(yè)務完成業(yè)務域的自動劃分和分層。業(yè)務域項目會借助合并編譯和流量治理等工具和能力,從更高的視角去做架構復雜度治理,包括「鏈路治理」「過微服務治理」

  • 鏈路治理:對于鏈路過深的場景,可以借助合并編譯完成上下游的合并,降低鏈路深度;未來合并編譯也將探索循環(huán)依賴、相互依賴場景下多個微服務合并能力。
  • 過微服務治理:對于微服務拆分過細、服務的資源 Quota 低的場景,合并編譯將支持多個 Server 的合并,合并后以一個進程的方式對外提供服務,方便統(tǒng)一進行治理和管控。

可以期待的是,結合合并編譯這一成熟且高效的工具,業(yè)務域的架構師在「不修改代碼」的情況下,可以快速、自動化完成不同場景下的微服務合并,「極大降低架構優(yōu)化和業(yè)務改造的成本」,從而縮減低價值服務,沉淀高價值服務,最終形成清晰的業(yè)務架構。微服務的合并并非是對微服務的全盤推翻,而是重新對業(yè)務架構進行審視和治理,結合當前業(yè)務的規(guī)模和研發(fā)效率對其進行優(yōu)化,朝著理想架構演進。

Reference

CloudWeGo:https:www.cloudwego.io

Kitex:https://github.com/cloudwego/kitex

責任編輯:龐桂玉 來源: 字節(jié)跳動技術團隊
相關推薦

2022-04-07 16:35:59

PGO 優(yōu)化profile 數(shù)據(jù)編譯優(yōu)化

2024-04-23 10:16:29

云原生

2023-01-10 09:08:53

埋點數(shù)據(jù)數(shù)據(jù)處理

2022-08-21 21:28:32

數(shù)據(jù)庫實踐

2022-12-23 08:58:35

字節(jié)跳動YARN架構

2022-07-12 16:54:54

字節(jié)跳動Flink狀態(tài)查詢

2022-05-23 13:30:48

數(shù)據(jù)胡實踐

2022-06-22 06:49:39

Hertz開源HTTP 框架

2024-11-01 17:00:03

2022-07-18 16:02:10

數(shù)據(jù)庫實踐

2021-09-06 11:15:05

數(shù)據(jù)治理字節(jié)跳動埋點

2025-01-22 14:00:12

2024-08-22 14:53:24

PromptAI大模型

2023-06-09 14:14:45

大數(shù)據(jù)容器化

2022-10-14 14:47:11

Spark字節(jié)跳動優(yōu)化

2023-11-20 07:27:00

云原生Spark

2022-11-24 08:50:07

數(shù)據(jù)中臺Data Catal

2024-01-03 16:29:01

Agent性能優(yōu)化

2022-12-23 09:04:33

字節(jié)跳動數(shù)據(jù)治理架構
點贊
收藏

51CTO技術棧公眾號

一区二区不卡在线观看| 国产精品成人一区| 久久久高清视频| 不卡福利视频| 亚洲欧洲一区二区在线播放| 国产精品乱码视频| 精品一区二区无码| 97精品国产福利一区二区三区| 97国产精品videossex| 国产成人精品久久久| 99久久久无码国产精品不卡| 国语一区二区三区| 欧美日韩午夜影院| 精品久久久久久久久久中文字幕| 国产同性人妖ts口直男| 亚洲一区二区免费看| www国产精品com| 黄色录像a级片| 粉嫩一区二区三区在线观看| 欧美色道久久88综合亚洲精品| av在线不卡观看| 久操视频在线免费观看| 激情久久久久| 日韩性xxxx爱| 欧美性猛交xxxx乱| 欧美精品密入口播放| 777久久久精品| 日韩精品一区二区三区久久| 中文字幕伦理免费在线视频| 国产欧美日韩中文久久| 精品一区二区三区日本| 国产av无码专区亚洲av麻豆| 日本在线不卡一区| 欧洲日本亚洲国产区| 免费在线黄色片| 香蕉综合视频| 色多多国产成人永久免费网站 | 成人软件在线观看| 有码一区二区三区| 不卡中文字幕在线| 日本在线观看www| 国产欧美精品一区aⅴ影院| 国产精品裸体一区二区三区| 国产高清第一页| 国产在线播放一区三区四| 国产精品美女无圣光视频| 男人日女人网站| 亚欧成人精品| 欧美在线视频一区| 日韩毛片一区二区三区| 亚洲欧美日韩国产一区| 91国内免费在线视频| 国产午夜免费视频| 亚洲精品日韩久久| 91av视频在线观看| 久久国产精品系列| 久久久久在线| 国产精品男女猛烈高潮激情| 中文字幕av无码一区二区三区| 天天综合久久| 久久最新资源网| 成年人av电影| 一区在线播放| 日本高清视频一区| 最近中文字幕在线免费观看| 麻豆极品一区二区三区| 91久久久久久久久久| 国产美女永久免费| 国产福利一区二区三区| 99re视频在线播放| 污污视频在线免费看| 久久综合五月天婷婷伊人| 日本在线观看不卡| 麻豆视频免费在线观看| 亚洲综合一区二区精品导航| 三上悠亚久久精品| 成人日韩在线| 欧美一级国产精品| 一级特黄a大片免费| 国产欧美一区二区三区精品观看 | 亚洲自拍另类欧美丝袜| 亚洲精品国产精品国| 成人性生交大合| 欧美日韩亚洲在线| 日本成a人片在线观看| 夜夜操天天操亚洲| 国产极品美女高潮无套久久久| 污视频在线看网站| 狠狠躁天天躁日日躁欧美| 999香蕉视频| 精品中文在线| 亚洲老头同性xxxxx| 亚洲少妇xxx| 日韩午夜激情| 国产免费一区视频观看免费| 亚洲第一天堂网| 久久午夜国产精品| 强开小嫩苞一区二区三区网站 | 九九久久电影| 俺去了亚洲欧美日韩| 国产精品18p| 日本女人一区二区三区| 亚洲va欧美va国产综合久久| 婷婷丁香花五月天| 亚洲欧美日韩中文字幕一区二区三区| 亚洲看片网站| gogo久久| 717成人午夜免费福利电影| 亚洲av无码一区二区三区网址| 国产精品玖玖玖在线资源| 中日韩午夜理伦电影免费| 国产在线一二区| 精品一区二区免费在线观看| 久久国产精品久久精品国产| a视频在线免费看| 色婷婷国产精品久久包臀| 熟妇女人妻丰满少妇中文字幕| 成人免费黄色| 国产婷婷成人久久av免费高清| 免费成人蒂法网站| 欧美精品一级| 国产精品夜间视频香蕉| 丝袜+亚洲+另类+欧美+变态| 亚洲欧美日韩一区二区三区在线观看| wwwjizzjizzcom| 免费视频观看成人| 国产视频久久久| 国产一级片免费| 国产一区二区精品久久| 怡红院红怡院欧美aⅴ怡春院| 久久狠狠高潮亚洲精品| 日本欧洲一区二区| 免费国产在线精品一区二区三区| 黄色aaa大片| 亚洲视频精选在线| 天天干天天爽天天射| 欧美美女在线| 日本欧美中文字幕| 婷婷在线观看视频| 亚洲激情网站免费观看| 五月天婷婷在线观看视频| 国产日产一区| 国产成人aa精品一区在线播放| 中文字幕人妻一区二区在线视频| 久久超碰97人人做人人爱| 日韩aⅴ视频一区二区三区| 一区二区三区电影大全| 亚洲精品99久久久久| 香蕉视频一区二区| 99久久精品免费看| 国产极品粉嫩福利姬萌白酱| 狠狠久久伊人| 9.1国产丝袜在线观看| 亚洲三级中文字幕| 丁香五六月婷婷久久激情| 亚洲国产果冻传媒av在线观看| 国产精品一区二区99| 97视频在线观看成人| 天堂中文在线看| 欧美色播在线播放| 丁香激情五月少妇| 精品一区二区三区视频在线观看 | www黄色日本| 欧美a一欧美| 日韩av免费看| 香蕉视频在线播放| 91精品国产综合久久蜜臀| 天天操天天操天天操天天操天天操| 国产偷自视频区视频一区二区| 国产欧美一区二区三区四区| 人人干在线视频| 日韩一级免费观看| 日本一区二区不卡在线| 91蜜桃在线观看| 在线观看国产中文字幕| 伊人久久大香线蕉精品组织观看| 热久久这里只有精品| yourporn在线观看中文站| 7799精品视频| 久久久久久久久久免费视频| 久久精品视频免费观看| jizz18女人| 亚洲人成免费网站| 精品久久久久久中文字幕动漫 | www.天天干.com| 精品久久久久久国产91| 蜜桃久久精品成人无码av| 国产在线精品国自产拍免费| 男人的天堂狠狠干| 国产在线日韩精品| 成人国产精品色哟哟| av免费不卡国产观看| 中文字幕日韩在线观看| 亚洲精品综合网| 在线观看亚洲a| 免费在线观看av网址| 国产欧美精品区一区二区三区 | 麻豆精品久久久| 黄色大片在线免费看| 欧美色图国产精品| 国产精品对白刺激久久久| 亚洲成人av观看| 国外成人在线播放| 拍真实国产伦偷精品| 亚洲精品国产美女| www.精品久久| 欧美三电影在线| 日韩精品久久久久久久酒店| 中文字幕一区二区在线观看| 美女黄色一级视频| 精品一区二区三区免费毛片爱| 日本免费一区二区三区| 最新精品在线| 国产精品亚洲网站| 激情亚洲影院在线观看| 久久久久亚洲精品国产| 免费在线观看黄色网| 国产亚洲精品高潮| 老熟妇高潮一区二区高清视频| 天天色天天操综合| 久久久久久久久久久久久女过产乱| 国产乱对白刺激视频不卡| 午夜免费一区二区| 影音先锋在线一区| 一级黄色免费在线观看| 欧美成人激情| 亚洲 日韩 国产第一区| 免费观看不卡av| 国产一区二区精品免费| 日韩三级网址| 91在线免费观看网站| 日本电影久久久| 国产精品一香蕉国产线看观看| 在线观看电影av| 久久精品国产精品亚洲| 欧美极品视频| 日韩在线视频线视频免费网站| 国产美女裸体无遮挡免费视频| 亚洲国产欧美在线人成| 欧美极品aaaaabbbbb| 一区二区三区在线观看动漫| 成熟的女同志hd| 亚洲免费观看高清完整版在线| av网页在线观看| 不卡一区在线观看| 美女伦理水蜜桃4| av一区二区三区四区| 好吊色视频一区二区三区| 成人国产一区二区三区精品| 看全色黄大色黄女片18| caoporm超碰国产精品| 国产美女视频免费观看下载软件| 美女任你摸久久| 天堂av在线网站| 韩国av一区二区三区在线观看| 男人添女人下面高潮视频| 亚洲第一伊人| 久久久999视频| 日本三级亚洲精品| 黄色a级三级三级三级| 国产成人精品午夜视频免费| 在线观看亚洲免费视频| 97精品久久久久中文字幕| b站大片免费直播| 国产欧美日韩综合| 亚洲综合视频网站| 亚洲大片在线观看| 中文字幕黄色片| 欧美日韩免费观看一区二区三区| 日韩av一二三区| 欧美性xxxxxxx| 中文字幕无线码一区| 日韩一区二区三区精品视频| 男人的天堂a在线| 亚洲人成在线播放| 黄色免费在线看| 91av视频在线免费观看| 国产一区二区精品调教| 97超级碰碰| 免费精品国产| 欧美日韩一区二区三区电影| av成人天堂| 亚洲综合欧美在线| 成人黄色在线网站| 日韩av毛片在线观看| 亚洲午夜在线观看视频在线| 国产专区第一页| 欧美日韩aaa| 亚洲欧洲视频在线观看| 日韩天堂在线视频| 激情黄产视频在线免费观看| 国产在线精品一区免费香蕉| 成人激情自拍| 亚洲一卡二卡三卡| 国产日韩欧美| 亚洲精品在线网址| 久久欧美一区二区| 久久久久久久久久久网 | 99精品在线免费观看| 激情小说网站亚洲综合网| 日韩免费视频| 日本三级免费网站| 丁香亚洲综合激情啪啪综合| 国产又粗又长免费视频| 精品福利在线看| 精品久久久无码中文字幕| 亚洲性av网站| 国产美女高潮在线| 91精品综合久久久久久五月天| 成人污污视频| 日本在线观看不卡| 国产欧美三级| 久久久久国产免费| 亚洲色图清纯唯美| 精品一区二三区| 日韩av一区在线观看| 二区在线播放| 国产日韩欧美视频在线| 国产麻豆精品久久| 免费在线观看亚洲视频| 丰满亚洲少妇av| 澳门黄色一级片| 欧美一区二区网站| 在线观看h片| 国产成人自拍视频在线观看| 欧美日韩一本| 成年人看的毛片| 国产不卡高清在线观看视频| 麻豆网址在线观看| 欧美日韩中文字幕精品| 成人18在线| 国产精品美女久久| 欧美呦呦网站| 欧美日韩亚洲自拍| 欧美国产精品劲爆| 最新国产中文字幕| 中文字幕视频一区二区在线有码 | 日韩大尺度视频| 亚洲视频在线一区二区| 亚洲最大成人av| www.亚洲男人天堂| 国内精品视频| 免费成人进口网站| 国产精品88av| 国产精品久久久久久久精| 欧美一区二区在线看| 最近中文字幕免费mv2018在线| 欧美专区日韩视频| 中文字幕精品影院| 无遮挡又爽又刺激的视频| 国产欧美日韩不卡| 国产精品露脸视频| 久久激情五月丁香伊人| 亚洲精品66| 91九色国产ts另类人妖| 国产成人在线网站| 久久久精品视频在线| 亚洲第一中文字幕在线观看| 欧美大胆a人体大胆做受| 欧美性大战久久久久| 蜜桃视频一区二区三区| av成人免费网站| 精品国产伦一区二区三区观看体验| 麻豆视频免费在线观看| 91视频免费进入| 99在线精品视频在线观看| 五月天精品视频| 9191成人精品久久| 黄色小说在线播放| 欧美中日韩一区二区三区| 六月丁香综合在线视频| 久久久久久久久久久久久女过产乱| 在线观看日韩国产| 成人在线直播| 狠狠色综合欧美激情| 秋霞午夜av一区二区三区| 少妇aaaaa| 日韩麻豆第一页| 久久久久伊人| 国产精品又粗又长| 中文字幕乱码久久午夜不卡| www三级免费| 国产成人一区二区三区小说 | 日本午夜一区二区三区| 久久99这里只有精品| 动漫精品一区一码二码三码四码| 91精品国产麻豆| 天堂中文av在线资源库| 天天做天天爱天天高潮| 成人精品一区二区三区四区| 欧美一区二区三区久久久| 精品中文字幕在线观看| 激情五月色综合国产精品| 亚洲欧洲日韩综合| 在线免费观看日韩欧美| sqte在线播放| 黄色一级片网址| 久久久综合视频| 黄色成人一级片| 成人网页在线免费观看|