精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

麻豆免费看一区二区三区| 欧美日韩一区二区三区在线电影| 国产精品国产三级国产aⅴ原创| 国产日韩精品入口| 亚洲国产精品久| 日韩深夜影院| 欧美日韩dvd在线观看| 国产天堂视频在线观看| 国产特黄在线| 高清国产一区二区| 国产精品久久二区| 欧美激情一区二区视频| 国产va免费精品观看精品视频| 欧美人成免费网站| 国产深夜男女无套内射| 日本www在线| 97se狠狠狠综合亚洲狠狠| 国产精品自产拍在线观看| 国产一级生活片| 日本一区二区三区视频| 亚洲成人av片在线观看| 九九精品久久久| 日韩电影免费观看高清完整版| 一区二区三区四区不卡视频| 婷婷四房综合激情五月| 亚洲精品久久久久久久久久| 奇米888四色在线精品| 91精品国产91久久久久福利| 亚洲a∨无码无在线观看| 日韩啪啪网站| 亚洲成人黄色在线观看| 免费国偷自产拍精品视频| 日韩a**中文字幕| 亚洲成人在线网站| 看全色黄大色大片| 尤物网在线观看| xfplay精品久久| 国产综合欧美在线看| 精品国产av鲁一鲁一区| 日韩极品在线观看| 欧美综合一区第一页| 国产在线观看成人| 欧美一区国产在线| 久久久www成人免费精品| 嘿嘿视频在线观看| 精品国产乱码| 国产亚洲精品久久| 熟妇高潮精品一区二区三区| 精品国产18久久久久久洗澡| 精品乱码亚洲一区二区不卡| 美女被艹视频网站| 国产999精品在线观看| 欧美日韩免费观看一区三区| 日本999视频| 在线成人视屏| 欧美三日本三级三级在线播放| 丁香婷婷激情网| 日韩视频网站在线观看| 在线观看不卡视频| 一区二区xxx| 欧美亚洲黄色| 91精品国产综合久久精品app| 孩娇小videos精品| 91精品视频一区二区| 欧美日韩国产一级| 三级av免费看| 国产精品一区二区三区美女| 亚洲激情自拍图| 国产熟妇搡bbbb搡bbbb| 欧洲福利电影| 久久伊人精品一区二区三区| 我家有个日本女人| 亚洲毛片在线| 日本欧美一二三区| 91成人在线免费| 国产伦精品一区二区三区在线观看| 7777精品伊久久久大香线蕉语言| www.蜜桃av.com| 91蜜桃免费观看视频| 日本高清视频一区二区三区| 午夜老司机在线观看| 亚洲婷婷综合久久一本伊一区| 老司机午夜免费福利视频| 国产精品蜜臀| 一本久久a久久免费精品不卡| 9久久婷婷国产综合精品性色 | 色中色在线视频| 国产日韩成人精品| 国产又大又长又粗又黄| 国产啊啊啊视频在线观看| 欧美性xxxxx极品| 一个色综合久久| 成人爽a毛片免费啪啪红桃视频| 日韩麻豆第一页| 亚洲伦理一区二区三区| 99国产精品私拍| 国产精品综合不卡av| 亚洲乱熟女一区二区| 国产午夜精品久久久久久免费视| 天堂av在线中文| 韩国成人漫画| 日韩一卡二卡三卡四卡| 成人片黄网站色大片免费毛片| 亚洲精品成人无限看| 国产91精品不卡视频| 国产伦理吴梦梦伦理| 99精品视频一区二区| 中文字幕日韩一区二区三区| 日韩大片免费观看| 欧美一区二区三区啪啪| 国产三级av在线播放| 一区三区视频| 成人免费视频网| 精品一二三区视频| 性久久久久久久久久久久| 亚洲xxx在线观看| 亚洲成aⅴ人片久久青草影院| 久久中文字幕视频| 亚洲av无码乱码国产精品fc2| 成人午夜在线播放| 无码毛片aaa在线| 国产精品原创视频| 日韩精品中文字幕在线播放| 欧美成人精品欧美一级| 激情成人综合网| 日本一区二区久久精品| 国产精品原创| 亚洲成人激情图| 亚洲一区二区91| 国产一二三精品| 一区二区三区国产福利| 肉色欧美久久久久久久免费看| 欧美成人一级视频| 黄色香蕉视频在线观看| 蜜桃av噜噜一区| 日韩精品成人一区二区在线观看| 女人高潮被爽到呻吟在线观看| 精品少妇一区二区三区在线播放| 91嫩草|国产丨精品入口| 免费欧美在线视频| 日韩电影大全在线观看| 性欧美超级视频| 亚洲欧美自拍一区| 欧美日韩综合在线观看| 99综合电影在线视频| 免费网站在线观看视频| 中文字幕区一区二区三| 欧美高清第一页| 六月婷婷中文字幕| 亚洲国产精品欧美一二99| 农村末发育av片一区二区| 牛夜精品久久久久久久99黑人| 成人精品福利视频| 看女生喷水的网站在线观看| 欧美日韩精品高清| 男人av资源站| 国产成人在线视频网站| 欧洲精品在线播放| 亚洲精品观看| 午夜精品久久久99热福利| 香蕉av一区二区三区| 欧美丝袜第一区| 蜜桃久久精品成人无码av| 男人的j进女人的j一区| 一区二区日本伦理| 一区二区三区四区视频免费观看| 久久久在线观看| 精华区一区二区三区| 欧美日韩视频一区二区| 欧美成人777| 成人动漫一区二区在线| 黄色一级片播放| 欧美一级本道电影免费专区| 国产在线观看一区二区三区| aaa大片在线观看| 日韩av在线免费看| 欧美性猛交xxxx乱大交hd| 亚洲欧洲在线观看av| 18深夜在线观看免费视频| 99国产精品久久久久久久成人热| 日韩免费av电影| 日本一区二区乱| 日韩免费观看高清| 免费人成在线观看播放视频| 精品国产免费久久 | 欧美日韩成人综合在线一区二区| 欧美日韩亚洲国产另类| 久久久夜色精品亚洲| 婷婷激情5月天| 亚洲久久成人| 一区二区三区精品国产| 久久九九热re6这里有精品 | 亚洲国产成人精品无码区99| 国产不卡av一区二区| caoporen国产精品| 日韩不卡在线| 欧美激情视频在线免费观看 欧美视频免费一| 污污的视频网站在线观看| 欧美日韩在线综合| 国产精久久久久久| 国产精品国产三级国产aⅴ无密码| 一边摸一边做爽的视频17国产| 麻豆精品一区二区三区| 国产精品裸体瑜伽视频| 91av精品| 婷婷久久五月天| 色综合久久中文| 亚洲自拍av在线| 日本一区二区三区视频在线| 91精品国产91久久久| av网址在线| 中文国产亚洲喷潮| 无码精品人妻一区二区| 日韩一级视频免费观看在线| 欧美在线视频精品| 欧美日韩精品国产| 久操免费在线视频| 中文字幕在线观看一区| 色婷婷在线影院| 91一区在线观看| 岛国精品一区二区三区| 黑人巨大精品欧美一区| jizz欧美激情18| 亚洲综合激情| www在线观看免费| 欧美三区不卡| 国产一级不卡视频| 91精品一区二区三区综合在线爱| 色综合久久88色综合天天提莫| 亚洲理论电影| 蜜桃传媒视频麻豆一区| 国产一区二区在线视频你懂的| 91在线免费看网站| 亚洲国产91视频| 国产精品永久免费视频| 亚洲成人激情社区| 国产91在线播放精品91| 一二三四视频在线中文| 91高潮精品免费porn| 91禁在线看| 97av在线视频| 在线观看涩涩| 日本一欧美一欧美一亚洲视频| 日韩伦理福利| 欧美在线激情视频| 最新中文字幕在线播放| 日本高清视频一区| 免费日韩电影| 国产精品久久久av久久久| 成人在线视频播放| 国产精品入口尤物| 亚洲色图图片| 91黄在线观看| 中文字幕日韩在线| 精品国产电影| 国产乱码精品一区二区亚洲| 日韩精品久久一区| 久久亚洲影视| 黄色成人在线免费观看| 亚洲大胆视频| 东京热加勒比无码少妇| 日本成人超碰在线观看| 亚洲高清免费在线观看| 国产一区二区在线看| 中文字幕1区2区| 91麻豆文化传媒在线观看| 女~淫辱の触手3d动漫| 欧美国产97人人爽人人喊| 希岛爱理中文字幕| 亚洲成av人片在线观看无码| 国产一级片毛片| 欧美日韩午夜在线| www.麻豆av| 亚洲欧美成人一区二区在线电影| 91福利在线视频| 色综合五月天导航| 欧美sm一区| 成人国内精品久久久久一区| 亚洲超碰在线观看| 久久大香伊蕉在人线观看热2| 成人精品亚洲| 欧妇女乱妇女乱视频| 葵司免费一区二区三区四区五区| 亚洲精品午夜在线观看| 成人国产精品免费观看动漫| 国产真人做爰视频免费| 亚洲男人天堂一区| 亚洲精品www久久久久久| 欧美三级视频在线| 囯产精品久久久久久| 亚洲人成电影网站色xx| 午夜伦理在线视频| 国产suv精品一区二区| 欧美第一在线视频| 日本高清视频一区二区三区| 国产精品www994| 天堂中文视频在线| 国产91丝袜在线播放九色| 国产美女永久免费无遮挡| 亚洲第一成人在线| 夜夜躁很很躁日日躁麻豆| 亚洲国产精品福利| 欧美极品视频| 国产成人+综合亚洲+天堂| 日本一区二区乱| 亚洲一区二区在线免费观看| 国产美女诱惑一区二区| 粗大的内捧猛烈进出视频| 国产欧美日韩亚州综合| 国产情侣在线视频| 91精品国产品国语在线不卡| 国产二区视频在线观看| 8090成年在线看片午夜| 韩国三级成人在线| 亚洲欧洲国产日韩精品| 性色一区二区三区| av av在线| 一区二区三区小说| 一区二区三区黄| 国产亚洲精品高潮| xx欧美xxx| 韩国一区二区三区美女美女秀 | 欧美韩国日本在线| 成人综合激情网| 久草视频免费在线| 3d动漫精品啪啪| 尤物网址在线观看| 国产精品欧美激情| 免费短视频成人日韩| 国产av麻豆mag剧集| 国产成人高清视频| 疯狂撞击丝袜人妻| 91精品在线免费观看| 天堂中文а√在线| 国产精品最新在线观看| 精品理论电影| 免费一级特黄录像| 欧美极品美女视频| 中文字幕第315页| 一本色道久久88综合亚洲精品ⅰ| 精品3atv在线视频| 视频一区三区| 美女一区二区三区在线观看| 性少妇xx生活| 777xxx欧美| 日日夜夜天天综合入口| 99理论电影网| 黑人一区二区| 精品中文字幕在线播放| 五月天欧美精品| 日批视频免费播放| 91精品国产精品| 自拍偷拍欧美一区| 日韩av片网站| 自拍偷拍亚洲激情| 精品国产无码一区二区| 国内精品视频一区| 神马久久影院| caoporn超碰97| 亚洲欧美在线观看| 国内精品国产成人国产三级| 欧美极品少妇全裸体| 好吊妞视频这里有精品| 337p粉嫩大胆噜噜噜鲁| 国产三级欧美三级| 国产精品欧美久久久久天天影视| 欧美成人免费视频| 国产精品网址| 黄色国产小视频| 亚洲精品videosex极品| 欧洲精品久久一区二区| 日韩av毛片网| 国产韩国精品一区二区三区| 国产裸体视频网站| 欧美日韩一区二区精品| 91亚洲欧美| 国产精品福利视频| 久久久成人网| 极品颜值美女露脸啪啪| 日韩毛片中文字幕| 综合久久伊人| 波多野结衣之无限发射| 欧美激情综合五月色丁香小说| 精品人妻一区二区三区浪潮在线 | 操欧美女人视频| 国产视频一区二区三区在线播放| 亚洲欧洲日产国码二区| 欧美特黄一级视频| 国产精品久久久久不卡| 欧美黄在线观看| 亚洲性猛交xxxx乱大交| 日韩一区和二区| 都市激情亚洲一区| 乱子伦一区二区| 久久久久久久久久久久久女国产乱| 国产情侣激情自拍| 国产成人aa精品一区在线播放 | 国产精品你懂的| 亚洲人妻一区二区| 亚洲www在线观看|