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

字節跳動大規模企業級 HTTP 框架 Hertz 設計實踐

精選
開發
日前,字節跳動技術社區 ByteTech 舉辦的第七期字節跳動技術沙龍圓滿落幕,本期沙龍以《字節高性能開源微服務框架:CloudWeGo》為主題。在沙龍中,字節跳動字節跳動基礎架構服務框架資深研發工程師 高文舉,跟大家分享了《大規模企業級 HTTP 框架的設計和實踐》,本文根據分享整理而成。
日前,字節跳動技術社區 ByteTech 舉辦的第七期字節跳動技術沙龍圓滿落幕,本期沙龍以《字節高性能開源微服務框架:CloudWeGo》為主題。在沙龍中,字節跳動字節跳動基礎架構服務框架資深研發工程師 高文舉,跟大家分享了《大規模企業級 HTTP 框架的設計和實踐》,本文根據分享整理而成。

本文將從以下五個方面介紹 CloudWeGo 大規模企業級 HTTP 框架 Hertz:

  1. 字節跳動內部 Go HTTP 框架的變遷;
  2. 企業級 HTTP 框架的設計考量和落地思路;
  3. Hertz 的核心特點;
  4. 未來規劃和挑戰;
  5. 總結。

1. 字節跳動內部 Go HTTP 框架的變遷

在正式開始介紹第一部分的內容之前,先給大家展示一組關鍵詞。2020 年初 Hertz 立項,2020 年 10 月,Hertz 發布第一個可用版本。2022 年 6 月,Hertz 正式開源。 截至目前,Hertz 在字節內部已經支撐超過 1.4 萬個業務服務,日峰值 QPS 超過 5000 萬。

Hertz 不僅支撐業務服務,同時還會橫向支撐字節內部的各種基礎組件,包括但不限于字節跳動服務網格控制面、公司級別壓測平臺以及 FaaS,還包括各種業務網關等等。Hertz 的高性能和極強的穩定性可以支撐業務復雜多變的場景。在公司內部 Hertz 接替了大量基于 Gin 框架開發的存量服務,大幅度降低了業務資源使用成本以及服務延時,助力公司層面的降本增效。

圖片

下面我們可以從 Hertz 出現的背景以及 Hertz 的設計目標和思路體會到,Hertz 的出現絕不是偶然。

1.1 基于 Gin 封裝

眾所周知,字節內部使用 Golang 比較早,在大約 2014 年左右,公司就已經開始嘗試做一些 Golang 業務的轉型。2016 年,我們基于已開源的 Golang HTTP 框架 Gin 框架,封裝了 Ginex,這是 Ginex 剛開始出現的時期。

同時,2016 年還是一個開荒的時代,這個時期框架伴隨著業務快速野蠻地生長,我們的口號是“大力出奇跡”,把優先解決業務需求作為第一要務。Ginex 的迭代方式是業務和框架側在同一個倉庫里面共同維護和迭代。

圖片

1.2 問題顯現

2017 - 2019 年期間,也就是 Ginex 發布之后,問題逐漸顯現。主要有以下幾點:

迭代受開源項目限制

Ginex 是一個基于 Gin 的開源封裝,所以它本身在迭代方面是受到一些限制的。一旦有針對公司級的需求開發,以及 Bugfix 等等,我們都需要和開源框架 Gin 做聯合開發和維護,這個周期不能完全由我們自己控制。

代碼混亂膨脹、維護困難

由于我們和業務同學共同開發和維護 Ginex 框架,因此我們對于控制整個框架的走向沒有完全的自主權,從而導致了整體代碼混亂膨脹,到后期我們發現越來越難維護。

無法滿足性能敏感業務需求

另外,我們能用 Gin 做的性能優化非常少,因為 Gin 的底層是基于 Golang 的一個原生庫,所以如果我們要做優化,需要在原生庫的基礎上做很多改造,這個其實是非常困難的。

無法滿足不同場景的功能需求

我們內部逐漸出現了一些新的場景,因此會有對 HTTP Client 的需求,支持 Websocket、支持 HTTP/2 以及支持 HTTP/3 等等需求,而在原生的 Ginex 上還是很難擴展的這些功能需求。

圖片

1.3 魔改開源框架

逐漸地,某些業務線開始做初步的嘗試,他們會對另外的一些開源框架進行魔改。比較典型的例子是有一些業務線嘗試基于 Fasthttp 進行魔改,Fasthttp 是一款主打高性能的開源框架,基于它進行魔改可以短期內幫助業務解決問題。這種魔改現象帶來的問題是,框架魔改是一些業務線自發的行為,各個業務線可能會基于自身業務特性進行各自維護,從而導致維護成本上升非常嚴重。

到這里我們仿佛陷入了 Ginex 的怪圈。如前段時間爆火的電視劇《開端》一樣,我們仿佛是從一輛開往學院南路的 45 路公交車上醒來,發現自己要前往公司進行下一代 Ginex 框架的維護工作。

大家也可以思考一下,如果是你來應對這樣的場景,你會怎么做呢?

圖片

1.4 小結

第一章節的內容總結如下:

早期基于開源框架封裝

基于早期開源的 Golang HTTP 框架,實現了 Ginex 的封裝。

隨著實踐發展,問題逐漸出現

框架混亂膨脹,框架的維護越來越困難,業務的新需求無法得到很好地滿足。

為了解決問題出現基于另外的開源框架魔改的萌芽

我們需要思考如何跳出魔改的怪圈,把字節內部的企業級框架做得更好。

另外,還有一個遺留問題,就是應該如何跳出這個魔改的怪圈呢?這個問題第二章節會為大家進行解答。

2. 企業級 HTTP 框架的設計考量和落地思路

2.1 跳出怪圈

為了跳出魔改的怪圈,我們決定從以下三個方面開始著手。

自主研發

既然 Ginex 是因為基于開源框架 Gin,沒法做一些靈活的控制,那我們就改為完全自主研發框架。自主研發框架的代碼全鏈路自主可控,也可以避免引入任何三方不可控因素,這樣我們能夠對自己的框架有一個比較完備的掌控力。

質量控制

下圖列舉了一些常規的質量控制手段。我要著重強調的是模糊測試,模糊測試在字節內部是廣泛應用于 Hertz 框架的穩定性測試中。它的核心點在于通過一系列的模擬服務,嘗試模擬出線上用戶在使用我們的框架時,實際遇到的一些場景和使用方式。然后通過一些隨機的算法,生成盡可能復雜、覆蓋各種 Case 的場景,這可以讓我們檢測出一些潛在的問題。這套測試也在 Hertz 早期的質量建設中,幫助我們將一些問題防患于未然。

嚴格準入

既然 Ginex 的問題是大家都在向里面寫入內容,那么我們可以控制入口,建立一套完備的需求開發以及 Review 的閉環,控制迭代的整體流程,從而控制代碼準入。同時我們配備統一的需求管理以及嚴格的發版準入規范,做一個標準的公司級別的框架。

圖片

舉一個比較形象的例子,如果我們把下一代框架比作一個人——“框架人”,自主研發表示這個“框架人”首先會擁有對自己身體的主導權,他不會受到來自于環境或者他人的影響;質量控制表示“框架人”能夠定期體檢,提早發現一些潛在的疾病,將其扼殺于搖籃;嚴格準入表示“框架人”有科學的飲食攝入和自律的生活習慣。可想而知,如果我們能夠做到以上三點,我們的“框架人”就能夠擁有一個健康的體魄。

2.2 痛點梳理

明確了應該如何跳出怪圈之后,我們還應該明確知道這個框架要具備哪些功能和特性,也就是首先應該聚焦到框架的核心痛點上。“框架人”不能只有健康的體魄,還應該擁有有趣的思想和靈魂。一個成熟的框架不僅僅要應對來自業務側的需求,如功能需求、性能需求和易用穩定等,還要考慮框架自身的發展,而這一點恰恰是我們在 Ginex 的迭代過程中忽略的。

如下圖右側金字塔所示,最上層是高效支撐,毋庸置疑框架的存在肯定是為了支撐我們的業務需求。中間層是一個質量保證的紅線框架,框架需要保證它自身的質量,只有以高質量完成的框架才能有自信承擔字節內部的 5000 萬 QPS,以及各種各樣的使用場景。金字塔的最底層是長期、可持續性發展, 這也是作為未來想要保持持續迭代的框架最重要的一點。

圖片

2.3 框架科學發展觀

基于上一部分,我們可以進一步梳理出框架的需求痛點。痛點主要有兩個方面:

  • 多樣的需求:支撐支撐各個業務線及基礎設施 (橫向擴展性)。
  • 靈活的結構:貫穿HTTP生命周期的掌控力 (縱向模塊化)。

在此基礎上進一步抽象出框架的科學發展觀:

  • 聚類需求:面向通用能力展開設計。
  • 跳出局部:針對一些復雜問題,在更大范圍內尋求最優解。

圖片

后續我會針對這個科學發展觀進一步闡述 Hertz 究竟是如何實現的。

2.4 小結

第二章節的內容總結如下:

跳出怪圈

引入“框架人”的概念,幫助大家理解框架的自研、質量控制和嚴格準入。

痛點梳理

為“框架人”注入有趣的靈魂,框架需要應對來自業務側的多樣化需求,還要保證自己的可持續性發展。

框架科學發展觀

需求聚類,跳出局部。

3. Hertz 的核心特點

Hertz 框架是如何實現第二章節中提到的框架痛點和科學發展觀的呢?本章節將具體進行介紹。

3.1 分層抽象

首先介紹 Hertz 框架的架構設計。下圖是一個請求從建立、連接到完成的全過程。左側是 客戶端 ,右側是服務端,在我們發起鏈接建立請求之后,鏈接建立完成;之后客戶端發起請求到服務端,服務端進行路由處理,然后將路由導向業務邏輯處理;業務邏輯處理完畢后,服務端返回這個請求,完成一次 HTTP 請求的調用。

那么在這個過程中我們的框架到底做了哪些事情呢?從圖中不難發現,首先框架進行了鏈接處理,其次是協議處理,之后基于路由做了邏輯分發,即路由處理,最后做了業務邏輯處理。我們把框架做成一個結構之后會發現,這個結構包含的就是這四部分。

圖片

基于這個邏輯,我們可以看一下 Hertz 的整體架構圖。如下圖所示,從下往上看紅線框圈住的部分,可以發現這就是上文提到的請求建立的全過程。各層的能力及作用如下:

  • 傳輸層 Transport:抽象網絡接口;
  • 協議層 Protocol:解析請求,渲染響應編碼;
  • 路由層 Route:基于URL進行邏輯分發;
  • 應用層 Application:業務直接交互,出現大量 API。

我們可以看到圖中除了中間部分包含的四層,左右兩側各有兩列。右側是通用層 Common,主要負責提供通用能力、常用的日志接口、鏈路追蹤以及一些配置處理相關的能力等。左側是 Hertz 的代碼生成工具 Hz,又稱腳手架工具,它可以幫助我們在內部基于 IDL 快速地生成項目骨架,以加速業務迭代。

Hertz 的分層設計是能夠和代碼組織結構一一映射的。下圖是 Hertz 倉庫里面的代碼組織結構,可以看到根目錄下的 cmd 包里面存放著 Hz 工具,在 pkg 包下存放著上述主要四層以及通用層 Common。因此同學們看到架構設計圖之后,可以直接在 Github 學習 Hertz 的代碼。

Hertz: https://github.com/cloudwego/hertz

圖片

總體來說,Hertz 的架構設計理念就是 “簡潔有序,保證讓所有開發者輕松理解,在開發的過程中持續貫徹” 。

3.2 易用可擴展

那么基于 Hertz 的架構設計,應該如何展開易用性和可擴展性呢?下圖是 Hertz 架構主要四個層級的抽象。

應用層

應用層提供了一些通用能力,包括綁定請求、響應渲染、 服務發現 /注冊/ 負載均衡以及服務治理等等。其中,洋蔥模型中間件的核心目的是讓業務開發同學基于這個中間件快速地給業務邏輯進行擴展,擴展方式是可以在業務邏輯處理前和處理后分別插樁埋點做相應處理。一些比較有代表性的應用,包括日志打點、前置的安全檢測,都是通過洋蔥模型中間件進行處理的。

路由層

路由層也是非常通用的,主要提供靜態路由、參數路由、為路由配置優先級以及路由修復的能力,如果我們的路由層沒辦法滿足用戶需求,它還能支撐用戶做自定義路由的擴展。但實際應用中這些路由能力完全能夠滿足絕大多數用戶的需求。

協議層

Hertz 同時提供 HTTP/1.1 和 HTTP/2,HTTP/3 也是我們在建設中的能力,我們還會提供 Websocket 等 HTTP 相關的多協議支持,以及支持完全由業務決定的自定義協議層擴展。

傳輸層

目前我們已經內置了兩個高性能的傳輸層實現。一個是基于 CloudWeGo 開源的高性能網絡庫 Netpoll 的傳輸層擴展,另一個是支持基于標準庫的傳輸層擴展。此外,我們也同樣能支持在傳輸層上進行自定義傳輸層協議擴展。

下圖每一層中標紅的能力都能夠體現出,我們能夠在框架的任何一個分層上支撐用戶做最大程度的自由定制,這樣可以最大程度地滿足企業級內部用戶和潛在用戶的業務需求。如果同學們想要深入了解 Hertz,可以參考 CloudWeGo 官網的 Hertz 部分,上述所有內容均有具體描述。

官網:https://www.cloudwego.io/zh/docs/hertz/

圖片

3.3 性能探索

在性能方面,Hertz 又是如何在自主可控的范圍內做高性能探索的呢?

3.3.1 場景描述

熟悉 Hertz 代碼的同學會發現,我們的 HTTP/1.1 協議借鑒了一些 Fasthttp 的優化思路和手段。HTTP/1.1 協議中的 Header 為不定長數據段,往往需要解析到最后一行,才能夠確定是否完成解析。同時,為了減少系統調用次數,提升整體解析效率,涉及 IO 操作時,我們通常引入帶 buffer 的 IO 數據結構。如下圖所示,它的核心點是最下層的 buffer,buffer 是一個類似于一塊完整的內存空間,我們可以將 IO 讀到的數據放進這個空間做暫存。

圖片

3.3.2 bufio.Reader 的問題

這樣做出現的問題是,原生的 bufio.Reader 長度是固定的,請求的 Header 大小超出 buffer 長度后,.Peek()? 方法直接報錯 (ErrBufferFul),無法完成既定語義功能。

3.3.3 一些可能的解

對于上述問題,其實有一些可能的解決方法:

  • 直接利用 bufio.Reader 的局限當做 Feature,通過 buffer 大小作為 Header 大小的限制。如果超出這個大小,Header 直接解析報錯,這也是 Fasthttp 的做法。但實際上超出 buffer 長度后報錯會導致我們沒辦法處理這部分請求,從而導致框架功能受限。
  • header 解析帶狀態,暫存中間數據,通過在上層堆疊額外復雜度的方式突破 bufio 本身的限制。但是暫存中間態會涉及到一些內存的拷貝,必然會導致性能受限。

3.3.4 真實使用環境復雜多變

字節內部的使用場景非常多,我們不僅要支持各種業務線的開發,還要支持一些橫向的基礎組件。不同的業務,不同的場景,數據規模各異。如何成為通用且高效地解決 bufio.Reader 的問題成為 Hertz 面臨的內部重要挑戰。我們既然已經站在 Fasthttp 這個“巨人”的肩膀上了,能否往前再走一步呢?

答案是肯定的。基于內部的使用場景,同時結合 Netpoll 的優勢,我們設計出了自適應 linked buffer,并且用它替代掉了原生的 bufio.Reader。從下圖可以看到,我們的 buffer 不再是一個固定長度的 buffer,而是一條鏈,這條鏈上的每一個 buffer 大小能夠根據線上真實請求進行動態擴縮容調整,同時搭配 Netpoll 中基于 LT 觸發的模型做數據預拷貝。從實施效果上來看,這個自適應調整能夠讓我們的業務方完全無感地支撐任何他們的業務特性。也是因為我們能夠將 buffer 進行動態擴縮容調整,從而能夠保證在協議層最大程度做到零拷貝協議解析, 這能夠帶來整體解析上的性能提升,時延也會更低。

圖片

3.3.5 針對 HTTP/1.1 進行中的優化

因為目前在字節內部 HTTP/1.1 還是一個比較主流的協議,所以我們基于 HTTP/1.1 做了很多嘗試。

首先是協議層探索。我們正在嘗試基于 Header Passer 的 重構,把解析 Header 的流程做得更高效。我們還嘗試了做一些傳輸層預解析,將一些比較固化的邏輯下沉到傳輸層做加速。

其次是傳輸層探索。這包括使用 writev 整合發送 Header & Body 達到減少系統調用次數的目的,以及通過新增接口整合 .Peek() + .Skip() 語義, 在內部提供一個更高效的實現。

3.3.6 Hertz Benchmark

下圖是 Benchmark 的開源數據。左側第一張圖是在同等的機器環境上,Hertz 和橫向的框架 Gin、Fasthttp 極限 QPS 比較情況,藍線是 Hertz 處于較高極限 QPS 的狀態。第二張圖是 TP99 時延狀態,第三張圖是 TP999 時延狀態,可以看到 Hertz 的整體時延是處于一個更低的水平上。

圖片

3.3.7 字節跳動服務網格控制面從 Gin 遷移至 Hertz

CloudWeGo 公眾號曾發布關于字節跳動服務網格控制面的文章,講述字節跳動服務網格從 Gin 框架遷移到 Hertz 的落地實踐。下圖是他們代碼展示的真實收益,從 Gin 框架替換成為 Hertz 框架后,CPU 流量從大概快到 4K 降到大約只有 2.5K,Goroutine 數量從 6w 降到不足 100 個,Goroutine 穩定性得到極大地提升。同時替換成 Hertz 后,框架相關的開銷已經基本消失,服務網格在線上穩定承載了超過 13M QPS 的流量。

字節跳動服務網格基于 Hertz 框架的實踐:https://mp.weixin.qq.com/s/koi9q_57Vk59YYtO9cyAFA

圖片

3.4 小結

第三章節的內容總結如下:

分層抽象

解構 HTTP 框架,分層解耦。

易用可擴展

提供了更豐富 API 和足夠靈活的拓展能力,在每一層抽象中都提供了一個足夠靈活的擴展能力應對可能的需求。

自主可控的高性能探索

自適應 buffer,零拷貝解析,未來將會進行更多的高性能探索。

4. 未來規劃和挑戰

我認為 Hertz 未來的發展規劃主要圍繞以下幾個方面:首先,打造泛 HTTP 框架。我們的最終目標是希望 Hertz 能夠解決在 HTTP 領域內的所有問題;其次,助力 CloudWeGo , 希望 Hertz 能夠助力 CloudWeGo 打造一個企業級云原生微服務矩陣;最后希望 Hertz 能夠持續服務更多的用戶。

5. 總結

本次分享的主要內容總結如下:

  • 字節跳動內部 Go HTTP 框架的變遷:從基于開源封裝,到開啟自研之路;
  • 企業級 HTTP 框架的設計考量和落地思路:破圈、需求提煉、框架科學發展觀;
  • Hertz 核心特點:分層抽象、易用可擴展、自主可控的性能探索;
  • Hertz 未來的規劃和挑戰:框架持續打磨、助力 CloudWeGo、服務更多用戶。
責任編輯:未麗燕 來源: 字節跳動技術團隊
相關推薦

2022-06-22 06:49:39

Hertz開源HTTP 框架

2024-11-07 11:46:41

2021-09-06 11:15:05

數據治理字節跳動埋點

2023-01-03 16:54:27

字節跳動深度學習

2023-11-20 07:27:00

云原生Spark

2024-11-13 11:02:03

微服務框架項目

2024-11-08 13:04:08

項目Hertz接口

2022-11-24 09:01:26

HTTPHertz架構

2024-11-26 19:29:35

2022-11-24 10:01:10

架構分布式

2024-09-25 15:57:56

2022-06-02 16:58:06

Ray機器學習字節

2015-05-26 09:41:45

china-pub

2023-03-29 07:49:05

企業級項目研發

2021-04-22 13:38:21

前端開發技術

2018-05-31 15:58:03

Leangoo

2009-03-02 09:22:39

OSGiJ2EEEclipse

2025-06-20 08:19:53

2014-08-07 09:48:40

點贊
收藏

51CTO技術棧公眾號

av一本在线| 日本午夜视频在线观看| 国内精品视频| 亚洲成av人片一区二区| 日韩欧美电影一区二区| 国产人妻精品一区二区三区| 亚洲人人精品| 色偷偷偷综合中文字幕;dd| 人妻精油按摩bd高清中文字幕| 蜜臀久久精品| 一区二区三区中文在线观看| 久久久久久久久久码影片| 国产毛片久久久久| 首页综合国产亚洲丝袜| 欧美激情第1页| www.4hu95.com四虎| 欧美一区二区三区红桃小说| 欧美群妇大交群的观看方式| 日韩avxxx| 日本动漫同人动漫在线观看| 国产女人18水真多18精品一级做| 精品乱码一区二区三区| 国产极品久久久| 免费看精品久久片| 日本不卡高字幕在线2019| 欧美极品aaaaabbbbb| 日韩国产欧美| 在线电影欧美日韩一区二区私密| 白嫩情侣偷拍呻吟刺激| 九九99久久精品在免费线bt| 欧美日韩视频一区二区| 欧美伦理视频在线观看| 伊人久久综合一区二区| 亚洲香肠在线观看| 国产一级黄色录像片| 亚洲成人三级| 中文字幕第一区| 日韩精品欧美在线| 亚洲黄色av网址| 无码人妻丰满熟妇精品| 亚洲精品一级| 国模视频一区二区三区| 一区二区视频免费看| 99久久精品国产亚洲精品| 一个色综合导航| 一级黄色片大全| 综合国产视频| 亚洲人成在线免费观看| 中文字字幕码一二三区| 日本国产精品| 亚洲欧美日韩国产成人| 国产精品三级在线观看无码| 色愁久久久久久| 亚洲乱码国产乱码精品精| 亚洲成人av免费在线观看| 人人精品视频| 亚洲精品一区二区三区不| 中国美女乱淫免费看视频| 色天下一区二区三区| 亚洲欧美成人精品| 欧美黄色一级生活片| 成人羞羞动漫| 日韩一区二区三区国产| 暗呦丨小u女国产精品| 欧美激情日韩| 97免费在线视频| 久久久久99精品成人片我成大片| 久久九九免费| 91精品久久久久久久久中文字幕| 国产农村妇女毛片精品| 成人激情综合网站| 久久av二区| av在线免费播放网站| 亚洲男同1069视频| 欧美图片激情小说| 台湾佬成人网| 欧美久久一二三四区| 久久久国产精品久久久| 一道在线中文一区二区三区| 亚洲性生活视频| 中日韩一级黄色片| 亚洲欧洲日本一区二区三区| 日韩av观看网址| 国产精品女同一区二区| 日韩a在线观看| 美女尤物久久精品| 成人激情黄色网| 色综合视频在线| 国产精品免费观看视频| 草草视频在线免费观看| 超薄肉色丝袜脚交一区二区| 欧美一区二区三区视频| 免费a级黄色片| 午夜欧美在线| 欧美在线影院在线视频| 99久久精品日本一区二区免费| av成人动漫在线观看| 亚洲精品人成| 蜜桃av在线播放| 777奇米四色成人影色区| 大乳护士喂奶hd| 国产精品传媒精东影业在线| 91高潮在线观看| 国产ts变态重口人妖hd| 亚洲国产激情av| 蜜桃传媒一区二区三区| 99综合久久| 亚洲天堂色网站| 国产精品.www| 六月丁香综合在线视频| 欧美少妇一区| 国产经典三级在线| 91精品国产综合久久精品| 精品成人av一区二区三区| 激情久久婷婷| 亚洲综合在线小说| 第九色区av在线| 欧美性xxxxx极品娇小| 性高潮久久久久久| 日韩在线综合| 国产精品久久久久久久久久久新郎| 亚洲男人天堂久久| 亚洲天堂成人在线观看| 亚洲污视频在线观看| 香蕉国产成人午夜av影院| 欧美激情视频一区| 国产成人精品亚洲精品色欲| 国产精品第一页第二页第三页| 99久久久无码国产精品6| a级日韩大片| 久久久久北条麻妃免费看| 国产精品成人久久久| 久久亚洲二区三区| 日韩你懂的在线播放| 涩视频在线观看| 亚洲精品国产首次亮相| 成人久久18免费网站图片| 成人综合影院| 欧美午夜精品电影| 亚洲一区二区三区日韩| 日韩激情在线观看| 日本一区二区三区精品视频| 国产精品迅雷| 国产亚洲综合久久| 中文字幕视频一区二区| 欧美激情在线一区二区三区| 成人一区二区三| 精品久久中文| 成人www视频在线观看| 九义人在线观看完整免费版电视剧| 欧美精品日韩综合在线| 亚洲人做受高潮| 国产麻豆成人精品| 丰满人妻一区二区三区53号| 8848成人影院| 国模gogo一区二区大胆私拍| 无码国产色欲xxxx视频| 日韩欧美一区二区三区久久| 无码少妇一区二区| 久久国产精品色| www.国产二区| 欧美交a欧美精品喷水| 日本人成精品视频在线| 91社区在线高清| 日韩视频123| 日韩字幕在线观看| 国产清纯美女被跳蛋高潮一区二区久久w| 中文字幕第80页| 欧美韩日精品| 久久偷窥视频| 激情小说亚洲| 国内外成人免费激情在线视频网站 | 国产一区二区三区四区视频 | 综合操久久久| 一区二区亚洲视频| 日av在线播放中文不卡| 久久久久久久久免费视频| 精品国免费一区二区三区| 国产九色在线播放九色| 国产精品免费看片| 日本一区二区免费视频| 性xx色xx综合久久久xx| 中文精品一区二区三区| www.好吊操| 精品成人18| 亲爱的老师9免费观看全集电视剧| av福利精品| 亚洲国产精品推荐| 中文字幕理论片| 亚洲第一在线综合网站| 国产三级在线观看完整版| 国产高清无密码一区二区三区| 日本三级免费网站| 你懂的网址国产 欧美| 久久久久久久久久久一区| 国产乱码精品一区二区三区亚洲人 | 奇米一区二区三区av| 中文字幕日韩精品无码内射| 深爱激情综合网| 成人片在线免费看| 全球最大av网站久久| 97精品国产aⅴ7777| 免费不卡视频| 亚洲日本成人女熟在线观看| 亚洲国产999| 欧美日本在线观看| 亚洲午夜18毛片在线看| 亚洲一区二区美女| 免费看一级黄色| 久久久噜噜噜久久中文字幕色伊伊| 成人高清在线观看视频| 免费人成精品欧美精品| 虎白女粉嫩尤物福利视频| 国产精品videosex极品| 男人的天堂成人| 成人在线免费观看91| 欧美日韩综合网| 婷婷综合电影| 国产嫩草一区二区三区在线观看| 成人av在线播放| 国产精品久久久久久久久久久久 | 日本视频在线免费观看| 亚洲天堂男人天堂| 日韩资源在线| 日韩电影免费观看在线观看| 男人天堂一区二区| 精品少妇一区二区三区| www.国产三级| 91精品国产综合久久久久久漫画| 中文字幕视频免费观看| 欧美午夜片在线看| 啪啪小视频网站| 一本大道久久精品懂色aⅴ| 久久青青草视频| 精品美女久久久久久免费| 91九色视频在线| 头脑特工队2免费完整版在线观看 头脑特工队2在线播放 | 91网站在线观看视频| 中文在线观看免费视频| 成人精品视频.| 四虎精品一区二区| 成人黄色777网| 少妇熟女视频一区二区三区 | 国产美女一区| 国产极品粉嫩福利姬萌白酱| 99成人在线| 黄色网页免费在线观看| 美女精品在线| 爱情岛论坛成人| 久久精品国产精品青草| 制服丝袜中文字幕第一页| 国产在线播精品第三| 香蕉视频色在线观看| 国产成人免费高清| 亚洲午夜久久久久久久久| 99热这里都是精品| www在线观看免费视频| 日本一区二区三区高清不卡| 国产探花在线视频| 一区二区三区在线观看欧美| 久久久久成人片免费观看蜜芽| 亚洲成人午夜电影| 毛片毛片女人毛片毛片| 欧美这里有精品| 91久久久久国产一区二区| 日韩免费性生活视频播放| 亚洲av片在线观看| 亚洲午夜性刺激影院| 毛片免费不卡| 韩剧1988在线观看免费完整版| 一本大道色婷婷在线| 国产精品久久久久久网站| 国产精品日韩精品在线播放| 国产91视觉| 少妇一区二区视频| 国产人妻人伦精品| 免费久久99精品国产自在现线| 亚洲老女人av| 成人午夜看片网址| 日本黄色网址大全| 日韩理论片在线| 久久国产精品波多野结衣| 色屁屁一区二区| jlzzjlzz亚洲女人18| 日韩成人av网| 国产在线激情视频| 欧美一区二区三区免费观看| 亚洲成人高清| 久久婷婷人人澡人人喊人人爽| 欧美高清视频在线观看mv| 国内精品视频一区二区三区| 免费在线看一区| 欧美三日本三级少妇三99| 日p在线观看| 久久久999国产精品| 日韩av影片| 96pao国产成视频永久免费| 久9久9色综合| 国产精品入口芒果| 精品一区二区日韩| 国内精品久久99人妻无码| 亚洲精品国产a| 中文字幕在线观看欧美| 亚洲精品美女视频| 特级毛片在线| 91精品久久久久久久| 神马香蕉久久| 国产va亚洲va在线va| 韩国一区二区三区| 男人舔女人下部高潮全视频| 无码av免费一区二区三区试看| 国产剧情精品在线| 在线精品91av| 欧美一区 二区 三区| 国产精品一 二 三| 午夜视频精品| 日本网站在线看| 国产精品久久网站| 激情网站在线观看| 亚洲跨种族黑人xxx| 国产夫妻在线播放| 国产精品大全| 午夜亚洲福利| 污视频在线观看免费网站| 亚洲欧洲在线观看av| 中文字幕 亚洲视频| 亚洲香蕉伊综合在人在线视看| 玛雅亚洲电影| 欧美精品v日韩精品v国产精品| 91久久黄色| 欧美xxxxx精品| 性久久久久久久久久久久| 欧美一区二区黄片| 久久久久久com| 国产精品男女| 中文字幕一区二区三区乱码在线| 久久久久久在线观看| 亚洲精品国产动漫| 亚洲视频在线二区| 日本va欧美va精品| 日本黄色激情视频| 欧美三级视频在线播放| av网站无病毒在线| 成人激情春色网| 夜间精品视频| 女教师高潮黄又色视频| 亚洲精品福利视频网站| 亚洲成a人片77777精品| 欧美激情亚洲自拍| 久久资源综合| 激情网站五月天| 国产欧美精品一区| 97国产成人无码精品久久久| 久久综合免费视频| 综合激情五月婷婷| 春日野结衣av| 国产精品网站在线播放| 伊人久久亚洲综合| 欧美精品一本久久男人的天堂| 日韩欧美中文在线观看| cao在线观看| 国产婷婷色一区二区三区四区| 这里只有精品免费视频| www.xxxx欧美| 成人午夜网址| 茄子视频成人免费观看| 国产精品色婷婷久久58| 91久久精品国产91久久| 国产麻豆精品久久| 亚洲精品性视频| 亚洲一区二区在线视频| 青春有你2免费观看完整版在线播放高清 | 日韩电影在线观看电影| 国产成人av免费在线观看| 精品国产91久久久久久久妲己 | 欧美日韩精品一区二区在线播放| 免费黄色网址在线观看| 国产精品一区二区不卡视频| 日韩中文字幕一区二区三区| 污软件在线观看| 日韩av在线免费播放| 成人国产激情在线| 成年在线观看视频| 99riav一区二区三区| 国产精品欧美亚洲| 91黄色8090| 五月激情久久久| 亚洲黄色在线网站| 欧美日韩高清一区二区不卡| 国产精品国精产品一二| 亚洲激情一区二区| jiyouzz国产精品久久| 在线观看免费高清视频| 91国产一区在线| 亚洲中无吗在线| 四虎国产精品成人免费入口| 欧美α欧美αv大片| 五月激情久久| 日韩xxxx视频| 中文字幕中文字幕中文字幕亚洲无线|