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

我為什么放棄Kafka,選擇Pulsar?

開發 架構 開發工具 Kafka
最近,我一直在研究 Pulsar 及其與 Kafka 的比較。通過快速搜索,你會看到這兩個最著名的開源消息傳遞系統之間正在進行的"戰爭"。

 最近,我一直在研究 Pulsar 及其與 Kafka 的比較。通過快速搜索,你會看到這兩個最著名的開源消息傳遞系統之間正在進行的"戰爭"。

[[379649]] 

圖片來自 Pexels

作為 Kafka 的用戶,我著實對 Kafka 的某些問題感到困惑,但 Pulsar 卻讓人眼前一亮、令我非常興奮。所以最后,我設法花了一些時間了解背景資料,并且做了很多研究。

在本文中,我將重點介紹 Pulsar 的優勢,并說明 Pulsar 勝于 Kafka 的理由。讓我們開始!

Kafka 基礎知識

Kafka 是消息傳遞系統之王。它由 LinkedIn 于 2011 年創建,并在 Confluent 的支持下得到了廣泛的傳播。

Confluent 已向開源社區發布了許多新功能和附加組件,例如用于模式演化的 Schema Registry,用于從其他數據源輕松流式傳輸的 Kafka Connect 等。

數據庫到 Kafka,Kafka Streams 進行分布式流處理,最近使用 KSQL 對 Kafka topic 執行類似 SQL 的查詢等等。

Kafka 快速,易于安裝,非常受歡迎,可用于廣泛的范圍或用例。從開發人員的角度來看,盡管 Apache Kafka 一直很友好,但在操作運維方面卻是一團糟。

因此,讓我們回顧一下 Kafka 的一些痛點:

 

Kafka 演示[2]

Kakfa的諸多痛點如下:

  • 擴展 Kafka 十分棘手,這是由于 broker 與存儲數據的耦合架構結構所致。剝離一個 broker 意味著它必須復制 topic 分區和副本,這非常耗時。
  • 沒有與租戶完全隔離的本地多租戶。
  • 存儲會變得非常昂貴,盡管可以長時間存儲數據,但是由于成本問題卻很少用到它。
  • 萬一副本不同步,有可能丟失消息。
  • 必須提前計劃和計算 broker、topic、分區和副本的數量(確保計劃的未來使用量增長),以避免擴展問題,這非常困難。
  • 如果僅需要消息傳遞系統,則使用偏移量可能會很復雜。
  • 集群重新平衡會影響相連的生產者和消費者的性能。
  • MirrorMaker[3] Geo 復制機制存在問題。像 Uber 這樣的公司已經創建了自己的解決方案來克服這些問題。

如您所見,大多數問題與操作運維方面有關。盡管安裝起來相對容易,但 Kafka 難以管理和調優。而且,它也缺乏應有的靈活和彈性。

Pulsar 基礎知識

Pulsar 由 Yahoo!在 2013 年創建,并于 2016 年捐贈給 Apache 基金會。Pulsar 現在是 Apache 軟件基金會的頂級項目。

Yahoo!、Verizon、Twitter 等公司已在生產中使用它來處理成千上萬消息。它具有運行成本低、靈活等特性。Pulsar 旨在解決 Kafka 的大部分難題,使其更易于擴展。

Pulsar 非常靈活:它既可以應用于像 Kafka 這樣的分布式日志應用場景,也可以應用于像 RabbitMQ 這樣的純消息傳遞系統場景。

它支持多種類型的訂閱、多種交付保證、保留策略以及處理模式演變的方法,以及其他諸多特性。

 

Pulsar 架構圖[4]

Pulsar 的特性如下:

  • 內置多租戶,不同的團隊可以使用相同的集群并將其隔離,解決了許多管理難題。它支持隔離、身份驗證、授權和配額。
  • 多層體系結構:Pulsar 將所有 topic 數據存儲在由 Apache BookKeeper 支持的專業數據層中。

存儲和消息傳遞的分離解決了擴展、重新平衡和維護集群的許多問題。它還提高了可靠性,幾乎不可能丟失數據。

  • 另外,在讀取數據時可以直連 BookKeeper,且不影響實時攝取。例如,可以使用 Presto 對 topic 執行 SQL 查詢,類似于 KSQL,但不會影響實時數據處理。
  • 虛擬 topic:由于采用 n 層體系結構,因此對 topic 的數量沒有限制,topic 及其存儲是分離的。用戶還可以創建非持久性 topic。
  • N 層存儲:Kafka 的一個問題是,存儲費用可能變高。因此,它很少用于存儲"冷"數據,并且消息經常被刪除,Apache Pulsar 可以借助分層存儲自動將舊數據卸載到 Amazon S3 或其他數據存儲系統,并且仍然向客戶端展示透明視圖;Pulsar 客戶端可以從時間開始節點讀取,就像所有消息都存在于日志中一樣。
  • Pulsar Function:易于部署、輕量級計算過程、對開發人員友好的 API,無需運行自己的流處理引擎(如 Kafka)。
  • 安全性:它具有內置的代理、多租戶安全性、可插拔的身份驗證等特性。
  • 快速重新平衡:分區被分為易于重新平衡的分片。
  • 服務器端重復數據刪除和無效字段:無需在客戶端中執行此操作,也可以在壓縮期間刪除重復數據。
  • 內置 Schema registry(架構注冊表):支持多種策略,易于操作。
  • 地理復制和內置 Discovery:易于將集群復制到多個區域。
  • 集成的負載均衡器和 Prometheus 指標。
  • 多重集成:Kafka、RabbitMQ 等。
  • 支持多種編程語言,例如 GoLang、Java、Scala、Node、Python…...
  • 分片和數據分區在服務器端透明進行,客戶端不需要了解分片與分區數據。

 

Pulsar 特性列表[5]

Pulsar 入門

Pulsar 入門非常容易,使用前提是安裝 JDK。

①下載 Pulsar 并解壓縮(備注:目前 Apache Pulsar 最新版本為 2.7.0):

  1. $ wget https://archive.apache.org/dist/pulsar/pulsar-2.6.1/apache-pulsar-2.6.1-bin.tar.gz 

②下載連接器(可選):

  1. $ wget https://archive.apache.org/dist/pulsar/pulsar-2.6.1/connectors/{connector}-2.6.1.nar 

③下載 nar 文件后,將文件復制到 Pulsar 目錄中的 Connectors 目錄。

④啟動 Pulsar!

  1. $ bin/pulsar standalone 

Pulsar 提供了一個稱為 Pulsar-Client 的 CLI 工具,我們可以使用它與集群進行交互。

生產消息:

  1. $ bin/pulsar-client produce my-topic --messages "hello-pulsar" 

消費消息:

  1. $ bin/pulsar-client consume my-topic -s "first-subscription" 

Akka 流示例

舉一個客戶端示例,我們在 Akka 上使用 Pulsar4s。

首先,我們需要創建一個 Source 來消費數據流,所需要的只是一個函數,該函數將按需創建消費者并查找消息 ID:

  1. val topic = Topic("persistent://standalone/mytopic"
  2. val consumerFn = () => client.consumer(ConsumerConfig(topic, subscription)) 

然后,我們傳遞 ConsumerFn 函數來創建源:

  1. import com.sksamuel.pulsar4s.akka.streams._ 
  2. val pulsarSource = source(consumerFn, Some(MessageId.earliest)) 

Akka 源的物化值是 Control 的一個實例,該對象提供了一種"關閉"方法,可用于停止消費消息。現在,我們可以像往常一樣使用 Akka Streams 處理數據。

要創建一個接收器:

  1. val topic = Topic("persistent://standalone/mytopic"
  2. val producerFn = () => client.producer(ProducerConfig(topic)) 
  3. import com.sksamuel.pulsar4s.akka.streams._ 
  4. val pulsarSink = sink(producerFn) 

完整示例摘自 Pulsar4s[6]:

  1. object Example { 
  2.   import com.sksamuel.pulsar4s.{ConsumerConfig, MessageId, ProducerConfig, PulsarClient, Subscription, Topic} 
  3.   import org.apache.pulsar.client.api.Schema 
  4.   implicit val system: ActorSystem = ActorSystem() 
  5.   implicit val materializer: ActorMaterializer = ActorMaterializer() 
  6.   implicit val schemaSchema[Array[Byte]] = Schema.BYTES 
  7.   val client = PulsarClient("pulsar://localhost:6650"
  8.   val intopic = Topic("persistent://sample/standalone/ns1/in"
  9.   val outtopic = Topic("persistent://sample/standalone/ns1/out"
  10.   val consumerFn = () => client.consumer(ConsumerConfig(topics = Seq(intopic), subscriptionName = Subscription("mysub"))) 
  11.   val producerFn = () => client.producer(ProducerConfig(outtopic)) 
  12.   val control = source(consumerFn, Some(MessageId.earliest)) 
  13.     .map { consumerMessage => ProducerMessage(consumerMessage.data) } 
  14.     .to(sink(producerFn)).run() 
  15.   Thread.sleep(10000) 
  16.   control.stop() 

Pulsar Function 示例

Pulsar Function 處理來自一個或多個 topic 的消息,對其進行轉換并將結果輸出到另一個 topic:

 

Pulsar Function[7]

可以在兩個接口之間進行選擇以編寫函數:

  • 語言原生接口:不需要特定的 Pulsar 庫或特殊的依賴項;無法訪問上下文,僅支持 Java 和 Python。
  • Pulsar Function SDK:可用于 Java/Python/ Go,并提供更多功能,比如訪問上下文對象。

只需編寫一個簡單的函數即可使用語言原生接口轉換消息:

  1. def process(input): 
  2. return "{}!".format(input) 

用 Python 編寫的這個簡單函數只是向所有傳入的字符串添加一個感嘆號,并將結果字符串發布到 topic。

使用 SDK 需要導入依賴項,例如在 Go 中,我們可以編寫:

  1. package main 
  2. import ( 
  3. "context" 
  4. "fmt" 
  5. "github.com/apache/pulsar/pulsar-function-go/pf" 
  6. func HandleRequest(ctx context.Context, in []byte) error { 
  7. fmt.Println(string(in) + "!"
  8. return nil 
  9. func main() { 
  10. pf.Start(HandleRequest) 

如果要發布無服務器功能并將其部署到集群,可以使用 Pulsar-Admin CL;如果使用 Python,我們可以編寫:

  1. $ bin/pulsar-admin functions create \ 
  2. --py ~/router.py \ 
  3. --classname router.RoutingFunction \ 
  4. --tenant public \ 
  5. --namespace default \ 
  6. --name route-fruit-veg \ 
  7. --inputs persistent://public/default/basket-items 
  8. Pulsar Function 的一個重要功能是用戶可以在發布該函數時設置交付保證: 
  9. $ bin/pulsar-admin functions create \ 
  10. --name my-effectively-once-function \ 
  11. --processing-guarantees EFFECTIVELY_ONCE 

有以下選擇:

 

Pulsar 的優勢

與 Kafka 相比,讓我們回顧下 Pulsar 的主要優勢:

  • 更多功能:Pulsar Function、多租戶、Schema registry、n 層存儲、多種消費模式和持久性模式等。
  • 更大的靈活性:3 種訂閱類型(獨占,共享和故障轉移),用戶可以在一個訂閱上管理多個 topic。
  • 持久性選項:非持久(快速)、持久、壓縮(每個消息僅最后一個鍵),用戶可以選擇交付保證。Pulsar 具有服務器端重復數據刪除和無效字樣多保留政策和 TTL 的特性。
  • 無需提前定義擴展需求。
  • 支持隊列與流兩種消息消費模型,所以 Pulsar 既可以代替 RabbitMQ 也可以代替 Kafka。
  • 存儲與 broker 分離,因此擴展性更好,重新平衡更快、更可靠。
  • 易于操作運維:架構解耦和 n 層存儲。
  • 與 Presto 的 SQL 集成,可直接查詢存儲而不會影響 broker。
  • 借助 n 層自動存儲選項,可以更低成本地存儲。
  • 更快:基準測試[8]在各種情況下都表現出更好的性能。Pulsar 具有較低的延遲和更好的擴展功能。
  • Pulsar Function 支持無服務器計算,無需部署管理。
  • 集成 Schema registry。
  • 集成的負載平衡器和 Prometheus 指標。
  • 地理復制效果更好,更易于設置。Pulsar 內置 Discover-ability。
  • 創建 topic 數量沒有限制。
  • 與 Kafka 兼容,易于集成。

Pulsar 的劣勢

Pulsar 并不完美,Pulsar 也存在一些問題:

  • 相對缺乏支持、文檔和案例。
  • n 層體系結構導致需要更多組件:BookKeeper。
  • 插件和客戶端相對 Kafka 較少。
  • 云中的支持較少,Confluent 具有托管云產品。

不過,上面的情況都在得到快速改善,目前 Pulsar 也逐漸被越來越多的公司和組織使用。

Apache Pulsar 商業支持公司 StreamNative 也推出了 StreamNative Cloud,Apache Pulsar 正在快速成長,我們都可以看到令人欣喜的變化。

Confluent 曾發布博客對比 Pulsar 和 Kafka ,但請注意,這些問題可能有偏見。

Pulsar 使用場景

Pulsar 可用于廣泛的場景:

  • 發布/訂閱隊列消息傳遞。
  • 分布式日志。
  • 事件溯源,用于永久性事件存儲。
  • 微服務。
  • SQL 分析。
  • Serverless 功能。

什么時候應該考慮 Pulsar?

  • 同時需要像 RabbitMQ 這樣的隊列和 Kafka 這樣的流處理程序。
  • 需要易用的地理復制。
  • 實現多租戶,并確保每個團隊的訪問權限。
  • 需要長時間保留消息,并且不想將其卸載到另一個存儲中。
  • 需要高性能,基準測試表明 Pulsar 提供了更低的延遲和更高的吞吐量。

如果在云端,請注意考慮基于云的解決方案。云提供商擁有涵蓋某些場景的不同服務。

例如,對于隊列消息,云提供商提供了許多服務,比如 Google pub / sub;對于分布式日志,有 Confluent 云或 AWS Kinesis;StreamNative 也提供了基于 Pulsar 的云端服務。

云提供商還提供了非常好的安全性。Pulsar 的優勢在于可以在一個平臺上提供許多功能。

一些團隊可能將其用作微服務的消息傳遞系統,而另一些團隊則將其用作數據處理的分布式日志。

結論

我是 Kafka 的忠實粉絲,我對 Pulsar 如此感興趣的原因是:競爭驅動創新。

Kafka 是一種成熟,富有彈性且經過考驗的產品,在世界范圍內獲得了巨大成功,無法想象大多數公司沒有它會怎樣。

但是我確實看到 Kafka 成為其自身成功的受害者,由于需要支持許多大型公司導致巨大的增長減慢了功能開發的速度、移除 ZooKeeper 依賴項等重要功能花費的時間太長,這為諸如 Pulsar 等工具蓬勃發展創造了空間。

Pulsar 雖然年輕卻勢頭很猛,在將 Pulsar 納入組織之前,需進行分析、基準測試、研究并進行 POC。

從小處著手,在將 Kafka 遷移到 Pulsar 之前進行概念驗證,并在決定進行完全遷移之前評估影響。

引用鏈接:

  • [1] 《Pulsar Advantages Over Kafka》:

https://itnext.io/pulsar-advantages-over-kafka-7e0c2affe2d6

  • [2] Kafka 演示:

https://talks.rmoff.net/pZC6Za/slides

  • [3] MirrorMaker:

https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=27846330

  • [4] Pulsar 架構圖:

https://pulsar.apache.org/docs/en/concepts-architecture-overview/

  • [5] Pulsar 特性列表:

https://pulsar.apache.org/

  • [6] Pulsar4s:

https://github.com/sksamuel/pulsar4s/blob/master/pulsar4s-akka-streams/src/test/scala/com/sksamuel/pulsar4s/akka/streams/Example.scala

  • [7] Pulsar Function:

https://pulsar.apache.org/docs/en/functions-overview/

  • [8] 基準測試:

https://medium.com/swlh/performance-comparison-between-apache-pulsar-and-kafka-latency-79fb0367f407

作者:聞數起舞

編輯:陶家龍

出處:轉載自 Java 高級架構,原中文版本由聞數起舞翻譯自 Lewis Fairweather 的文章《Pulsar Advantages Over Kafka》[1],文章轉載時有改動。

 

責任編輯:武曉燕 來源: Java 高級架構
相關推薦

2018-12-21 11:26:49

MySQLMongoDB數據庫

2023-07-23 17:19:34

人工智能系統

2020-08-14 10:40:35

RestTemplatRetrofitJava

2022-05-10 15:24:34

KafkaZooKeeperKafka Raft

2012-02-28 09:11:51

語言Lua

2021-04-21 12:29:45

KafkaZookeeper模型

2013-10-22 15:18:19

2012-11-14 20:55:07

容錯服務器選型CIO

2018-09-28 10:06:21

移動開發App

2020-09-16 14:56:11

MYSQL知識數據庫

2020-02-24 09:38:05

PythonGo語言Linux

2021-04-06 11:07:02

字節跳動組織架構

2020-03-03 15:31:47

ReactVue前端

2020-06-19 08:01:48

Kotlin 協程編程

2020-11-14 11:23:18

PulsarKafka架構師

2017-10-23 12:42:42

2019-04-19 11:56:48

框架AI開發

2025-01-03 08:50:23

2011-06-08 10:30:08

MongoDB

2022-04-21 08:20:33

CPU換蓋CPU
點贊
收藏

51CTO技術棧公眾號

红桃视频 国产| 国内精品久久国产| 男女做暖暖视频| 午夜视频在线观看精品中文| 午夜精品福利视频网站| 欧美日韩另类综合| 国产美女明星三级做爰| 在线播放日韩| 在线成人一区二区| 午夜性福利视频| 精品91久久| 亚洲视频一二区| 精品一区二区三区日本| 中文字幕在线观看精品| 欧美女人交a| 亚洲图片欧洲图片av| 91热视频在线观看| 性欧美18~19sex高清播放| 国产精品乱人伦| 国产一区精品在线| 国产精品久久免费| 久久精品日产第一区二区| 美女av一区二区| 六月婷婷七月丁香| 午夜久久av| 欧美日韩不卡一区| 狠狠97人人婷婷五月| 免费在线看黄| 91网站在线播放| 亚洲一区国产精品| 中文字幕免费视频观看| 极品尤物久久久av免费看| 国产亚洲精品久久久久久牛牛| 亚洲国产综合av| 精品日本视频| 亚洲第一福利一区| 性做爰过程免费播放| 欧美日韩伦理片| 成人免费毛片a| 成人午夜激情免费视频| 波多野结衣黄色| 国产亚洲网站| 欧美精品久久久久| 少妇久久久久久被弄高潮| 久久高清精品| 中文字幕av一区二区| 五月婷婷综合在线观看| 国语一区二区三区| 精品少妇一区二区三区在线视频| 五月天激情播播| 欧美日韩尤物久久| 91成人国产精品| 日本熟妇人妻xxxxx| 久久青草伊人| 午夜精彩视频在线观看不卡| 青青草国产免费| 久久一卡二卡| 亚洲一卡二卡三卡四卡无卡久久| eeuss中文| 黄色免费在线网站| 日韩美女视频一区二区| 中文字幕一区二区三区四区五区六区| av一本在线| 欧美国产日韩在线观看| 手机成人在线| 97超碰人人在线| 国产精品嫩草影院com| 亚洲精品国产精品国自产观看| 国产粉嫩一区二区三区在线观看 | 亚洲va欧美va天堂v国产综合| www国产免费| 黄视频在线免费看| 午夜精品久久久久久久久| 欧美深夜福利视频| 日韩av中字| 欧美日韩国产bt| 一二三av在线| 加勒比久久高清| 亚洲免费小视频| 手机毛片在线观看| 忘忧草精品久久久久久久高清| 免费不卡欧美自拍视频| 劲爆欧美第一页| 国产婷婷精品| 国产精品国产亚洲伊人久久| ,一级淫片a看免费| 国产成人在线观看| 九九九九精品| porn视频在线观看| 樱花草国产18久久久久| 欧美综合在线播放| 成人国产精选| 精品国产一二三| 谁有免费的黄色网址| 亚洲精品888| 欧美性受xxx| 一道本在线视频| 成人va在线观看| 日韩影院一区| 欧美xxxx黑人又粗又长| 色噜噜夜夜夜综合网| 五月六月丁香婷婷| 天天躁日日躁成人字幕aⅴ| 中文字幕在线观看日韩| 九九视频在线观看| 日韩精品亚洲专区| 粉嫩av一区二区三区免费观看| 每日更新在线观看av| 亚洲另类色综合网站| 国产裸体舞一区二区三区| 亚洲美女色播| 亚洲码在线观看| 99热精品免费| 免费亚洲电影在线| 国产伦精品一区二区三区免费视频 | 污片在线免费观看| 在线观看www91| 欧美xxxxx少妇| 91日韩视频| 日韩女优人人人人射在线视频| 精品国自产在线观看| 国产欧美日韩在线| 国产黄视频在线| 伊人精品久久| 久久久成人av| 中文天堂在线播放| 91网站在线播放| 日韩a级在线观看| 久久99成人| 自拍偷拍亚洲精品| chinese国产精品| 成人a免费在线看| 女人床在线观看| 亚洲欧美综合久久久久久v动漫| 亚洲精品中文字幕女同| 日本三级欧美三级| 懂色av一区二区夜夜嗨| 自拍另类欧美| 成人免费一区| 亚洲天堂男人天堂| wwwwww国产| caoporn国产精品| 精品一二三四五区| 一区二区三区四区高清视频| 欧美成人午夜剧场免费观看| 欧美一级做a爰片免费视频| 国产a级毛片一区| 一二三四中文字幕| 免费一区二区三区在线视频| 精品精品国产国产自在线| 伊人网站在线观看| 国产精品素人一区二区| 浓精h攵女乱爱av| 欧美三级美国一级| 国产精品青草久久久久福利99| 久久综合九色综合久| 日韩欧美中文第一页| 波多野结衣 在线| 日韩国产在线一| 色一情一乱一伦一区二区三区| 向日葵视频成人app网址| 亚洲欧美国产高清va在线播| 亚洲自拍一区在线观看| 久久久久久久综合色一本| 国产激情在线观看视频| 欧洲福利电影| 91精品美女在线| av毛片在线| 亚洲成人av在线| 欧美a∨亚洲欧美亚洲| 久久久久99精品一区| 99久久国产宗和精品1上映| 全球成人免费直播| 成人激情电影一区二区| 手机av在线播放| 欧美精品一区二区三区蜜桃 | 亚洲综合色激情五月| 欧美人与牲禽动交com| 亚洲高清av在线| 日本视频免费观看| 中文字幕一区视频| 亚洲欧洲国产视频| 午夜亚洲伦理| 综合一区中文字幕| 999久久久久久久久6666| 久久免费在线观看| 秋霞av在线| 欧美精品在线一区二区| 久久精品www人人爽人人| 26uuu亚洲综合色欧美| 亚洲欧美在线精品| 亚洲一级二级| 日本一区免费| 久久中文字幕一区二区| 57pao精品| 日本欧美在线视频免费观看| 亚洲国产高清高潮精品美女| 亚洲精品无码久久久久| 亚洲一区二区三区激情| 人妻体内射精一区二区| 国产精品亚洲а∨天堂免在线| 久草热视频在线观看| 99久久综合| 久久久精品动漫| 97色婷婷成人综合在线观看| 91产国在线观看动作片喷水| 午夜免费视频在线国产| 日韩久久精品电影| 国产欧美综合视频| 欧美在线视频不卡| 日韩精品一卡二卡| 日韩美女精品在线| 日本一级免费视频| 成人高清视频在线观看| www.超碰97.com| 欧美中文字幕| 欧美日韩中文字幕在线播放| 欧美女优在线视频| 国产精品18毛片一区二区| 国产精品第一国产精品| 欧美亚洲在线观看| 国产美女情趣调教h一区二区| 中文字幕日韩高清| 黄色av免费在线看| 亚洲的天堂在线中文字幕| 国产美女三级无套内谢| 欧美在线视频不卡| 欧美特黄aaaaaa| 亚洲国产一区二区在线播放| 91麻豆免费视频网站| 国产精品久久三| 国产精品美女高潮无套| 99精品久久久久久| 亚洲一级Av无码毛片久久精品| 精品午夜一区二区三区在线观看| 久久久久久久久久久免费视频| 一区二区自拍| 成人免费观看在线| 欧美日本不卡| 日本免费黄色小视频| 99成人超碰| 一级做a爰片久久| 精品一区二区三区中文字幕老牛| 精品综合在线| 日韩有码中文字幕在线| 含羞草久久爱69一区| 国产精品色呦| 国产精品区一区| 丁香综合av| 精品视频一区二区| 性欧美xxxx免费岛国不卡电影| 精品久久久久久乱码天堂| 欧美国产极品| 欧美国产视频在线观看| 国产成人影院| 五月天亚洲综合| 91日韩在线| 精品一区二区三区毛片| 欧美日本中文| 无码 制服 丝袜 国产 另类| 亚洲激情女人| 99色精品视频| 蜜臀久久99精品久久久久久9| 国产又黄又猛又粗又爽的视频| 热久久一区二区| 在线观看岛国av| 国产大片一区二区| 中文字幕天堂网| caoporen国产精品视频| 国产又粗又猛又爽视频| 中文字幕av一区二区三区| 亚洲一级二级片| 亚洲精品伦理在线| 日本在线视频免费| 色综合久久综合中文综合网| 中文字幕欧美色图| 精品美女一区二区| 日韩黄色影片| 久久久www成人免费精品| av今日在线| 国产精品视频一| 日韩精品成人| 欧美日韩一区综合| 91精品国产乱码久久久久久| 美脚丝袜脚交一区二区| 日韩av二区在线播放| 波多野结衣网页| 久久久天堂av| 欧美成人三级视频| 色久综合一二码| 亚洲av无码片一区二区三区| 亚洲欧洲成视频免费观看| 免费a级人成a大片在线观看| 午夜精品在线视频| 欧美天堂在线| 精品一区二区三区免费毛片| 外国成人激情视频| 日韩 欧美 高清| 国产成人av电影免费在线观看| 欧美性xxxx图片| 亚洲老妇xxxxxx| 久久久久精彩视频| 日韩av影视综合网| 国产黄大片在线观看画质优化| 欧美中文字幕在线| 国产精品美女久久久久人| 欧美成人在线免费观看| 国产精品xvideos88| 高清一区在线观看| 99精品国产视频| 欧美片一区二区| 欧美体内she精视频| 神马午夜精品95| 亚洲人成五月天| 国产区高清在线| 欧美一区二粉嫩精品国产一线天| 成人黄色毛片| 精品伦理一区二区三区| 午夜片欧美伦| 污污网站免费看| 99久久久无码国产精品| 精品99久久久久成人网站免费| 欧美日韩亚洲成人| 国产特黄一级片| 啊v视频在线一区二区三区| 黑森林国产精品av| 99一区二区| 欧美激情国产在线| 91猫先生在线| av在线一区二区三区| 秋霞欧美一区二区三区视频免费 | 亚洲国产精品久久精品怡红院| 欧美jizzhd欧美| 国产福利成人在线| 国产精品毛片久久久| 中文字幕の友人北条麻妃| 蜜桃在线一区二区三区| 俄罗斯毛片基地| 懂色av一区二区三区| 午夜激情小视频| 九九热这里只有精品6| 日韩成人免费av| 一区二区精品国产| 日韩成人一区二区| 国产婷婷在线观看| 亚洲一区二区三区激情| 国产a级免费视频| 欧美日本高清一区| 日韩综合一区二区三区| 欧美大黑帍在线播放| 国产一区二区在线观看免费| 99热99这里只有精品| 欧美日韩国产综合一区二区| 国产精品一区在线看| 国产精品久久久久9999| 亚洲电影一级片| 亚洲乱码中文字幕久久孕妇黑人| 久久婷婷久久一区二区三区| 精品国产免费观看| 亚洲美女视频网| 欧美黑人巨大xxxxx| 精品国产一区二区三区日日嗨| 午夜在线播放视频欧美| 手机av免费看| 欧美性色黄大片| 中文日本在线观看| 3d动漫啪啪精品一区二区免费 | 美女又爽又黄免费视频| 亚洲欧美三级伦理| 激情开心成人网| 亚洲国产欧美不卡在线观看| 精品中文字幕一区二区小辣椒| 久久久久久久久久97| 欧美sm美女调教| 久久男人av资源站| 亚洲欧洲日韩精品| 精品一区二区av| 欧美精品一区二区成人| 亚洲免费电影在线观看| 欧美与亚洲与日本直播| 手机在线视频你懂的| 成人免费黄色在线| www.久久久久久久| 日韩中文在线中文网在线观看| 精品一区二区三区中文字幕| 男人添女荫道口喷水视频| 91视频com| 99精品人妻无码专区在线视频区| 久久久久久久国产精品| av亚洲在线观看| 777一区二区| 欧美日韩亚洲视频一区| 在线免费观看黄色| 国产日韩欧美电影在线观看| 亚洲福利久久| 高清国产在线观看| 欧美精品一区二区三区蜜臀| 欧美色999| 青青草国产精品视频| 欧美经典三级视频一区二区三区|