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

還在用ES?事實證明ClickHouse更強悍

存儲 存儲軟件 開發工具
在日常工作中,我們通常需要存儲一些日志,譬如用戶請求的出入參、系統運行時打印的一些 info、error 之類的日志,從而對系統在運行時出現的問題有排查的依據。

在日常工作中,我們通常需要存儲一些日志,譬如用戶請求的出入參、系統運行時打印的一些 info、error 之類的日志,從而對系統在運行時出現的問題有排查的依據。

[[436458]]

圖片來自 包圖網

日志存儲和檢索是個很常見且簡單的工作,市面也有很多關于日志搜集、存儲、檢索的框架可供使用。

譬如我們只有個位數機器時,可以通過登錄服務器,查看 Log4j 之類的框架打印到本地文件的日志。當日志多起來后,可以用 ELK 三劍客處理日志。

當日志量進一步增多,我們可以上消息隊列,譬如 Kafka 之類來承接,然后消費入庫。或者寫本地文件,再采用 Filebeat 之類上報再入庫。

以上都是較為常見的日志傳輸和存儲的方案,成本可控的情況下,可適用于絕大多數場景。

我們可以簡單總結一下日志框架的功能,大概是暫存、傳輸、入庫保存、快速檢索。

量級上升,成本高昂

技術方案的設計和取舍,往往強受限于成本。當成本高企到難以承受時,將必須導致技術方案的升級換代。那么問題來了,我就是存個日志而已,怎么就成本難以承受了呢?

我們以一個常見的日志傳輸及存儲方案來舉例,如下圖,暫存就是采用客戶端寫本地文件存日志,傳輸即是采用 MQ,消費入庫常見的如 ES。

下圖方案,為了減少部分存儲成本,將日志詳情存儲于壓縮更好的 Hbase,僅將查詢時需要的一些索引字段放在了 ES。

以上作為一個常用的方案,為什么會成本高昂呢?

我們來簡單計算一下,京東 App 某個模塊(是一個模塊,非整個 App 累計),單次用戶請求,用戶的入參+返回值+流程中打印的日志占用的大小在 40k-2M 之間,中位數在 60k 左右。

該模塊日常每秒約 2-5 萬次訪問,高峰時會翻 10 倍,極高峰可達百萬。

以 3 萬每秒來算,產生的日志大小為 1.8G,也就是說即便是低負載時,這個日志框架要吞下 1.8G 的傳輸與存儲。

但這是遠遠不夠的,因為我們即便放棄極高峰,僅僅支撐偶現的高峰,也需要該系統能支撐秒級 15G 以上的吞吐。但是這僅僅才是一個模塊而已,算上前中臺這樣的模塊還有很多。

那么我們就可以來算一算了,一秒 1.5 G,一個小時就是 5.4TB。小高峰是肯定要支撐的,也就是秒級 30 萬是要保的,那么我們的系統就要能支撐秒級 15G 單模塊,算上各模塊,200G 秒級是跑不了了。

這只是各個機器所打印在各自本地的原始日志文件占用的大小,然后要發到 MQ 集群。

大家都知道,MQ 也是寫磁盤的,這 200G 一點不少的在 MQ 機器上做了保存,并且 MQ 還有備份機制。

就以最簡陋的單備份來說,MQ 每秒要承接 400G 的磁盤,并且離刪除后釋放磁盤還有挺長一段時間,哪怕只存 1 個小時,也是一個巨大的數字。

我們知道,一般服務器在磁盤還不錯的情況下,單機秒級寫入量 200 多 M 算比較不錯的情況,通過上面的了解,我們僅僅做到日志的暫存和傳輸就需要 2000 臺以上的服務器資源。

然后就到了 worker 消費集群,該集群只是純粹的內存數據交換,不占磁盤,worker 消費后寫入數據庫。大家基本可以想象到,數據庫的占用是如何。

OK,我們終于把數據存了進去,查詢問題就成了另外一個必須面對的事情,如何快速從無數億中找到你要查詢的那個用戶的鏈路日志。

到了此時,成本就成了非常要命的事情,尤其方案的設計,會導致原本就很龐大的數據,在鏈路上再次放大多倍,那么巨大的硬件成本如何解決。

縮短流程,縮減流量

通過上面的分析,我們已經發現,即便是市面上最通用的日志方案,在如此巨大的流量面前,也難以持續下去,高昂的硬件成本,將迫使我們去尋找更合適的技術方案。

世界上有一個著名的法則叫"奧卡姆剃刀定律",講的是程序員該如何選擇合適的剃刀,來讓自己的秀發光滑柔順有光澤。

其實不是的,該定律主要就是八個字"如無必要,勿增實體"。當一個流程難以支撐當前的業務時,我們就該審視一下,哪些步驟是不必要的。

從這個通用流程中,其實我們很容易就能發現,我們經歷了很多讀寫,每次讀寫都伴隨著磁盤的讀寫(包括 MQ 也是寫磁盤的),和頻繁的序列化反序列化,以及翻倍的網絡 IO。

那么讓我們揮舞起奧卡姆的剃刀,做一些刪減,把非必要的部分給刪掉,就變成了下圖的流程:

我們發現,其實寫本地磁盤、和 MQ 都是沒有必要的,我們完全可以將日志數據寫到本地內存,然后搞個線程,定時通過 UDP 將日志直接發送到 worker 端即可。

worker 接收到之后,解析一下,寫入自己的內存隊列,再起數個異步線程,批量將隊列的數據寫入 ClickHouse 數據庫即可。

大家可能看到了,下圖的流程中,那個圓圈明顯比上圖的圓圈要小,這是為什么呢?因為我做了壓縮。

前文講過,我們單條報文 40k-2M,這是一個非常大的報文,這里面都是一些用戶請求的入參 Json 和出參 Json 以及一些中途日志,我們完全沒有必要將原文原封不動往外傳輸。

通過采用主流的 snappy、zstd 等壓縮工具類,可以直接將字符串壓縮成 byte[] 再往外傳輸,這個被壓縮后的字符串,直至入庫都是 byte[],全程不對大報文解壓。

那么這個壓縮能壓多少呢,80%-90%,一個 60k 的報文,往外送時就剩 6-8k 了,可想而知,僅僅壓縮一下原始數據,就在整個流程中,節省了巨大的帶寬,同時也大幅提升了 worker 的吞吐量。

這里有個小細節,udp 單個最大報文是 64kb,如果我們壓縮后,還是超過了 64kb 的話,udp 是送不出去的,這里可以選擇發個 http 請求送到 worker 即可。

通過上圖,我們可以看到,當流程中的某些環節并不是必需的時,我們應該果斷砍掉,不要輕易照搬網上的方案,而應該選擇更適合自己的方案。下面我們詳細講一下系統是如何設計、運轉的。

更強悍的日志搜集系統

我們來審視一下這個鏈路極短的日志搜集系統:

  • 配置中心:用來存儲 worker 的 IP 地址,供客戶端獲取自己模塊所分配的 worker 集群的 ip。
  • client:客戶端啟動后,從配置中心拉取分配給自己這個模塊的 worker 集群的 IP,并輪詢將搜集的日志壓縮后發送過去,通過 UDP 的方式。
  • worker:每個模塊會分配數量不等的 worker 機器,啟動后上報自己的 IP 地址到配置中心。接受到客戶端發來的日志后,解析相應的字段,批量寫入 clickhouse 數據庫。
  • clickhouse:一個強大的數據庫,壓縮比很高,寫入性能極強,按天分片,查詢速度佳。非常適合應用于日志系統這種寫入極大,查詢較少的系統。
  • dashboard:可視化界面,從 clickhouse 查詢數據展示給用戶,具有多條件多維度查詢功能。

大家都能看出來,這其中最關鍵的地方是 worker 端,它的承接流量、消費性能、入庫性能將決定著整個鏈路能否良好地運轉。

我們主要分別講解一下 client 端和 worker 端的實現。

Client 端聚合日志

一次請求中,我們通常要保留的日志信息主要有:

①請求的出入參

如果是 http web 應用,要獲取出入參比較簡單的方式就是通過自定義 filter 即可。client 的 sdk 里定義了一個 filter,接入方通過配置該 filter 生效即可搜集到出入參。

如果是其他 rpc 應用非 http 請求的,也提供了對應的 filter 攔截器來獲取出入參。

在獲取到出入參后,sdk 對其中大報文,主要是出參進行了壓縮,并將整個數據定義為一個 Java 對象,做 protobuf 序列化,通過 UDP 方式往自己對應的 worker 集群輪詢傳輸。

②鏈路上自己打印的一些關鍵信息,如調用其他系統的的出入參,自己打印的一些 info、error 信息

sdk 分別提供了 log4j、logback、log4j2 三個常用日志框架的自定義 appender。

用戶可以通過在自己的日志配置文件(如 logback.xml)中,將我自定義的 appender 定義出來即可,那么后續用戶在代碼里所有打印的 info、error 等日志都會執行這個自定義 appender。

同樣,這個自定義 appender 也是將日志暫存內存,然后異步 UDP 外送到 worker。

這里主要有兩個地方需要注意,一是當壓縮后的報文依舊超出 udp 最大報文值時,即通過 http 送出。

二是這一次請求,鏈路中可能會使用多線程、線程池技術,為避免鏈路 tracer 的唯一 id 在線程池丟失,sdk 采用了 TransmittableThreadLocal 來保持鏈路的 ID,這個查一下就懂。

總體來說,client 端實現較為簡單,省略了寫本地磁盤、消費文件發 MQ 等等步驟。

整體只有一次 Protobuf 序列化操作,對 CPU、接入方性能影響極小,采用 UDP 外送,不需要 worker 的任何回復,也不用考慮 tcp 模式下 worker 消費慢導致自己阻塞的問題。整體非常簡潔高效。

Worker 端消費日志并入庫

worker 端是調優的重點,由于要接收海量客戶端發來的日志,解析后入庫,所以 worker 需要具備很強的緩沖能力。

我們都能看出來,系統的瓶頸點肯定在入庫這個階段,解析日志,抽取字段都是效率很高的,而且完全可以通過控制線程的數量來控制住,而入庫將強受限于 clickhouse 的寫入性能。

至于 clickhouse 是如何做的優化,后面會有 clickhouse 集群負責人來講一下做了哪些優化。

為了做好這個緩沖,即便日志接收量大于入庫量,我們也要能接下來這些數據,盡量不丟失。

首先硬件上,采用大內存機器,8 核 32G 的容器,來盡量多屯一些數據。其次,采用了雙緩沖隊列,先將所有接收的數據放一個隊列,然后多線程消費、解析成可供入庫的行數據,再放入一個待入庫隊列,然后批量入庫。

那么我們做的這些操作,能支撐什么樣的數據量呢?

通過線上的應用和嚴苛的壓測,這樣一臺單機 docker 容器,每秒可以處理原始日志 1-5 千萬行。

譬如一條用戶請求,中途產生了共計 1 千多行日志,那么這樣的一臺 worker 單機,每秒可以處理 2 萬客戶端 QPS。對外寫 clickhouse 數據庫,每秒可以寫 160M-200M 比較穩定。

通過對上文的了解,我們知道,這些數據都是被壓縮過的,直至庫里面的都是壓縮過的,只有當最終用戶查詢時,才會進行解壓。所以,這 200M,基本相當于原始數據 1G 多的大小。

也就是說,只要 clickhouse 寫入速度跟的上,這個系統僅需 100 臺就可以極其高效地處理原始秒級百 G 的日志。

對比寫 MQ 的方案,中途所有會出現瓶頸的點如 MQ 寫磁盤速度、消費拉取速度等,都將不復存在。這是一個純內存交換的鏈路系統。

強悍的 Clickhouse

通過以上的了解,我們可以清楚的看到,worker 作為一個純內存計算的組件,client 端通過 worker 的數量進行 hash 均勻分發到各個 worker。

所以 worker 可以動態擴容而且不存在性能瓶頸,其唯一受限制的就是寫入庫的速度。

倘若寫庫速度跟不上,則 worker 必須要拿有限的內存去屯下發來的大量數據,一旦寫滿則就會開始丟棄接收到的數據。所以整個系統的瓶頸點,就是寫庫的速度。

Clickhouse 是面向海量數據實時、多維分析、高性能的新一代 OLAP 數據庫管理系統,實現了向量化執行和 SIMD 指令,對內存中的列式數據,一個 batch 調用一次 SIMD 指令,大幅縮短了計算耗時,帶來數倍的性能提升。

目前已成為驅動京東集團業務增長、創新的“超級引擎”。那么在京東 App 秒級百 G 日志傳輸存儲架構中,Clickhouse 如何支撐大吞吐量數據的寫入?

主要在于以下兩點:

①集群高可用架構

EasyOLAP 部署 CH 集群是三層結構:域名+CHProxy+CH 節點,域名轉發請求到 CHProxy,再由 CHProxy 根據集群節點狀態來轉發。

CHProxy 的引入是為了讓 Query 均勻分布在每個節點上,,并對 CHProxy 做了一定的改進,自動感知集群節點的狀態變化。

②本地表寫入

大吞吐量的數據寫入分布式表時,分布式表會將接收的 insert 數據拆分成多個 parts,并通過 rand 或者 shard_key 方式轉發到各個分片。

這會引起 ch 節點網絡帶寬和 merge 的工作量增加,導致寫入性能下降,并且會增加 too many parts 的風險和加大 zookeeper 的壓力。

另外數據會在分布式表所在節點進行臨時落盤,然后異步的發送到本地表所在的節點進行物理存儲,中間沒有一致性校驗,如果分布式表所在的節點出現故障,會存在數據丟失的風險。

所以針對以上風險,大吞吐量的數據可直接寫入本地表,相較于寫入分布式表可以大幅度提升 2-3 倍的寫入性能。

多條件查詢控制臺

控制臺比較簡單,主要就是做一些 sql 語句查詢,做好 clickhouse 的高效查詢,這里簡單提一些知識點。

做好數據的分片,如按天分片。用好 prewhere 查詢功能,可以帶來性能的提升。做好索引字段的設計,譬如檢索常用的時間、pin。

細節難以盡述,要從百億千億數據中,做好極速的查詢,還需要對 clickhouse 的一些查詢特性有所了解。

下圖界面展示的即為一些索引項,點擊查看詳情,則從數據庫撈出壓縮過的數據,此時才解壓并展示給前端。查看鏈路,則是該次請求中,整個鏈路用戶打印的 log(包括線程池內的)。

總結與對比

我們可以簡單的做一些對比,主要在于硬件成本和軟件性能的對比。

從上文可知,磁盤的占用原始方案占用了磁盤(1 份),MQ(2 份),數據庫(1 份)。

而在新的方案中,磁盤的占用僅剩下 clickhouse 的(0.8 份),clickhouse 自身又對數據做了壓縮,實際占用空間不到入庫容量的 80%。那么僅磁盤即可節省 75% 以上的存儲成本。

大家都知道,秒級的吞吐量,是伴隨著服務器 CPU 的耗費的,并不是說只給個大硬盤,即可一臺服務器每秒吞吐 1 個 G 的。

每臺服務器秒級的吞吐量是有上限的,秒級占用磁盤的上升,即對應 CPU 數量的上升,要支撐一秒 1G 的磁盤寫入,需要 5 臺或以上的服務器。

那么在磁盤的大幅節約下,線性地節省了大量的中間過程 CPU 服務器。實際粗略統計效果,流程中服務器可節約 70% 以上。

在軟件性能上,過程很好理解。對 Client 端的消耗主要就是序列化、寫磁盤、讀磁盤、反序列化這幾步的消耗,Udp 則僅有一步序列化。

我們假設 MQ 集群是有無限的寫入能力,可以吞下所有的發過去的日志,那么就是 worker 端的消費性能對比。

從 MQ 拉取并消費,這個過程如果 MQ 沒有積壓,則有零拷貝在支撐高速的拉取,如果積壓了,則可能產生大量的 MQ 磁盤 IO,拉取速度會大幅下降。

這個過程效率會明顯低于 Udp 發送到 worker 的處理效率,而且占用雙份的網絡帶寬。

實際表現上,worker 表現出的強勁性能,較之前單條拉取 MQ 集群時,消費性能提升在 10 倍以上。

本文到此就結束了,主要簡略介紹了一個新的日志搜集系統的設計方案,以及該方案能帶來的巨大的成本節省。

作者:武偉峰、李陽

編輯:陶家龍

來源:轉載自公眾號京東零售技術(ID:jd-sys)

 

責任編輯:武曉燕 來源: 京東零售技術
相關推薦

2014-01-09 09:34:07

Linux

2022-05-17 23:44:25

大數據工具樣本分析師

2021-08-23 07:42:57

Windows 10操作系統微軟

2017-12-27 14:15:47

大數據數據分析圣誕

2023-05-26 08:55:44

2019-05-25 11:19:03

華為開發者存儲

2022-07-12 16:49:27

蘋果自動駕駛Apple Car

2012-03-08 10:37:13

Cloudpaging云計算Numecent

2021-05-30 19:18:39

Facebook隱私網絡攻擊

2022-05-31 17:36:25

技術面試編程

2022-10-24 13:44:22

2023-04-06 06:55:24

ChatGPTGPT算力

2018-07-24 15:23:18

2022-01-10 08:00:00

云原生云計算技術

2021-01-18 10:55:50

云計算多云混合云

2021-02-10 16:05:16

數據分析技術IT

2023-05-09 07:10:53

2022-12-19 10:45:14

編程幾何

2021-12-17 09:36:41

Log4j補丁漏洞

2020-09-28 13:57:35

惡意軟件黑客網絡攻擊
點贊
收藏

51CTO技術棧公眾號

欧美国产日韩激情| 国产99午夜精品一区二区三区| av男人的天堂av| 电影一区二区| 亚洲精品日韩一| 97神马电影| 精品国产一区二区三区四| 日韩国产一区二区| 欧美成人综合网站| 日韩av播放器| 日本精品600av| 91老师国产黑色丝袜在线| 国产欧美最新羞羞视频在线观看| 免费在线观看一级片| 女厕嘘嘘一区二区在线播放| 91精品国产免费久久综合| 欧美 丝袜 自拍 制服 另类| 中文字幕在线免费| proumb性欧美在线观看| 91精品视频一区| 中文字幕第四页| 欧美不卡在线| 日韩中文在线中文网在线观看| 影音先锋资源av| 国产情侣一区二区| www.av视频| 妞干网免费在线视频| 国产精品国产自产拍高清av| 久久久水蜜桃| 亚洲av无码乱码国产精品久久| 日韩av一级电影| 8x拔播拔播x8国产精品| 男女做暖暖视频| 热久久天天拍国产| 亚洲欧美综合另类中字| 亚洲综合自拍网| japanese色系久久精品| 欧美日韩一区二区三区在线看| 国产极品在线视频| 深夜国产在线播放| 亚洲日本丝袜连裤袜办公室| 亚洲午夜激情| caoporn国产精品免费视频| 91视频一区二区三区| 国产精品一级久久久| 精品久久久免费视频| 精品一区二区三区在线播放| 国产精品久久久久av免费| 婷婷激情五月网| 99视频一区| 久久久综合免费视频| 免费一级片在线观看| 亚洲一级毛片| 久久久国产精品免费| 久久久久人妻一区精品色| 精品美女视频| 伊人久久久久久久久久久| 波多野结衣一本| 亚洲精品无吗| 亚洲欧美中文日韩在线| a级大片在线观看| 自拍偷拍精品| 一个人看的www久久| 成人片黄网站色大片免费毛片| 一区二区三区视频免费观看| 亚洲免费av片| 免费一级黄色录像| 日韩av有码| 久久这里只有精品视频首页| 欧美一区二区三区爽爽爽| 一区二区电影在线观看| 欧美激情亚洲视频| 日本一级片免费看| 久久这里只有| 国产色视频一区| 国产美女明星三级做爰| 国产成人丝袜美腿| 韩日午夜在线资源一区二区| 青青草在线播放| 日本一区二区久久| 欧美精品一区二区性色a+v| www国产在线观看| 亚洲h动漫在线| 极品美女扒开粉嫩小泬| 免费电影日韩网站| 欧美日韩黄色影视| 日本人dh亚洲人ⅹxx| 国产精品对白| 国产亚洲在线播放| 精品国产大片大片大片| 国模一区二区三区| 日韩免费黄色av| 在线免费看毛片| 国产91精品一区二区麻豆亚洲| 精品在线视频一区二区| 午夜激情在线观看| 亚洲国产欧美在线人成| 日本人视频jizz页码69| 亚洲超碰在线观看| 国产亚洲视频在线| 久久午夜无码鲁丝片| 日韩中文字幕1| 亚洲自拍小视频免费观看| 人妻精品一区二区三区| 国产精品欧美一区喷水| 日本a在线免费观看| 国产精品天堂蜜av在线播放| 亚洲成人激情在线观看| 五月婷婷婷婷婷| 亚洲看片一区| 亚洲va男人天堂| 国产在线电影| 亚洲成人av一区二区三区| 日本肉体xxxx裸体xxx免费| 国产精品一区二区三区美女| 色yeye香蕉凹凸一区二区av| 男人午夜免费视频| 国产成人在线视频网址| 日韩欧美在线电影| av今日在线| 91精品国产一区二区三区香蕉| 色欲av无码一区二区三区| 欧美另类亚洲| 国产欧美日韩综合精品| 日本中文字幕电影在线观看| 亚洲制服丝袜av| 午夜av中文字幕| 激情五月色综合国产精品| 久久久久久成人精品| 国产精品久久久久久久久久久久久久久久久久 | 91女神在线视频| 成人区一区二区| 成人97精品毛片免费看| 这里只有精品在线观看| 精品视频久久久久| 国产成人h网站| 中文字幕精品—区二区日日骚| 中文字幕这里只有精品| 亚洲第一网中文字幕| 黑鬼狂亚洲人videos| 蜜桃视频一区二区三区在线观看| 欧美一级爱爱| 刘亦菲一区二区三区免费看| 亚洲欧美日韩精品久久奇米色影视| 日产欧产va高清| 成人免费三级在线| 欧洲精品在线播放| 综合伊人久久| 欧美日韩xxxxx| 国产日韩一级片| 亚洲色图欧美激情| 精品亚洲视频在线| 国产精品久久久久久久久久10秀| 国产精品国产三级国产aⅴ浪潮| 视频在线不卡| 色哟哟欧美精品| 国产三级av在线播放| 日本成人中文字幕在线视频| 手机看片福利永久国产日韩| 91超碰碰碰碰久久久久久综合| 国产亚洲美女精品久久久| 最新黄色网址在线观看| 国产精品免费视频网站| av中文字幕网址| 亚洲天堂免费| 激情久久av| 成人爽a毛片免费啪啪| 国产一区二区三区三区在线观看| 中文字幕+乱码+中文字幕明步| 国产精品天天看| 亚洲自拍第三页| 亚洲午夜久久久久久尤物| 国产综合av一区二区三区| 亚洲天堂av影院| 伊人激情综合网| 国产wwwwwww| 五月激情六月综合| 亚洲а∨天堂久久精品2021| 精品一区二区久久久| 国产小视频免费| 中文字幕伦av一区二区邻居| 成人黄色在线观看| 国产乱码在线| 亚洲女人天堂成人av在线| 一本色道久久综合熟妇| 夜夜嗨av一区二区三区中文字幕| 亚洲精品乱码久久久久久久| 美国毛片一区二区三区| 成人免费看片'免费看| 国产精品午夜一区二区三区| 国产一区私人高清影院| 国产福利在线免费观看| 亚洲视频欧美视频| 不卡的日韩av| 在线中文字幕一区| 免费在线一级片| 国产亚洲精品精华液| 国产老头和老头xxxx×| 亚洲专区免费| 日本xxxxx18| 国产免费播放一区二区| 亚洲一区国产精品| 色老太综合网| 欧美高清视频在线播放| 成人在线观看免费| 亚洲成人动漫在线播放| 国产又黄又猛又爽| 色吊一区二区三区| 久久久综合久久久| 国产女主播一区| 欧美xxxx×黑人性爽| 久久99国产精品免费| 美女av免费在线观看| 欧美精品午夜| 日本视频一区在线观看| 波多野结衣一区二区三区免费视频| 国产精品成熟老女人| 成年人黄色大片在线| 欧美成人午夜激情在线| av中文字幕一区二区三区| 日韩国产在线看| 国产日韩免费视频| 精品视频色一区| 亚洲成熟少妇视频在线观看| 亚洲成人一区二区在线观看| 婷婷社区五月天| 国产欧美一区视频| 亚洲第一香蕉网| 99久久国产综合精品女不卡 | 风间由美一区二区三区在线观看| 欧美三级午夜理伦三级富婆| 久久狠狠婷婷| 久久免费视频3| 亚洲婷婷在线| 草草视频在线免费观看| 欧美精品播放| 国产 国语对白 露脸| 91精品国产乱码久久久久久| 伊人久久99| 日韩中文在线电影| 一道精品一区二区三区 | 一本—道久久a久久精品蜜桃| 国产精品一国产精品| 乱色588欧美| 久久久久观看| 精品久久久久久乱码天堂| 美女av一区| 久久久久久久久久久久久9999| 久久a爱视频| 精品一区二区三区日本| 亚洲成人一品| 日韩福利一区二区三区| 精品国产美女| 伊人狠狠色丁香综合尤物| 91久久高清国语自产拍| 国产对白在线播放| 欧美国产91| 九九热只有这里有精品| 在线视频精品| 成人羞羞国产免费网站| 免费观看久久久4p| 污视频在线观看免费网站| 国产精品中文欧美| 四虎永久免费观看| 91网站在线观看视频| 国内精品久久99人妻无码| 国产视频一区二区在线| 国产喷水在线观看| 亚洲最大色网站| 天天干在线播放| 欧美日韩一二区| 国产日韩免费视频| 亚洲精品xxxx| av在线电影观看| 久久精品人人爽| 波多一区二区| 国产精品99久久99久久久二8| 亚洲成人毛片| 高清视频一区二区三区| 亚洲裸色大胆大尺寸艺术写真 | 综合精品一区| 国产精品网站免费| 青青草伊人久久| 中文字幕一二三区| 国产性色一区二区| 欧美精品久久久久久久久46p| 亚洲一区二区三区四区在线| 久久久久久不卡| 91精品国产综合久久福利软件 | 一区二区中文字幕在线观看| 精品在线不卡| 91精品久久久久久久蜜月| 日本在线xxx| 另类人妖一区二区av| 图片区偷拍区小说区| 国产欧美日产一区| 久久亚洲成人av| 91福利视频网站| 欧美一级做性受免费大片免费| 亚洲人成亚洲人成在线观看| 欧美人与禽性xxxxx杂性| 国产国语刺激对白av不卡| 亚洲国产精品免费视频| 日韩一本精品| 伊人久久亚洲影院| 久久久久久久久久一区二区| 91在线国产观看| 日本aⅴ在线观看| 色猫猫国产区一区二在线视频| 亚洲国产精品二区| 中文字幕精品在线| 一区二区乱码| 动漫美女被爆操久久久| 91麻豆国产自产在线观看亚洲 | 国内成+人亚洲+欧美+综合在线 | 青青草这里只有精品| 永久免费在线看片视频| 日本女人一区二区三区| 插我舔内射18免费视频| 亚洲男人天堂av| 夜夜躁日日躁狠狠久久av| 亚洲精品第一国产综合精品| 怡红院av在线| 国产在线高清精品| 精品免费av| 欧美日韩在线中文| 波多野结衣中文一区| 免费无码毛片一区二区app| 欧美日韩国产123区| 91在线观看| 国产精品wwww| 国产尤物久久久| 国产日产欧美视频| 99久久免费国产| 日本少妇吞精囗交| 精品欧美乱码久久久久久1区2区| 黄色网在线看| 国产日产久久高清欧美一区| 成人羞羞视频在线看网址| 成人三级视频在线播放| av不卡免费在线观看| 国产精品a成v人在线播放| 日韩精品一区二区三区四区| 超碰在线caoporn| 亚洲qvod图片区电影| 一区二区影视| 欧美日韩一区二区区别是什么 | 国产欧美日韩在线看| 日韩人妻精品中文字幕| 国产丝袜一区二区| 色豆豆成人网| 亚洲图色在线| 国模大尺度一区二区三区| 国产少妇在线观看| 日韩一区二区三区av| 国产在线xxx| 久久亚洲午夜电影| 天使萌一区二区三区免费观看| 三上悠亚ssⅰn939无码播放| 日本高清视频一区二区| jizz视频在线观看| 国产一区深夜福利| 欧美/亚洲一区| 免费不卡的av| 精品国产91乱高清在线观看| 韩国中文字幕2020精品| 国产精品美女免费看| 五月天久久777| 亚洲成人福利视频| 精品日韩美女的视频高清| 可以免费看污视频的网站在线| 国产精品久久久久av| 综合天天久久| 国产真实乱人偷精品| 在线欧美一区二区| 久草中文在线观看| 国产一区国产精品| 男人的j进女人的j一区| 国产一区二区视频在线观看免费| 精品久久人人做人人爽| 中文字幕在线直播| 中文字幕欧美人与畜| 成人性生交大片| 国产精品无码粉嫩小泬| 欧美美女15p| 九九热爱视频精品视频| 国产精品久久久久久9999| 亚洲成av人片在线| av资源网在线观看| 国产日韩欧美一区二区三区四区| 玖玖精品视频| 久久久久亚洲天堂| 国产亚洲人成网站在线观看| 一区二区三区高清在线观看| 欧美日韩中文在线视频| 亚洲视频一区二区在线| 欧美中文在线| 成人情视频高清免费观看电影| 日韩**一区毛片| xxxxxx国产|