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

Apache RocketMQ 頂級項目之路

開發 開發工具
2016年11月,阿里將RocketMQ捐獻給Apache軟件基金會,正式成為孵化項目。至此,RocketMQ 開啟了邁向全球頂級開源軟件的新征程。通過社區半年多的努力。9 月 25 日,Apache 軟件基金會官方宣布,阿里巴巴捐贈給 Apache 社區的開源項目 RocketMQ 從 Apache 社區正式畢業,成為 Apache 頂級項目(TLP)。

 序言

2016年11月,阿里將RocketMQ捐獻給Apache軟件基金會,正式成為孵化項目。至此,RocketMQ 開啟了邁向全球頂級開源軟件的新征程。通過社區半年多的努力。9 月 25 日,Apache 軟件基金會官方宣布,阿里巴巴捐贈給 Apache 社區的開源項目 RocketMQ 從 Apache 社區正式畢業,成為 Apache 頂級項目(TLP)。

在通向Apache頂級項目的這些時間里,團隊走了很多路,也經歷了很多事。

  • 第一次按照Apache Way走通Apache軟件發布流程,完成了在整個IPMC都極為罕見的Rc3發布壯舉,體現了中國團隊的嚴謹、高效,贏得了社區的贊譽。
  • 第一次吸納外籍Committer - 日本博士Roman。2個月時間里,他提交近20個Pull Request,推動RocketMQ跟Apache其它頂級社區項目合作,對社區起步做出了卓越貢獻。
  • 第一次面向社區舉辦編程馬拉松。PMC成員全程跟進,幫助參賽選手評審設計、Review代碼。
  • 第一次吸納PMC成員。在RocketMQ社區,PMC是對Committer持續貢獻的進一步Merit。
  • 第一次向Apache社區昭告OpenMessaging標準的愿景。緊接著, ASF Director Jim毛遂自薦,加入到RocketMQ超強豪華的全球Mentor陣營中。
  • 第一次面向國內社區舉辦了大型MeetUp。全球圖文現場直播,5場純技術Messaging & Streaming干貨分享,傳達了團隊誓將做好社區,搞好生態的決心。
  • 第一次......

人生就是一場跋涉,走久了,才知心酸,才知艱難,才有堅韌,才有渴望。前方的路,盡管遙遠,盡管顛簸。但腳步依然,追求依然,方向依然。

2017年8月3號,經過了半年多的發展,團隊正式發起了沖擊TLP的討論。接下來的一個月時間里,討論和投票,幾乎成了每天的必修課。終于,搶在Java 9發布之前,RocketMQ 正式通過董事會決議,結束了在Apache上的孵化,正式成為Apache 340多個頂級項目中的一員。這一刻,完全出自中國團隊,來自阿里巴巴的分布式消息引擎成為全球互聯網中間件、大數據領域璀璨的新星。下一站,等待它的將是在國際舞臺上與世界頂級老牌消息中間件的激烈角逐。相信在Apache先進的社區理念指引下,RocketMQ社區生態會繼續蓬勃發展,完成我們所賦予它的光榮使命。

接下來,我們從產品、社區、生態這三個維度,分別回顧一下RocketMQ這半年多的Apache孵化歷程。

產品篇章

與Apache大多數頂級項目不同,RocketMQ在進入Apache之前,Open Source之路已經走過了3個春秋。歷經多次雙十一洗禮,在國內積累了一定的口碑,社區也有不錯的Active Contributors,但這些還遠遠不夠。在正式開啟捐贈之前,團隊對RocketMQ甚至包括社區做了大量重塑工作。如國際化方面,在Github上利用sidebar特性重新設計編排了文檔。如今,User Guide, Quick Start, Architecture & Design, How to contribute, Community, FAQ 這些幾乎成為了團隊新產品標配的文檔結構。

代碼層面更是進行了比較“激進”地優化。如去除GBK字符,全面擁抱UTF-8。重寫API JavaDoc。清理代碼,優化代碼結構。利用JDepend優化組件之間的抽象依賴關系。利用Findbugs掃描代碼漏洞,指導規范編碼。交付方面,規范Release流程,New Features、Improvement and Bug 分類Release note。社區層面則開啟了全英式互動,發布問問題的技巧。

經過這些精心的準備,RocketMQ完成了從3.0到4.0的悄然升級。而4.0是個過渡版本(和3.0相比,架構層面沒有較大的改變),也是在Apache開啟孵化的版本。通過孵化,團隊重新認識了軟件研發流程的重要性,尤其是像精細設計,代碼Review,編碼規約,分支模型,發布規約等容易被忽略的過程。無以規矩不成方圓,尤其是當你置身于并領導一個全球協作的開源項目時,這些都顯得是尤為重要。

編碼規約

RocketMQ的編碼規約是比較寬松的,至少在4.0這個版本上。與其它Apache頂級項目不同,我們并沒有從編碼細節上去做過多約束,如靜態變量如何使用,日志怎么打,異常怎么捕獲、處理。而主要通過Code Style, Copyright, Code Template 3塊來進行一些大方向上的約束。為了防止不遵循規約的代碼合并倉庫,我們通過PR Checklist, checkstyle和持續集成來自動化校驗行為。因為我們相信,凡是有人介入的地方,就存在check的必要。凡是有人介入的地方,就存在自動化的可能。

研發流程

RocketMQ的開源模式不是傳統意義上的開放內核模式,而是和Apache Hadoop和OpenStack這一類開源平臺模式類似,我們嘗試把開源世界和專有世界最好的結合起來,在真正意義上的協作平臺上生產專有產品。我們希望Redhat,CentOS和Fedora這樣的產品簇協同發展效應也能體現在RocketMQ未來的演進中。為了迎接這樣的挑戰,團隊必須從軟件研發流程方面做出改變,構建能夠同時支撐內部、開源社區以及商業化的生態體系。

分支模型

RocketMQ在設計之初就曾設想過未來One Kernel這樣的產品形態。這些年下來,圍繞著它,團隊打造了AliwareMQ、MetaQ、以及Notify 3.0等內部、商業化產品。隨著RocketMQ進入Apache,代碼的演進變得愈加復雜,而傳統的Master分支模型很難滿足開源、商業化、集團內部和公有云、私有云共用一個RocketMQ內核這樣的需求。通過不斷的思考與實踐,我們通過引入鏡像倉庫機制解決了這一難題。具體講,就是通過在每個倉庫配置master和develop分支,不同的倉庫直接由鏡像節點進行轉換和特性緩沖。這樣下來,在Apache上孵化的特性可以一路合并至內部甚至輸出到公有云、私有云,在內部孵化的特性也能以PATCH的方式反哺到開源社區。如下圖所示:

??

??

持續集成、持續壓測,持續交付

借助Travis和Jenkins,我們搭建了兩套基礎設施。在Github上,Travis會對所有commit,所有PR觸發持續集成,這是它的一個強大之處。除此之外,它還支持跨JDK,跨平臺的Matrix驗證(不過很可惜,OSX平臺似乎一直都有問題)。在內部,利用Jenkins 2.0的Pipeline實現了持續集成,持續壓測,持續交付(Docker,Pandora以及AWS Cloud,Azure Cloud)。如下圖所示:

??

??

由上圖可知,整個持續集成分為代碼靜態檢測,單元測試,集成測試,Sonar質量評測這個幾個Stage。對于單元測試,不僅要覆蓋核心邏輯,而且要快(內置3分鐘閾值,超過就報錯和發郵件)。無數實踐告訴我們,如果不夠快,就會有更多的同學在本地編譯時選擇跳過單測,久而久之,單測就慢慢失去了意義,變得愈發不可維護。要全,要快,還要可維護性。這對單測編寫者來說無疑是個巨大挑戰,這就要求多線程之間的交互盡量避免依賴sleep,自底向下的盡可能Mock依賴,動賓狀結構的優雅命名,斷言異常而不是拋出異常。

發布規約

進入Apache后,尤其在孵化階段,學習并遵循Apache發布流程顯得尤為重要。

??

??

上面這幅圖描述的是Apache孵化項目的發布流程。快、穩,這是RocketMQ團隊第一次發布傳達給社區的信息。縱觀所有Apache孵化項目,能夠在這么短的時間內,用這么少的次數(RC3)學習并走完發布,用行動證明中國人同樣具備嚴謹且專業地做事態度。當然,我們也是幸運地,幸運地碰到了Justin和Bruce這兩位熱心、專業的Mentor。這里,需要強調下Release生成的幾個重要文件,如下圖:

??

??

源碼(src)和二進制文件(bin)被分別打包。asc是一個簽名文件,committer使用自己的私鑰對分發包進行簽名,任何人可以用我們對外公布的512位的公鑰進行驗證。

另外,還有一個不得不提的事情。Apache對License進行了嚴格的分類,比如Apache License 2.0/1.1,BSD,MIT/X11等屬于Category A,這些協議與Apache License是兼容的,可以放心地引入。對于Category B中的License,比如EPL 1.0,MPL 1.0/1.1/2.0等能夠以binary的形式引入。對于Category X中的License如GPL,LGPL則不能引入到產品當中。

針對License的問題,RocketMQ在首次發布的時候,在社區里進行了充分討論。如何處雙重License的依賴,如何區分Source和Binary Release依賴的License問題,如何處理NOTICE。這些知識被我們“現學現賣”的用在了指導社區貢獻上面,既加強了記憶,又很好地傳承給了社區。

PR & Jira處理

這是一個RocketMQ way的具體體現。針對PR,我們設計了一套Checklist,如下圖所示:

??

??

所有PR必須有3+ Committer Review,Committer提交的PR,盡量不要自己Merge。另外,PR的合并是個費時費力的工作,團隊成員通過研究,編寫了一個自動化Python腳本,巧妙地將原先幾分鐘的常態工作縮減到了幾秒鐘,一定程度上體現了中國工程師“懶中求勝”的匠心精神。而Jira,我們強調component,每個component都有2到3位committer or maintainer把持。Jira的處理一般是需要經過Resolve階段,最后才是Close,并且詳細標明受影響的版本,在哪個版本修復掉。

社區篇章

在產品篇章里,我們主要從編碼規約,分支模型,持續交付,發布規約等環節回顧了這半年來可喜的變化。接下來的社區篇,我們將聚焦社區,重點介紹Apache Way,RocketMQ Way,以及社區成熟度模型。至于品牌&社區的Building,業界也有很多實踐,如DevRel,JUG等。這里,放張圖感受一下。

??

??

Apache Way

在Apache社區,一個很重要的理念,Community over Code。社區是判斷一個孵化項目能否畢業的重要考核標準。但這并不意味著Code就不重要。仔細回想一下,在你接觸過的所有Apache頂級項目中,有沒有給你留下深刻印象的Code(請允許我拿代碼來說事,代碼就像一面鏡子,是工程師的門面,也是工匠榮辱的最直接體現)。相信那些研究過大量Apache頂級項目的同學,一定有和我一樣的感受。Apache在大力強調社區的今天,很容易給大家讓大家誤解 - 設計不重要了,代碼不重要了。試想下,如果產品的設計,產品的質量不過硬,又怎么指望會有一個健康多元的社區呢?所以,我們重視社區,但也重視設計,重視代碼質量,重視產品帶給用戶的體驗。

??

??

上面這幅圖節選自之前MeetUp上的分享,是我們對于Apache Way的理解。

· Community - Over Code,首先要認識社區,社區包羅萬象,有Developers,Writers,Testers,Sysadmins,Devops,Users等等,但不需要Employee。由Employees打造的社區是不健康的,不可持續的,缺乏多元化。國際上一些大公司,早期參與Apache項目,一味想著控制社區,殊不知Apache社區理念的精髓在于與社區,與其它企業,其它個人貢獻者,培養協作,加速項目與個人的成長。社區不會憑空產生,不是把項目往Github上一丟就是開源了,然后社區就會自動產生。一個社區的經營是需要花費心思的,發展一個社區成員,爭取一個國際貢獻者,這些都是一個長期經營的過程。RocketMQ社區的第一個國際貢獻者,我們整整跟進、鼓勵了近2個月。當然,還有不少老外也表達出了貢獻社區的興趣,萬丈高樓平地起,先從最基本的工作做起,讓社區看到你的努力,看到你持續跟進、貢獻社區的決心,Apache Committer(認證程序員)自然離你不遠。

  • Merit - Recognizing Your Work,參與社區的建設能獲得什么,一個Contributor在社區的所有努力是有目共睹和有跡可循的,提交了多少Issue和PR?參與了多少Code Review,郵件列表里是否總有真知灼見冒出來,這一切都在Github、JIRA、和郵件列表里進行了沉淀,在得到社區的認可后,Contributor變成為了Committer,Committer變成為了PMC Member。一步一步,社區認可了你的貢獻,你也獲得了不錯的成長。
  • Open Development - For Everything,社區一切都是開放的,特別是對于開發,每個人都可以參與到每行代碼中,從開發前的DISCUSS,再到Pull Request中的Code Review,甚至作為User使用方面的Feedback。所有的討論,思想的碰撞,甚至是爭論,都是Public的。對于國內社區,我們一直在鼓勵所有線下(包括QQ)的重要討論,在郵件列表里都能有所體現,一切都是開放與透明的,沒有私下的決定。
  • Decision Making - Consensus & Votes,絕對的開放也會帶來一定的弊端,如流程上的繁瑣與拖沓。在社區做決議,首先需要通過在郵件列表中發起討論,達成一致后,需要再發起一次投票,并至少等待72小時(考慮全球時區)后才能宣布投票結果。流程雖繁,但決議一旦通過,就堅決執行,這也是一種社區執行力的體現。

在學習和實踐Apache Way的過程中,團隊也摸索出了一套我們稱之為RocketMQ Way的最佳實踐。

  • International Collaboration - 禁止中文注釋,允許User郵件列表使用中文提問,但Dev郵件列表必須使用英文。關于幾個郵件列表的用途,請參考官方說明。
  • PR Management - Pull Request提交、合并需遵循一定的規約(checklist);每個PR必須有足夠的單元測試,集成測試,有增量的代碼覆蓋率要求;PR的合并有3+ +1,Committer提交的PR不要自己Merge。
  • Diversity Review - 對于Committer代碼實施CTR(Commit then Review)策略,對于Contributor則是RTC(Review then Commit)策略。
  • Branch Model - 采用雙主干模式(Master與Develop),秉持One kernel的理念。
  • Community CodeMarathon - 不定期的編程馬拉松,挖掘社區活躍的貢獻者,培養并輔導社區的深度參與者。
  • Ecosystem Assemble - 獨立倉庫,為社區項目安營扎寨。每個個體在貢獻之前,首先要提交Apache的ICLA。
  • One contributor, One Mentor - 每位PMC成員都有義務幫助社區Contributor,輔導并帶領他們熟悉Apache Way,成為Committer甚至是PMC Member。

網站流量的變化

半年多的時間里,我們陸續在云棲社區,CSDN,InfoQ中文站、國際站發表了多篇技術文章,撰寫國際論文,在ApacheCon、LinuxCon等國際頂級開源峰會發表主題演講,全球圖文同步直播Meetup。通過這一系列國際輸出,網站流量迎來了可喜變化。

通過這幅圖可以看到,美國現在已經是RocketMQ全球第2大訪問國。這對團隊即將開展的Aliware MQ國際戰略,奠定了良好的基礎。同時,這種持續走高的流量也在不斷鞭策著我們,寫高質量代碼,做高質量產品,向全球輸出中國智(質)造。

成熟度評估

坦白說,RocketMQ進入Apache之初,并沒有針對這個模型做任何學習(討厭應試教育)。我們希望通過自己的理解和踐行,完成全球社區的構建,完成畢業。令人驚喜的是,當團隊8月份開始正式審視畢業TODO List時,發現Apache的理論指導和我們的實踐驚人的一致。理解萬歲!下圖是RocketMQ的社區成熟度評估。

??

??

生態篇章

作為國內首個非Hadoop、Spark大數據生態下的Apache頂級項目,我們在打造多元化社區的同時,也在努力構建以Messaging為Core的生態體系。之前提到過的,我們為社區生態貢獻者提供了單獨的Apache代碼倉庫。這一做法,現在也在紛紛被其它Apache頂級項目所效仿。截止目前為止,來自社區貢獻的RocketMQ-Console, RocketMQ-JMS, RocketMQ-Flume,RocketMQ-CPP 等生態項目已經在諸多公司內部進行了線上驗證,像RocketMQ-Druid,RocketMQ-Ignite,RocketMQ-Storm等項目,代碼更是被合并進對方倉庫,這也使RocketMQ和其它頂級開源項目、社區之間有了更多連接。更多的生態項目介紹,請參考官網介紹。

??

??

Messaging生態

??

??

上面這幅圖是團隊圍繞著OpenMessaging 標準而努力打造的生態體系。OpenMessaging是團隊多年來從事Messaging領域研究的一個經驗提煉。經過半年多的發展,這套標準已經進入Linux基金會,接下來會進入到CNCF,成為云計算不可或缺的標準之一。而這套API級的跨平臺,跨語言標準,會嘗試解決之前我們遇到但未曾徹底解決的所有問題。如下圖所示,分布式事務,我們內部的產品MateQ和Notify也有類似的特性,但這種分布式事務更多的是發送者分布式事務,并不是真正意義上的分布式事務。負載均衡,在拉模式和推模式下策略會有所不同,消息本身的sharding也會因業務場景不同而不同。分布式追蹤,主要是考慮Linux CNCF中的opentracing。協議橋接,主要是考慮如何和現有的標準,如JMS進行無縫橋接。流計算,通過引入流計算算子,在消息投遞過程中針對內容進行計算。Benchmark,類似SPECJMS,把所有Messaging Engine拉到同一基調上做性能測試。

??

??

總結一下,基于OpenMessaging的下一代的消息引擎RocketMQ 5.0主要會在四個領域持續發力:電子商務,高并發下削峰填谷。物聯網領域,海量連接同時在線。大數據領域,吞吐為王。金融領域,重要的是高可靠,數據冗余。

結束語

和其它國際頂級開源項目略有不同(如Hadoop,Spark等),除了在開源社區的努力外,團隊在阿里集團也支撐著非常有挑戰的內部業務(萬億級消息體量)。此外,RocketMQ商業版Aliware MQ已經對外云輸出2年之久,服務了國內外上千家企業。除了這些,團隊也在積極打造消息流計算生態,在Kafka,RabbitMQ,中繼和數據同步等產品上持續耕耘。最近,OpenMessaging標準項目也正式入駐Linux基金會,這也是國內首個在全球范圍內發起的分布式消息領域國際標準。所有這一切,對團隊來說都極具挑戰,我們希望在分布式、大數據、多語言架構領域有較高造詣,有追求的同學加入團隊,而團隊也會努力提供極具挑戰的施展空間。我們重視成長,關注可持續發展。Apache RocketMQ頂級項目的畢業只是一個開始。前路漫漫,未來可期!

作者簡介:馮嘉,阿里巴巴高級技術專家,Aliware MQ負責人、主架構師,Apache RocketMQ聯合創始人,LInux OpenMessaging 標準創始人。具有豐富的分布式軟件架構、高并發網站設計、性能調優經驗,擁有國內外多項分布式、推薦領域的專利。開源愛好者,專注分布式、大數據領域,關注 Hbase/Hadoop/Spark/Flink 等大數據技術棧。

【本文為51CTO專欄作者“阿里巴巴官方技術”原創稿件,轉載請聯系原作者】

??戳這里,看該作者更多好文??

 

責任編輯:武曉燕 來源: 51CTO專欄
相關推薦

2009-06-22 13:29:00

Apache Open

2024-08-14 08:11:41

2020-12-08 09:45:51

項目Apache分表

2022-06-02 08:21:07

RocketMQ消息中間件

2022-06-13 10:24:54

開源時序數據庫高校項目

2021-04-09 22:09:55

軟件基金會頂級項目

2021-11-29 07:47:56

RocketMQ分布式消息

2020-12-09 12:52:45

分布式對象存儲

2022-05-27 07:49:14

RocketMQ消息中間件分布式

2022-01-18 11:22:58

Hadoop 管理工具Apache Amba

2017-04-24 13:51:50

華為

2020-04-24 09:26:15

RocketMQ分布式MetaQ

2018-07-18 13:38:21

百度

2024-05-22 08:02:30

2022-04-12 10:34:39

開源開源項目Apache

2024-01-30 12:07:51

2018-07-31 15:34:27

開源

2018-07-30 17:31:28

開源

2019-06-21 14:25:07

HadoopCTO數據庫
點贊
收藏

51CTO技術棧公眾號

91中文精品字幕在线视频| 亚洲国产精品中文| 日韩精品一区二区三区电影| 国产成人av免费看| 国产精品一页| 日韩中文理论片| 亚洲高清无码久久| 国产极品嫩模在线观看91精品| 亚洲欧洲av一区二区三区久久| 999热视频| 国产精品熟女视频| 欧美色图麻豆| 日韩高清有码在线| 国产精品久久久久久9999| caoporn视频在线观看| 国产亚洲成年网址在线观看| 成人综合av网| 一区二区的视频| 国产乱码精品| 欧美精品一区三区| 2019男人天堂| 久久精品亚洲成在人线av网址| 欧洲av一区二区嗯嗯嗯啊| 欧美另类videosbestsex日本| 黄色电影免费在线看| 国产成人自拍网| 国产精品久久久久久久久久东京 | 日韩视频免费在线播放| 色av手机在线| 国产精品久久久久久一区二区三区| 国产精品一 二 三| 国产精品毛片久久久久久久av| 美女黄网久久| 国产做受高潮69| 成人免费视频国产免费观看| 九九热线有精品视频99| 精品国产第一区二区三区观看体验| 男人添女人下面免费视频| 超碰一区二区| 欧美日韩国产在线播放| www.国产在线播放| 色呦呦呦在线观看| 成人欧美一区二区三区在线播放| 日韩av电影免费播放| 欧美 日韩 人妻 高清 中文| 国产在线精品一区二区不卡了| 国产精品久久久久久久午夜| 一级片视频在线观看| 99精品免费视频| 久久免费精品日本久久中文字幕| 外国一级黄色片| 亚洲欧美偷拍自拍| 久久激情视频免费观看| 男人晚上看的视频| 99热国内精品永久免费观看| 在线日韩精品视频| www.涩涩爱| 欧美顶级大胆免费视频| 日韩在线观看免费| 中文字幕第69页| 91免费精品| 不卡av电影在线观看| 黑人巨大精品一区二区在线| 91精品啪在线观看国产81旧版| 久久亚洲影音av资源网| 91人妻一区二区三区蜜臀| 这里只有精品在线| 欧美激情手机在线视频 | 亚洲综合小说| 九九精品在线视频| 日本少妇做爰全过程毛片| 99精品久久| 国产成人极品视频| 亚洲天堂中文在线| 国产经典欧美精品| 精品毛片久久久久久| 清纯唯美亚洲色图| 国产精品无码永久免费888| 一区国产精品| bt在线麻豆视频| 亚洲国产综合色| 欧美色图色综合| 中文字幕日本一区二区| 欧美精品tushy高清| 中文字幕无码毛片免费看| 国产乱论精品| 亚洲区在线播放| 国产又黄又粗又猛又爽的 | 久久免费一级片| av手机在线观看| 欧美伊人久久久久久午夜久久久久| 国产精品人人爽人人爽| 欧美午夜在线播放| 亚洲精品一区中文字幕乱码| 日本黄区免费视频观看 | 国产黄色特级片| 综合欧美精品| 精品夜色国产国偷在线| 国精品人伦一区二区三区蜜桃| 欧美日韩影院| 国产精品福利无圣光在线一区| 国产欧美综合视频| 久久人人爽人人爽| 台湾无码一区二区| 欧美日韩国产网站| 亚洲国产精品高清久久久| 精品视频第一页| 亚洲一区自拍| 91嫩草免费看| 3p视频在线观看| 婷婷综合五月天| 超碰91在线播放| 精品72久久久久中文字幕| 欧美大片大片在线播放| 中文字幕二区三区| 91农村精品一区二区在线| 特级黄色录像片| 五月激情久久| 亚洲激情成人网| 久久久精品视频免费观看| 日本成人超碰在线观看| 久久www免费人成精品| caoporn免费在线| 欧美日韩和欧美的一区二区| 国产人妻人伦精品1国产丝袜| 自产国语精品视频| 国产精品视频最多的网站| 深夜福利免费在线观看| 亚洲成在人线免费| 日本中文字幕精品| 91精品精品| 成人在线视频网站| av网站无病毒在线| 欧美影片第一页| 国产 欧美 在线| 国产九九精品| 久久精品aaaaaa毛片| av中文资源在线资源免费观看| 91精品国产一区二区三区香蕉| 三区四区在线观看| 天堂va蜜桃一区二区三区漫画版| 久久99导航| 欲香欲色天天天综合和网| 亚洲精品av在线播放| 国产精品1234区| 成人精品视频.| 男的插女的下面视频| 97视频一区| 久久久久在线观看| 免费国产羞羞网站视频| 一区二区三区日韩欧美| caoporm在线视频| 在线观看国产精品入口| 亚洲专区国产精品| 影院在线观看全集免费观看| 日韩视频免费观看高清完整版在线观看 | 日韩久久中文字幕| 91亚洲资源网| 人妻无码视频一区二区三区| 欧美老女人另类| 国产精品久久久久久久久久免费| 国产主播福利在线| 欧美图片一区二区三区| 最新日韩免费视频| 国产精品18久久久久久vr| 999一区二区三区| 欧美国产极品| 国产精品高清免费在线观看| 日韩理伦片在线| 欧美一二三区精品| 日韩网红少妇无码视频香港| 久久久噜噜噜久噜久久综合| 亚洲色图久久久| 国产高清一区二区| 国产精品国产精品| 久久r热视频| www.日韩视频| 国内爆初菊对白视频| 欧美性极品xxxx做受| 国产精品www爽爽爽| 国产乱人伦偷精品视频不卡 | 欧美资源在线| 中文字幕免费在线不卡| 51亚洲精品| 国产精品aaa| 亚洲婷婷噜噜| 亚洲乱码av中文一区二区| 中文字幕日韩经典| 亚洲一区二区精品久久av| 少妇久久久久久久久久| 国产精品一区一区三区| 黄色免费视频大全| 午夜精品一区二区三区国产| 国产女主播一区二区| 青青热久免费精品视频在线18| 欧美日韩国产二区| 国产美女性感在线观看懂色av| 91精品国产麻豆国产自产在线 | 欧美色视频在线| 国产在线一区视频| 亚洲国产高清在线观看视频| 丰满熟女人妻一区二区三区| 日本女人一区二区三区| 成年人网站国产| 99久久精品国产亚洲精品 | 亚洲色图偷拍视频| 久久国产精品99国产| wwwjizzjizzcom| 国产在线观看91一区二区三区| 97操在线视频| 成人激情视屏| 热99精品只有里视频精品| 丝袜在线观看| 久久精品亚洲一区| 国产日本在线| 日韩精品久久久久久福利| 91丨九色丨丰满| 在线看日本不卡| 午夜影院在线看| 一区二区三区四区精品在线视频| 日本美女高清在线观看免费| 亚洲国产毛片aaaaa无费看| 国产又粗又猛又爽视频| 国产91精品一区二区麻豆网站 | 日韩欧美中文字幕精品| 成人免费视频国产免费| 午夜精品福利一区二区蜜股av| 国产精品夜夜夜爽阿娇| 国产欧美精品一区二区三区四区| 中文字幕人妻一区二区三区| 国产福利精品一区| 拔插拔插华人永久免费| 麻豆精品在线播放| 免费在线观看的毛片| 男女av一区三区二区色多| 大陆av在线播放| 国产精品v日韩精品v欧美精品网站| 日本黄色a视频| 日本不卡高清| 性刺激综合网| 日韩成人影院| 亚洲精品国产精品久久| 欧美一站二站| 日韩区国产区| 欧美一区2区| 亚洲午夜精品一区二区| 成人羞羞视频在线看网址| 欧美欧美一区二区| 欧美日韩播放| 亚洲韩国在线| 欧美丰满日韩| 欧洲美女和动交zoz0z| 在线观看国产精品入口| 日本福利视频在线观看| 国语自产精品视频在线看8查询8| av动漫在线播放| 精品人妻中文无码av在线| 国产亚洲一区字幕| 日本一级免费视频| 国产免费久久精品| chinese全程对白| 依依成人精品视频| 日本三级黄色大片| 欧美午夜激情小视频| 国产女优在线播放| 欧美另类z0zxhd电影| 国产黄色免费大片| 亚洲国产精品电影| 可以在线观看的av网站| 中文字幕亚洲欧美日韩在线不卡| 日本高清视频在线播放| 久久777国产线看观看精品| а√天堂中文资源在线bt| 青青草原一区二区| 亚洲精品乱码日韩| 成人激情av| 你微笑时很美电视剧整集高清不卡| 色噜噜一区二区| 欧美成人69| 能在线观看的av| 久久99热国产| 欧美双性人妖o0| 国产精品日韩精品欧美在线| 欧美黑人一级片| 一本色道久久综合亚洲aⅴ蜜桃| 中文字幕一区二区三区四区免费看| 91精品久久久久久久久99蜜臂| 高潮毛片7777777毛片| 亚洲色图欧美制服丝袜另类第一页| 在线观看免费网站黄| 欧美精品videosex极品1| 欧美大片免费| 91视频免费在线观看| 国产精品日韩在线播放| 看片一区二区| 国产精品视频免费观看| 欧美亚洲国产一区| 国产aaa免费视频| 秋霞电影网一区二区| 激情小说欧美色图| 国产精品丝袜久久久久久app| 精品99久久久久成人网站免费| 色综合欧美在线| 99国产揄拍国产精品| 亚洲欧美国产精品专区久久| 成人免费看片| 国产成人福利网站| 国产成人福利av| 一区二区三区四区五区精品| 国产亚洲在线| 国产a级片视频| 国产精品传媒入口麻豆| 中文字幕高清在线免费播放| 欧美videofree性高清杂交| 毛片免费在线观看| 久久人91精品久久久久久不卡| 亚洲精品一区av| 日本日本精品二区免费| 亚洲人成在线影院| 制服下的诱惑暮生| 国产精品成人在线观看| 国产免费一区二区三区四区五区| 日韩欧美色电影| 毛片在线播放a| 国产精品久久久久久搜索| 欧美禁忌电影| 日韩中文字幕三区| 日本在线视频观看| 久久久极品av| 992tv国产精品成人影院| 麻豆成人小视频| 亚洲特级毛片| 久久av一区二区三| 亚洲精品老司机| 国产乱淫片视频| 日韩一区二区三区国产| 国产成人精品一区二区三区免费| 欧美高清一区二区| 性欧美暴力猛交另类hd| 国产精品无码网站| 亚洲成人资源在线| 欧日韩在线视频| 国产最新精品视频| 国内毛片久久| 欧美激情 国产精品| 成人动漫在线一区| 91香蕉在线视频| 日韩av一区二区在线观看| 麻豆免费在线| 蜜桃91精品入口| 玖玖精品视频| 2019男人天堂| 91精品国产综合久久精品图片| 成年人网站在线| 成人免费在线一区二区三区| 亚洲精品一级| 免费中文字幕av| 在线观看av不卡| 欧美人xxx| 999视频在线免费观看| 影音先锋中文字幕一区| 影音先锋人妻啪啪av资源网站| 精品国产乱码久久久久久婷婷| 亚洲人妻一区二区三区| 韩国精品久久久| 亚洲欧美日本一区| 日韩欧美999| av在线天堂| 成人欧美一区二区三区黑人孕妇| 一区二区三区午夜视频| 第一页在线视频| 欧美色视频日本高清在线观看| 黄视频在线播放| 成人黄色网免费| 在线电影一区| 男人舔女人下部高潮全视频 | 中文字幕+乱码+中文乱码91| 日韩在线免费视频| 国产区精品视频在线观看豆花| 哪个网站能看毛片| 自拍视频在线观看一区二区| 欧美一级淫片aaaaaa| 国产精欧美一区二区三区| 91精品国产91久久综合| 波多野结衣影院| 欧美日韩高清一区| 极品视频在线| 一区二区三区四区久久| 99国产欧美另类久久久精品| 最近日韩免费视频| 欧美激情在线观看| 欧美三级伦理在线| 亚洲啪av永久无码精品放毛片| 日本电影亚洲天堂一区| 青草在线视频| 天堂一区二区三区| av午夜一区麻豆| 国产精品免费无遮挡| 日本电影亚洲天堂| 欧美午夜免费影院|