成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Elasticsearch用得好,下班下得早!

開發(fā) 架構(gòu) 開發(fā)工具
入行 Elastic-Stack 技術(shù)棧很久了,為了免于知識(shí)匱乏眼光局限,有必要到外面的世界看看,豐富自己的世界觀。

 入行 Elastic-Stack 技術(shù)棧很久了,為了免于知識(shí)匱乏眼光局限,有必要到外面的世界看看,豐富自己的世界觀。

[[325697]]

 

圖片來自 Pexels

本篇內(nèi)容從 Elastic 的競爭產(chǎn)品角度分析探討:

  • 哪些應(yīng)用場景下使用 Elasticsearch 最佳?
  • 哪些應(yīng)用場景下不使用 Elasticsearch 最好?

Elasticsearch 當(dāng)前熱度排名很高

本文僅代表個(gè)人的觀點(diǎn),不代表社區(qū)技術(shù)陣營觀點(diǎn),無意口水之爭,限于本人的經(jīng)驗(yàn)知識(shí)有限,可能與讀者觀點(diǎn)認(rèn)知不一致。

競爭產(chǎn)品

Elasticseach 從做搜索引擎開始,到現(xiàn)在主攻大數(shù)據(jù)分析領(lǐng)域,逐步進(jìn)化成了一個(gè)全能型的數(shù)據(jù)產(chǎn)品。

在 Elasticsearch 諸多優(yōu)秀的功能中,與很多數(shù)據(jù)產(chǎn)品有越來越多的交叉競爭,有的功能很有特色,有的功能只是附帶,了解這些產(chǎn)品特點(diǎn)有助于更好的應(yīng)用于業(yè)務(wù)需求。

Elasticsearch 競爭圖譜示意圖

Lucene

Lucene 是一個(gè)搜索的核心庫,Elastic 也是在 Lucene 基礎(chǔ)之上構(gòu)建,它們之間的競爭關(guān)系是由 Lucene 本身決定的。

在互聯(lián)網(wǎng) 2.0 時(shí)代,考驗(yàn)各互聯(lián)網(wǎng)公司最簡單的技術(shù)要求,就是看他們的搜索做的怎么樣,那時(shí)大家的做法幾乎一樣,都基于 Lucene 核心庫構(gòu)建一套搜索引擎,剩下的就看各公司的開發(fā)者們的水平。

筆者有幸在 2012 年之前,基于 Lucene 做過垂直行業(yè)的搜索引擎,遇到很多問題有必要說一下:

  • 項(xiàng)目基于 Lucene 包裝,業(yè)務(wù)代碼與核心庫一起構(gòu)建發(fā)布,代碼耦合度很高,每次有數(shù)據(jù)字段變更,都需要重新編譯打包發(fā)布,這個(gè)過程非常的繁瑣,且相當(dāng)危險(xiǎn)。
  • 程序重新發(fā)布,需要關(guān)閉原有的程序,涉及到進(jìn)程切換問題。
  • 索引數(shù)據(jù)定期全量重新生成,也涉及到新舊索引切換,索引實(shí)時(shí)刷新等問題,都需要設(shè)計(jì)一套復(fù)雜的程序機(jī)制保障
  • 每個(gè)獨(dú)立業(yè)務(wù)線需求,都需要單獨(dú)構(gòu)建一個(gè) Lucene 索引進(jìn)程,業(yè)務(wù)線多了之后,管理是個(gè)麻煩的事情
  • 當(dāng)單個(gè) Lucene 索引數(shù)據(jù)超過單實(shí)例限制之后,需要做分布式,這個(gè)原有 Lucene 是沒有辦法的,所以常規(guī)的做法也是按照某特定分類,拆分成多個(gè)索引進(jìn)程,客戶端查詢時(shí)帶上特定分類,后端根據(jù)特定分類路由到具體的索引。
  • Lucene 庫本身的掌控難度,對(duì)于功力尚淺的開發(fā)工程師,需要考慮的因素實(shí)在太多了,稍微不慎,就會(huì)出現(xiàn)很大的程序問題。

Lucene 內(nèi)部索引構(gòu)建與查詢過程

Elasticsearch 與 Lucene 核心庫競爭的優(yōu)勢(shì)在于:

  • 完美封裝了 Lucene 核心庫,設(shè)計(jì)了友好的 Restful-API,開發(fā)者無需過多關(guān)注底層機(jī)制,直接開箱即用。
  • 分片與副本機(jī)制,直接解決了集群下性能與高可用問題。

Elastic 近年的快速發(fā)展,市面上已經(jīng)很少發(fā)現(xiàn)基于 Lucene 構(gòu)建搜索引擎的項(xiàng)目,幾乎清一色選擇 Elasticsearch 作為基礎(chǔ)數(shù)據(jù)庫服務(wù)。

由于其開源特性,廣大云廠商也在此基礎(chǔ)上定制開發(fā),與自己的云平臺(tái)深度集成,但也沒有獨(dú)自發(fā)展一個(gè)分支。本次的競爭中,Elasticsearch 完勝。

Solr

Solr 是第一個(gè)基于 Lucene 核心庫功能完備的搜索引擎產(chǎn)品,誕生遠(yuǎn)早于 Elasticsearch。

早期在全文搜索領(lǐng)域,Solr 有非常大的優(yōu)勢(shì),幾乎完全壓倒 Elastic,在近幾年大數(shù)據(jù)發(fā)展時(shí)代,Elastic 由于其分布式特性,滿足了很多大數(shù)據(jù)的處理需求。

特別是后面 ELK 這個(gè)概念的流行,幾乎完全忘記了 Solr 的存在,雖然也推出了 Solr-Coud 分布式產(chǎn)品,但已經(jīng)基本無優(yōu)勢(shì)。

接觸過幾個(gè)數(shù)據(jù)類公司,全文搜索都基于 Solr 構(gòu)建,且是單節(jié)點(diǎn)模式,偶然出現(xiàn)一些問題,找咨詢顧問排查問題,人員難找,后面都遷移到 Elasticsearch 之上。

現(xiàn)在市面上幾乎大大小小公司都在使用 Elasticsearch,除了老舊系統(tǒng)有的基于 Solr 的,新系統(tǒng)項(xiàng)目應(yīng)該全部是 Elasticsearch。

個(gè)人認(rèn)為有以下幾個(gè)原因:

  • ES 比 Solr 更加友好簡潔,門檻更低。
  • ES 比 Solr 產(chǎn)品功能特點(diǎn)更加豐富,分片機(jī)制,數(shù)據(jù)分析能力。
  • ES 生態(tài)發(fā)展,Elastic-stack 整個(gè)技術(shù)棧相當(dāng)全,與各種數(shù)據(jù)系統(tǒng)都很容易集成。
  • ES 社區(qū)發(fā)展更加活躍,Solr 幾乎沒有專門的技術(shù)分析大會(huì)。

Solr 產(chǎn)品功能模塊內(nèi)部架構(gòu)圖

本次競爭中,Elasticsearch 完勝。

RDBMS

關(guān)系型數(shù)據(jù)庫與 Elasticsarch 相比主要優(yōu)點(diǎn)是事務(wù)隔離機(jī)制無可替代,但其局限性很明顯。

主要幾個(gè)方面如下:

  • 關(guān)系型數(shù)據(jù)庫查詢性能,數(shù)據(jù)量超過百萬級(jí)千萬級(jí)之后下降厲害,本質(zhì)是索引的算法效率不行,B+ 樹算法不如倒排索引算法高效。
  • 關(guān)系型數(shù)據(jù)庫索引最左原則限制,查詢條件字段不能任意組合,否則索引失效,相反 Elasticserach 可以任意組合,此場景在數(shù)據(jù)表關(guān)聯(lián)查詢時(shí)特別明顯,Elasticsearch 可以采用大寬表解決,而關(guān)系型數(shù)據(jù)庫不能。
  • 關(guān)系型數(shù)據(jù)庫分庫分表之后多條件查詢,難于實(shí)現(xiàn),Elasticsearch 天然分布式設(shè)計(jì),多個(gè)索引多個(gè)分片皆可聯(lián)合查詢。
  • 關(guān)系型數(shù)據(jù)庫聚合性能低下,數(shù)據(jù)量稍微多點(diǎn),查詢列基數(shù)多一點(diǎn)性能下降很快,Elasticsearch 在聚合上采用的是列式存儲(chǔ),效率極高。
  • 關(guān)系型數(shù)據(jù)庫側(cè)重均衡性,Elasticsearch 側(cè)重專一查詢速度。

若數(shù)據(jù)無需嚴(yán)格事務(wù)機(jī)制隔離,個(gè)人認(rèn)為都可以采用 Elasticsearch 替代。若數(shù)據(jù)既要事務(wù)隔離,也要查詢性能,可以采用 DB 與 ES 混合實(shí)現(xiàn)。

 

RDBMS 與 ES 各自優(yōu)勢(shì)示意圖

OpenTSDB

OpenTSDB 內(nèi)部基于 HBase 實(shí)現(xiàn),屬于時(shí)間序列數(shù)據(jù)庫,主要針對(duì)具有時(shí)間特性和需求的數(shù)據(jù),進(jìn)行過數(shù)據(jù)結(jié)構(gòu)的優(yōu)化和處理,從而適合存儲(chǔ)具有時(shí)間特性的數(shù)據(jù),如監(jiān)控?cái)?shù)據(jù)、溫度變化數(shù)據(jù)等。

小米公司開源監(jiān)控體系 open-falcon 的就是基于 OpenTSDB 實(shí)現(xiàn)。

OpenTSDB 時(shí)間序列數(shù)據(jù)庫內(nèi)部實(shí)現(xiàn)

Elastic 產(chǎn)品本身無意時(shí)間序列這個(gè)領(lǐng)域,隨著 ELK 的流行,很多公司采用ELK來構(gòu)建監(jiān)控體系,雖然在數(shù)值類型上不像時(shí)間序列數(shù)據(jù)庫做過特別處理,但由于其便利的使用,以及生態(tài)技術(shù)棧的優(yōu)勢(shì),我們也接受了這樣的事實(shí)。

Elasticsearch 構(gòu)建時(shí)間序列很簡單,性能也相當(dāng)不錯(cuò):

  • 索引創(chuàng)建規(guī)則,可以按年、按月、按周、按星期、按天、按小時(shí)等都創(chuàng)建索引,非常便利。
  • 數(shù)據(jù)填充方面,定制一個(gè)時(shí)間字段做區(qū)分排序,其余的字段無需。
  • 數(shù)據(jù)查詢方面,除了按實(shí)際序列查詢外,還可以有更多的搜索條件。
  • 除非對(duì)于時(shí)間序列數(shù)據(jù)有非常苛刻的監(jiān)控需求,否則選擇 Elasticsearch 會(huì)更加合適一些。

HBase

HBase 是列式數(shù)據(jù)庫的代表,其內(nèi)部有幾個(gè)致命設(shè)計(jì)大大限制了它的應(yīng)用范圍:

  • 訪問 HBase 數(shù)據(jù)只能基于 Rowkey,Rowkey 設(shè)計(jì)的好壞直接決定了HBase使用優(yōu)劣。
  • 本身不支持二級(jí)索引,若要實(shí)現(xiàn),則需要引入第三方。

關(guān)于其各種技術(shù)原理就不多說了,說說它的一些使用情況。

公司所屬物流速運(yùn)行業(yè),一個(gè)與車輛有關(guān)的項(xiàng)目,記錄所有車輛行駛軌跡,車載設(shè)備會(huì)定時(shí)上報(bào)車子的軌跡信息,后端數(shù)據(jù)存儲(chǔ)基于 HBase,數(shù)據(jù)量在幾十 TB 級(jí)以上。

由于業(yè)務(wù)端需要依據(jù)車輛軌跡信息計(jì)算它的公里油耗以及相關(guān)成本,所以要按查詢條件批量查詢數(shù)據(jù),查詢條件有一些非 Rowkey 的字段,如時(shí)間范圍,車票號(hào),城市編號(hào)等,這幾乎無法實(shí)現(xiàn),原來暴力的做過,性能問題堪憂。

此項(xiàng)目的問題首先也在于 Rowkey 難設(shè)計(jì)滿足查詢條件的需求,其次是二級(jí)索引問題,查詢的條件很多。

如果用列式數(shù)據(jù)庫僅限于 Rowkey 訪問場景,其實(shí)采用 Elastic 也可以,只要設(shè)計(jì)好 _id,與 HBase 可以達(dá)到相同的效果。

如果用列式數(shù)據(jù)庫查詢還需要引入三方組件,那還不如直接在 Elasticsearch 上構(gòu)建更直接。

除非對(duì)使用列式數(shù)據(jù)庫有非常苛刻的要求,否則 Elasticsearch 更具備通用性,業(yè)務(wù)需求場景適用性更多。

 

列式數(shù)據(jù)庫內(nèi)部數(shù)據(jù)結(jié)構(gòu)示意圖

MongoDB

MongoDB 是文檔型數(shù)據(jù)庫的代表,數(shù)據(jù)模型基于 Bson,而 Elasticsearch 的文檔數(shù)據(jù)模型是 Json,Bson 本質(zhì)是 Json 的一種擴(kuò)展,可以相互直接轉(zhuǎn)換,且它們的數(shù)據(jù)模式都是可以自由擴(kuò)展的,基本無限制。

MongoDB 本身定位與關(guān)系型數(shù)據(jù)庫競爭,支持嚴(yán)格的事務(wù)隔離機(jī)制,在這個(gè)層面實(shí)際上與 Elasticsearch 產(chǎn)品定位不一樣,但實(shí)際工作中,幾乎沒有公司會(huì)將核心業(yè)務(wù)數(shù)據(jù)放在 MongoDB 上,關(guān)系型數(shù)據(jù)庫依然是第一選擇。

若超出這個(gè)定位,則 Elasticsearh 相比 MongoDB 有如下優(yōu)點(diǎn):

  • 文檔查詢性能,倒排索引/KDB-Tree 比 B+Tree 厲害。
  • 數(shù)據(jù)的聚合分析能力,ES 本身提供了列式數(shù)據(jù) doc_value,比 MongoDB 的行式要快不少。
  • 集群分片副本機(jī)制,ES 架構(gòu)設(shè)計(jì)更勝一籌。
  • ES 特色功能比 MongoDB 提供的更多,適用的場景范圍更寬泛。
  • 文檔數(shù)據(jù)樣例,ObjectId 由 MongoDB 內(nèi)置自動(dòng)生成。

 

公司剛好有個(gè)項(xiàng)目,原來數(shù)據(jù)層基于 MongoDB 設(shè)計(jì)構(gòu)建的,查詢問題不少 ,后面成功遷移到 Elasticsearch 平臺(tái)上,服務(wù)器數(shù)據(jù)量從 15 臺(tái)降低到 3 臺(tái),查詢性能還大幅度提升十倍。

詳細(xì)可閱讀筆者另一篇文章《為什么要從MongoDB遷移到Elasticsearch?》拋開數(shù)據(jù)事務(wù)隔離,Elasticsearch 可以完全替代 MongoDB。

ClickHouse

ClickHouse 是一款 MPP 查詢分析型數(shù)據(jù)庫,近幾年活躍度很高,很多頭部公司都引入其中。

我們?yōu)槭裁匆肽?,原因可能跟其他頭部公司不太一樣,如下:

  • 筆者長期從事大數(shù)據(jù)工作,經(jīng)常會(huì)碰到數(shù)據(jù)聚合的實(shí)時(shí)查詢需求,早期我們會(huì)選擇一款關(guān)系型數(shù)據(jù)庫來做做聚合查詢,如 MySQL/PostgreSQL,稍微不注意就很容易出現(xiàn)性能瓶頸。
  • 后面引入 Elasticsearch 產(chǎn)品,其基于列式設(shè)計(jì)以及分片架構(gòu),性能各方面確實(shí)明顯優(yōu)于單節(jié)點(diǎn)的關(guān)系型數(shù)據(jù)庫。
  • Elasticsearch 局限性也很明顯,一是數(shù)據(jù)量超過千萬或者億級(jí)時(shí),若聚合的列數(shù)太多,性能也到達(dá)瓶頸;二是不支持深度二次聚合,導(dǎo)致一些復(fù)雜的聚合需求,需要人工編寫代碼在外部實(shí)現(xiàn),這又增加很多開發(fā)工作量。
  • 后面引入了 ClickHouse,替代 Elasticserach 做深度聚合需求,性能表現(xiàn)不錯(cuò),在數(shù)據(jù)量千萬級(jí)億級(jí)表現(xiàn)很好,且資源消耗相比之前降低不少,同樣的服務(wù)器資源可以承擔(dān)更多的業(yè)務(wù)需求。

ClickHouse 與 Elasticsearch 一樣,都采用列式存儲(chǔ)結(jié)構(gòu),都支持副本分片。

不同的是 ClickHouse 底層有一些獨(dú)特的實(shí)現(xiàn),如下:

  • MergeTree 合并樹表引擎,提供了數(shù)據(jù)分區(qū)、一級(jí)索引、二級(jí)索引。
  • Vector Engine 向量引擎,數(shù)據(jù)不僅僅按列存儲(chǔ),同時(shí)還按向量(列的一部分)進(jìn)行處理,這樣可以更加高效地使用 CPU。

 

ClickHouse 在大數(shù)據(jù)平臺(tái)中的位置

Druid

Durid 是一個(gè)大數(shù)據(jù) MPP 查詢型數(shù)據(jù)產(chǎn)品,核心功能 Rollup,所有的需要 Rollup 原始數(shù)據(jù)必須帶有時(shí)間序列字段。

Elasticsearch 在 6.3.X 版本之后推出了此功能,此時(shí)兩者產(chǎn)品形成競爭關(guān)系,誰高誰下,看應(yīng)用場景需求。

Druid 樣本數(shù)據(jù),必須帶有 time 時(shí)間字段。

 

筆者之前負(fù)責(zé)過公司所有 Elasticsearch 技術(shù)棧相關(guān)數(shù)據(jù)項(xiàng)目,當(dāng)時(shí)也有碰到一些實(shí)時(shí)聚合查詢返回部分?jǐn)?shù)據(jù)的需求。

但我們的需求不太一樣,索引數(shù)據(jù)屬于離線型更新,每天都會(huì)全部刪除并重新創(chuàng)建索引插入數(shù)據(jù)。

此時(shí)使用 Elastic 的版本是 6.8.X,僅支持離線型數(shù)據(jù) Rollup,所以此功能沒用上,Elastic 在 7.2.X 版本之后才推出實(shí)時(shí) Rollup 功能。

Druid 更加專注,產(chǎn)品設(shè)計(jì)圍繞 Rollup 展開,Elastic 只是附帶。

Druid 支持多種外接數(shù)據(jù),直接可以對(duì)接 Kafka 數(shù)據(jù)流,也可以直接對(duì)接平臺(tái)自身內(nèi)部數(shù)據(jù);而 Elastic 僅支持內(nèi)部索引數(shù)據(jù),外部數(shù)據(jù)需要借助三方工具導(dǎo)入到索引里。

Druid 在數(shù)據(jù) Rollup 之后,會(huì)丟棄原始數(shù)據(jù);Elastic 在原有索引基礎(chǔ)之后,生成新的 Rollup 之后的索引數(shù)據(jù)。

Druid 與 Elastic 的技術(shù)架構(gòu)非常類似,都支持節(jié)點(diǎn)職責(zé)分離,都支持橫向擴(kuò)展。

Druid 與 Elastic 在數(shù)據(jù)模型上都支持倒排索引,基于此的搜索與過濾。

 

Druid 產(chǎn)品技術(shù)架構(gòu)體系示意圖

關(guān)于 Rollup 這個(gè)大數(shù)據(jù)分析領(lǐng)域,若有大規(guī)模的 Rollup 的場景需求,個(gè)人更傾向于 Druid。

結(jié)語

總結(jié):

  • Elasticsearch 產(chǎn)品功能全面,適用范圍廣,性能也不錯(cuò),綜合應(yīng)用是首選。
  • Elasticsearch 在搜索查詢領(lǐng)域,幾乎完勝所有競爭產(chǎn)品,在筆者的技術(shù)??磥?,關(guān)系型數(shù)據(jù)庫解決數(shù)據(jù)事務(wù)問題,Elasticsearch 幾乎解決一切搜索查詢問題。
  • Elasticsearch 在數(shù)據(jù)分析領(lǐng)域,產(chǎn)品能力偏弱一些,簡單通用的場景需求可以大規(guī)模使用,但在特定業(yè)務(wù)場景領(lǐng)域,還是要選擇更加專業(yè)的數(shù)據(jù)產(chǎn)品,如前文中提到的復(fù)雜聚合、大規(guī)模 Rollup、大規(guī)模的 Key-Value。
  • Elasticsearch 越來越不像一個(gè)搜索引擎,更像是一個(gè)全能型的數(shù)據(jù)產(chǎn)品,幾乎所有行業(yè)都在使用,業(yè)界非常受歡迎。
  • Elasticsearch 用得好,下班下得早。

注:內(nèi)容來源于筆者實(shí)際工作中運(yùn)用多種技術(shù)棧實(shí)現(xiàn)場景需求,得出的一些實(shí)戰(zhàn)經(jīng)驗(yàn)與總結(jié)思考,提供后來者借鑒參考。

本文圍繞 Elastic 的競爭產(chǎn)品對(duì)比僅限概要性分析,粒度較粗,深度有限,之后會(huì)有更加專業(yè)深入競爭產(chǎn)品分析文章,敬請(qǐng)期待。

作者:李猛(ynuosoft)

簡介:Elastic-stack 產(chǎn)品深度用戶,ES 認(rèn)證工程師,2012 年接觸 Elasticsearch,對(duì) Elastic-Stack 開發(fā)、架構(gòu)、運(yùn)維等方面有深入體驗(yàn),實(shí)踐過多種 Elasticsearch 項(xiàng)目,最暴力的大數(shù)據(jù)分析應(yīng)用,最復(fù)雜的業(yè)務(wù)系統(tǒng)應(yīng)用;業(yè)余為企業(yè)提供 Elastic-Stack 咨詢培訓(xùn)以及調(diào)優(yōu)實(shí)施。

編輯:陶家龍

出處:轉(zhuǎn)載自微信公眾號(hào) DBAplus 社群(ID:dbaplus)

責(zé)任編輯:武曉燕 來源: DBAplus 社群
相關(guān)推薦

2021-04-04 23:44:06

5G運(yùn)營商網(wǎng)絡(luò)

2014-12-10 12:36:00

微軟Office 365云計(jì)算

2023-02-15 11:58:35

Tomcat設(shè)計(jì)模式

2019-08-06 14:48:47

軟件PowerPoint電腦

2019-11-01 15:50:06

MySQLES搜索引擎

2019-10-09 16:08:21

PythonPython教程Python 開發(fā)

2024-05-25 17:39:49

數(shù)據(jù)要素

2024-04-02 10:13:25

在線小工具開發(fā)

2020-03-25 10:44:16

位運(yùn)算操作技巧

2009-02-16 18:27:09

2021-06-09 07:11:08

MySQL時(shí)間戳類型

2022-07-19 11:01:16

數(shù)據(jù)存儲(chǔ)

2025-07-03 01:00:00

2009-02-16 18:08:01

linux硬件信息cpu

2017-11-03 22:23:30

劉磊

2018-09-04 13:45:54

華為云

2009-05-09 09:04:19

無線網(wǎng)絡(luò)3G布局

2017-11-07 15:05:01

華為

2022-01-28 07:58:41

WPS數(shù)據(jù)整理

2020-03-12 10:50:33

編程領(lǐng)域并發(fā)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 日本久久久久久久久 | 狠狠艹| www97影院| 欧美激情在线观看一区二区三区 | 69av网| 欧美一区二区三区精品 | 国产一区二区影院 | 欧美高清成人 | 7777精品伊人久久精品影视 | 久久性色 | 欧美三区 | 在线a视频 | 综合激情网 | 国产一区久久久 | 国产精品99久久久久久宅男 | 亚洲精品一区二区三区蜜桃久 | 可以免费观看的av片 | 99亚洲精品 | 狠狠躁天天躁夜夜躁婷婷老牛影视 | 免费高潮视频95在线观看网站 | 久精品久久 | 午夜精品 | 国内精品视频免费观看 | 国产精品久久久久久吹潮日韩动画 | 日韩免费成人av | 五月婷婷亚洲 | 国产黄色在线 | 亚洲成人三级 | 国产一级电影在线 | 欧美在线色视频 | 我要看免费一级毛片 | 污书屋| 在线国产视频 | 一区二区三区高清 | 久久亚洲国产精品日日av夜夜 | 国产精品免费一区二区 | 国产第1页| av一区二区三区四区 | 在线观看国产 | 中国一级特黄真人毛片免费观看 | 亚洲欧美另类在线观看 |