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

模塊化 VS 微服務(wù):別讓架構(gòu)選擇誤入 “偽需求” 陷阱

開發(fā) 架構(gòu)
架構(gòu)有時(shí)候挺難捉摸的——人們不斷提出新想法,這些想法在沒有任何背景或者細(xì)微差別的情況下快速成為主流“實(shí)現(xiàn)方式”;而迫于尋求架構(gòu)改進(jìn)之法的行業(yè)則盲目跟進(jìn),不假思索地全盤接受。

架構(gòu)有時(shí)候挺難捉摸的——人們不斷提出新想法,這些想法在沒有任何背景或者細(xì)微差別的情況下快速成為主流“實(shí)現(xiàn)方式”;而迫于尋求架構(gòu)改進(jìn)之法的行業(yè)則盲目跟進(jìn),不假思索地全盤接受。

在這股大有問題的風(fēng)潮中,微服務(wù)正是最新一代弄潮兒。可微服務(wù)到底哪里好,我們又為什么要使用微服務(wù)?是時(shí)候?qū)@個(gè)問題追根溯源了。

圖片圖片

1.究其根本,微服務(wù)號(hào)稱能帶來……

很多好東西!

  • 可擴(kuò)展性:能把代碼拆分成更小的部分,各自獨(dú)立開發(fā)、測(cè)試、部署和更新。
  • 專注:讓開發(fā)者專注于解決業(yè)務(wù)問題和業(yè)務(wù)邏輯。
  • 可用性:后端數(shù)據(jù)必須始終可用于各種設(shè)備。
  • 簡(jiǎn)單性:簡(jiǎn)化大型企業(yè)級(jí)應(yīng)用程序的開發(fā)。
  • 響應(yīng)能力:讓分布式應(yīng)用程序得以擴(kuò)展,從而響應(yīng)不斷變化的事務(wù)負(fù)載。
  • 可靠性:復(fù)制的服務(wù)器分組可在發(fā)生故障時(shí)繼續(xù)保持運(yùn)行,從而消除單點(diǎn)故障。即使發(fā)生故障,運(yùn)行中的應(yīng)用程序也可恢復(fù)至良好狀態(tài)。

這些聽著都挺耳熟,但這六條說法其實(shí)各有來歷:兩條來自微服務(wù)文獻(xiàn)  (博文、論文等),兩條來自20年前的EJB文獻(xiàn),兩條來自O(shè)racle Tuxedo——一項(xiàng)四十多年前的技術(shù)。各位朋友分得清它們的真實(shí)歸屬嗎?

換句話說,咱們這個(gè)行業(yè)其實(shí)一直在用同樣的炒作方法,同樣的宣傳伎倆。

不記得過去的人,注定要重蹈覆轍。

——George Santanyana,《理性的生活》(1905年)[1]

說起微服務(wù)這邊的炒作,一篇企業(yè)博文[2]列出了選擇微服務(wù)的十大理由:

  • 能普及大數(shù)據(jù)最佳實(shí)踐。微服務(wù)天然適用于數(shù)據(jù)管道架構(gòu),符合大數(shù)據(jù)的收集、攝取、處理和交付方式。數(shù)據(jù)管道中的各個(gè)步驟都會(huì)以微服務(wù)的形式處理各項(xiàng)小任務(wù)。
  • 相對(duì)易于構(gòu)建和維護(hù)。微服務(wù)的用途單一,這種設(shè)計(jì)意味著其能以較小的團(tuán)隊(duì)構(gòu)建和維護(hù)。各個(gè)團(tuán)隊(duì)可以跨職能組建,同時(shí)也能專注于解決方案中的微服務(wù)子集。
  • 支持更高代碼質(zhì)量。將整體解決方案模塊化為離散組件,有助于應(yīng)用開發(fā)團(tuán)隊(duì)每次專注于一小部分內(nèi)容,從而簡(jiǎn)化整個(gè)編碼和測(cè)試過程。
  • 簡(jiǎn)化了跨團(tuán)隊(duì)協(xié)調(diào)流程。與以往涉及重量級(jí)進(jìn)程間通信協(xié)議的傳統(tǒng)面向服務(wù)架構(gòu)(SOA)不同,微服務(wù)使用事件流技術(shù)降低了集成門檻。
  • 支持實(shí)時(shí)處理。微服務(wù)架構(gòu)的核心是發(fā)布/訂閱框架,能夠支持實(shí)時(shí)數(shù)據(jù)處理以提供即時(shí)輸出與洞察。
  • 有助于快速增長(zhǎng)。微服務(wù)使得代碼和數(shù)據(jù)能夠重用模塊化架構(gòu),輕松部署更多數(shù)據(jù)驅(qū)動(dòng)的用例和解決方案,借此增加業(yè)務(wù)價(jià)值。
  • 能帶來更多產(chǎn)出。數(shù)據(jù)通常會(huì)以不同方式呈現(xiàn)給不同受眾;微服務(wù)簡(jiǎn)化了為各最終用戶提取數(shù)據(jù)的方式。
  • 易于評(píng)估應(yīng)用程序生命周期中的更新。高級(jí)分析環(huán)境,包括那些用于機(jī)器學(xué)習(xí)的分析環(huán)境,往往需要相應(yīng)方法來根據(jù)新建模型評(píng)估原有計(jì)算模型。微服務(wù)架構(gòu)中的A/B和多變量測(cè)試使用戶能夠輕松驗(yàn)證自己更新后的模型。
  • 可實(shí)現(xiàn)規(guī)模伸縮。可伸縮性不僅有助于提供更多容量,也能輕松凸顯出擴(kuò)展瓶頸,之后在各微服務(wù)層級(jí)上解決這些瓶頸。
  • 擁有大量流行工具。大數(shù)據(jù)世界中的各種技術(shù)(包括開源社區(qū)成果)在微服務(wù)架構(gòu)中均運(yùn)行良好。Apache Hadoop、Apache Spark、NoSQL數(shù)據(jù)庫和各類流分析工具皆可用于微服務(wù)。

宣傳材料看得夠多了,下面我們一一對(duì)這些說法進(jìn)行甄別,只是這回要從真實(shí)技術(shù)的角度出發(fā):

  • 能普及大數(shù)據(jù)最佳實(shí)踐。自70年代以來,管道和過濾器架構(gòu)就一直是軟件工程中的組成部分。當(dāng)時(shí)Unixes提出了幾條原則[3]:讓每個(gè)程序做好一件事。如果需要完成一項(xiàng)新工作,別通過添加新“功能”讓舊程序復(fù)雜化,而應(yīng)重新構(gòu)建新程序。應(yīng)將每個(gè)程序的輸出看作另一個(gè)未知程序的輸入。不要用無關(guān)信息混淆輸出。嚴(yán)格避免使用列式或二進(jìn)制輸入格式,也不要堅(jiān)持使用交互式輸入。
  • 相對(duì)易于構(gòu)建和維護(hù)。參見以上Unix原則。
  • 能支持更高質(zhì)量的代碼。如果一次專注于一小部分有助于提高質(zhì)量,那請(qǐng)參見以上Unix原則。
  • 簡(jiǎn)化了跨團(tuán)隊(duì)協(xié)調(diào)流程。這一點(diǎn)非常有趣,里面提到“面向服務(wù)架構(gòu)”(SOA)……往往涉及重量級(jí)進(jìn)程間通信協(xié)議——比如說JSON over HTTP?或者說,這是指一切SOA都需要SOAP、WSDL、XML Schema和WS-*完整規(guī)范集?諷刺的是,微服務(wù)并沒有以任何方式阻止使用這些“重量級(jí)”協(xié)議,某些微服務(wù)甚至建議使用gRPC——一種跟IIOP非常相似的二進(jìn)制協(xié)議,它來自CORBA,屬于SOAP、WSDL、XML Schema和WS-*完整規(guī)范集等“重量級(jí)”協(xié)議的前身。
  • 支持實(shí)時(shí)處理。實(shí)時(shí)處理其實(shí)并不是什么新鮮事物,多數(shù)此類系統(tǒng)確實(shí)需要用發(fā)布/訂閱或者“事件總線”模型來實(shí)現(xiàn),但跟微服務(wù)架構(gòu)沒什么必要聯(lián)系。
  • 有助于快速增長(zhǎng)。“重用模塊化架構(gòu)”——好吧,大家還記得有多少事物都在以“重用”為賣點(diǎn)嗎?編程語言當(dāng)然是其一(OOP、函數(shù)式語言、過程語言),還有庫、框架等等……也許有一天,大家會(huì)在忍無可忍下表示“去他的重用,我們不在乎”。
  • 能帶來更多產(chǎn)出。“數(shù)據(jù)集通常會(huì)以不同方式呈現(xiàn)給不同受眾”,這說的不是SAP的Crystal Reports嗎?
  • 易于評(píng)估應(yīng)用程序生命周期中的更新。機(jī)器學(xué)習(xí)和高級(jí)分析環(huán)境需要“根據(jù)新建模型評(píng)估現(xiàn)有計(jì)算模型”……聽著挺熱門的,但其實(shí)并沒表達(dá)出什么實(shí)質(zhì)內(nèi)容。
  • 可實(shí)現(xiàn)規(guī)模伸縮。這就有點(diǎn)好笑了,EJB、事務(wù)性中間件處理(比如Tuxedo)和大型機(jī),誰不能實(shí)現(xiàn)規(guī)模伸縮?
  • 擁有大量流行工具。我得說一句,行業(yè)中的每次重大炒作都少不了工具的捧場(chǎng),特別是在實(shí)在沒什么可宣傳的時(shí)候。可能大部分讀者朋友沒經(jīng)歷過CASE的時(shí)代,但至少對(duì)UML有所耳聞吧?

而且聰明的朋友可能已經(jīng)注意到,上面大概一半的觀點(diǎn)都在強(qiáng)調(diào)共通的主題——?jiǎng)?chuàng)建和維護(hù)更小、更獨(dú)立的代碼和數(shù)據(jù)“塊”,讓各塊間相互版本化,使用共同的輸入和輸出以實(shí)現(xiàn)整體系統(tǒng)集成。這就好像……

2.究其根本,我們?cè)谖⒎?wù)中發(fā)現(xiàn)的是……

模塊。

沒錯(cuò),大量的低級(jí)“模塊”。這個(gè)誕生自1970年代的概念,一直是大部分編程語言的核心。也可能更早,只是很多舊語言并沒有把相同的設(shè)計(jì)理念概括成“模塊”這個(gè)表達(dá)。

比如在CLR(C#、F#、Visual Basic等)中,它被稱為“程序集”;在JVM(Java、Kotlin、Clojure、Scala、Groovy等)上,則被稱為“JAR”或“包”;在我們熟悉的操作系統(tǒng)動(dòng)態(tài)鏈接庫上也有它的身影(比如Windows上的DLL,Unix上的so或a,還有MacOS那隱藏在/Library目錄下的Frameworks)。

無論如何,它們都服務(wù)于相同的目標(biāo):創(chuàng)造一個(gè)獨(dú)立構(gòu)建、管理、版本控制和部署的代碼單元,以供重復(fù)使用。

考慮到模塊的這一實(shí)際定義,我們引用一篇計(jì)算機(jī)科學(xué)基礎(chǔ)論文中的表述:

項(xiàng)目工作的明確定義與細(xì)分,保障了系統(tǒng)的模塊化。每個(gè)任務(wù)都將形成一個(gè)獨(dú)立的、不同于其他的程序模塊。在實(shí)現(xiàn)時(shí),每個(gè)模塊及其輸入/輸出都經(jīng)過明確定義,與其他系統(tǒng)的預(yù)期接口不會(huì)混淆。在檢查開始前,先對(duì)各個(gè)任務(wù)進(jìn)行同步以避免調(diào)度問題。最終,系統(tǒng)會(huì)以模塊化形式進(jìn)行維護(hù);系統(tǒng)錯(cuò)誤和缺陷可被追溯至特定的系統(tǒng)模塊,從而限制錯(cuò)誤搜索的具體范圍。

以上內(nèi)容來自David Parnas撰寫的開創(chuàng)性論文《On the Criteria To Be Used in Decomposing Systems into Modules[4]》,文章是在50多年前的1971年寫成的。這里提出的明確定義“獨(dú)立的、不同于其他的程序模塊”已經(jīng)涵蓋了微服務(wù)的約半數(shù)優(yōu)勢(shì),就是說同樣的方法我們已經(jīng)用了50年之久。

所以,何必要為微服務(wù)而激動(dòng)不已?

畢竟微服務(wù)的實(shí)質(zhì)跟微服務(wù)、服務(wù)甚至是分布式系統(tǒng),根本就沒有關(guān)系。

圖片圖片

3.微服務(wù)的實(shí)質(zhì),在于……

組織清晰度。

亞馬遜是最早公開討論微服務(wù)概念的企業(yè)之一,但他們自己并沒有特別積極地運(yùn)用這種新架構(gòu)。畢竟為什么要瞎折騰呢,DBA團(tuán)隊(duì)得做相應(yīng)的架構(gòu)變更、QA需要開發(fā)新測(cè)試來發(fā)現(xiàn)bug、基礎(chǔ)設(shè)施團(tuán)隊(duì)得采購新一批服務(wù)器、UX團(tuán)隊(duì)則要為演示創(chuàng)建原型。這些都是額外的負(fù)擔(dān),也代表著現(xiàn)實(shí)阻力。

在這種情況下,開發(fā)團(tuán)隊(duì)根本就沒法順利推進(jìn)自己預(yù)想的架構(gòu)調(diào)整。而以上提到的各個(gè)部門,只是普通IT團(tuán)隊(duì)中各類職能(分析、開發(fā)、設(shè)計(jì)、測(cè)試、數(shù)據(jù)管理、部署、管控等)的小縮影。

要想實(shí)際推動(dòng),則要么保證現(xiàn)有團(tuán)隊(duì)能找到不同的技術(shù)組合,要么硬性要求每位團(tuán)隊(duì)成員都具備完整的技能集(即所謂「全棧開發(fā)者」),可這無疑會(huì)大大增加招聘難度。另外,團(tuán)隊(duì)還需要對(duì)自己的生產(chǎn)中斷事件負(fù)責(zé),每位成員都得隨叫隨到——這些都會(huì)體現(xiàn)在薪酬待遇和法律影響上。當(dāng)然,如果真能打通這些關(guān)節(jié)要害,那各個(gè)團(tuán)隊(duì)確實(shí)能夠獨(dú)立構(gòu)建自己的工件,于是生產(chǎn)力水平將一路飆升、再無阻礙。

可這種只有理論可行性的事情,真能實(shí)現(xiàn)嗎?

4.在微服務(wù)當(dāng)中,我們還發(fā)現(xiàn)了……

分布式計(jì)算謬誤。

有些朋友可能不太熟悉,這里的謬誤來自Peter Deutsch在80年代給Sun的同事們做的演講。1994年,Ann Wolrath和Jim Waldo的開創(chuàng)性論文《A Note on Distributed Computing[5]》則再次提及。

“無論如何定義「正確」,分布式系統(tǒng)都很難在性能、可靠性和可擴(kuò)展性方面真正正確。”(松散解釋)

當(dāng)我們將系統(tǒng)拆分成運(yùn)行在單一操作系統(tǒng)節(jié)點(diǎn)上的內(nèi)存模塊時(shí),即使是在五十年前,跨進(jìn)程或庫邊界進(jìn)行數(shù)據(jù)傳遞的成本也可以忽略不計(jì)。但當(dāng)我們開始跨網(wǎng)絡(luò)線路傳遞數(shù)據(jù)時(shí)(也是目前大多數(shù)微服務(wù)的通行作法),則通信的延遲會(huì)瞬間提升五到七個(gè)數(shù)量級(jí)。這不僅僅要求我們向網(wǎng)絡(luò)添加更多節(jié)點(diǎn)來“擴(kuò)展”,同時(shí)也令整個(gè)系統(tǒng)快速惡化。

沒錯(cuò),通過將微服務(wù)托管在同一臺(tái)機(jī)器上、加載到運(yùn)行各獨(dú)立微服務(wù)容器化鏡像的虛擬機(jī)集群內(nèi),確實(shí)能降低不同服務(wù)間的相互影響。(例如使用Docker Compose或Kubernetes托管一組Docker容器。)但這種方式會(huì)增加虛擬機(jī)進(jìn)程邊界間的延遲(因?yàn)槲覀儽仨氉裱邔幽P鸵?guī)則,即使其中某些層可以完全模擬,產(chǎn)生的延遲仍無法忽視),而且會(huì)在各獨(dú)立節(jié)點(diǎn)上引發(fā)運(yùn)行可靠性問題。

更糟糕的是,還沒等我們切實(shí)解決分布式計(jì)算謬誤,那邊又冒出了與之相關(guān)但又獨(dú)立存在的新麻煩:企業(yè)計(jì)算謬誤[6]。

5.探究微服務(wù)的核心,我們最好能……

重新思考自己的需求。

真有必要把問題拆分成一個(gè)個(gè)獨(dú)立實(shí)體嗎?用托管在Docker容器里的獨(dú)立進(jìn)程就能做到這一點(diǎn),或者也可以在遵循標(biāo)準(zhǔn)化API約定或者其他選項(xiàng)的應(yīng)用程序服務(wù)器中引入獨(dú)立模塊。

這是個(gè)有成熟解的問題,過去20年來已經(jīng)有無數(shù)種技術(shù)能夠?qū)崿F(xiàn),包括servlet、ASP.NET、Ruby、Python、C++,甚至是聞?wù)哳^痛的Perl。其中的關(guān)鍵,是如何建立起易于理解的集成和通信約定的通用架構(gòu)基礎(chǔ)。

我們要不要減少開發(fā)團(tuán)隊(duì)面對(duì)的依賴項(xiàng)?認(rèn)真觀察這些依賴項(xiàng),再跟合作伙伴共同確定可以把其中哪些做做整合。如果組織不想打破結(jié)構(gòu)體系中“以技能為中心”的指導(dǎo)思路(就是把員工明確劃分成「數(shù)據(jù)庫組」、「基礎(chǔ)設(shè)施組」、「QA組」和「開發(fā)組」等),那也至少要嘗試建立一個(gè)邊界相對(duì)模糊的報(bào)告結(jié)構(gòu),把每位成員視為團(tuán)隊(duì)“矩陣”里的一個(gè)元素。

而且最重要的是,一定要保證團(tuán)隊(duì)對(duì)自己正在構(gòu)建的內(nèi)容擁有清晰認(rèn)知,保證他們能輕松向他人解釋自己服務(wù)/微服務(wù)/模塊的核心意義。關(guān)鍵是給團(tuán)隊(duì)以方向和目標(biāo)、達(dá)成目標(biāo)的自主權(quán),同時(shí)輔以必要的鼓勵(lì)和引導(dǎo)。

這就是事情的真相。你想要微服務(wù)?不,你想要的只是模塊。

圖片圖片

相關(guān)鏈接:

  1. https://americanart.si.edu/artwork/those-who-cannot-remember-past-are-condemned-repeat-it-george-santayana-life-reason-1905
  2. https://www.integrella.com/expertise/microservices/
  3. https://en.wikipedia.org/wiki/Unix_philosophy
  4. https://www.win.tue.nl/~wstomv/edu/2ip30/references/criteria_for_modularization.pdf
  5. https://scholar.harvard.edu/files/waldo/files/waldo-94.pdf
  6. http://blogs.newardassociates.com/blog/2016/enterprise-computing-fallacies.html
責(zé)任編輯:武曉燕 來源: 架構(gòu)精進(jìn)之路
相關(guān)推薦

2023-12-19 22:29:37

架構(gòu)微服務(wù)系統(tǒng)

2019-08-28 16:18:39

JavaScriptJS前端

2021-10-11 09:51:37

模塊化UPS架構(gòu)

2023-11-01 11:17:26

單體架構(gòu)微服務(wù)架構(gòu)

2010-05-13 17:36:50

2019-12-10 11:26:50

微服務(wù)架構(gòu)數(shù)據(jù)

2023-01-04 18:10:26

服務(wù)模塊化jre

2009-11-30 09:40:44

2010-05-13 18:32:52

2017-08-08 16:07:57

Android 模塊化架構(gòu)

2017-08-11 16:10:36

微信Android實(shí)踐

2021-12-24 07:10:36

架構(gòu)分層模塊化

2017-07-11 11:02:03

APP模塊化架構(gòu)

2017-05-18 10:23:55

模塊化開發(fā)RequireJsJavascript

2013-08-20 15:31:18

前端模塊化

2020-09-17 10:30:21

前端模塊化組件

2014-08-21 10:37:54

預(yù)制模塊化數(shù)據(jù)中心發(fā)展

2022-03-11 13:01:27

前端模塊

2015-10-10 11:29:45

Java模塊化系統(tǒng)初探

2020-09-18 09:02:32

前端模塊化
點(diǎn)贊
收藏

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

激情六月天婷婷| 91av中文字幕| 久久精品国产露脸对白| 羞羞的视频在线看| 99久久久国产精品| 色综合久久久久综合体| 91精品免费视频| 动漫性做爰视频| 秋霞蜜臀av久久电影网免费 | 美女福利视频在线观看| 国产精品丝袜在线播放| 欧美揉bbbbb揉bbbbb| 丁香六月激情网| av在线资源网| av在线播放一区二区三区| 成人福利视频在线观看| 国产91精品一区| 欧美黄色aaaa| 一区二区三欧美| 久久久老熟女一区二区三区91| 欧美伊人亚洲伊人色综合动图| 亚洲成在线观看| 三级网在线观看| 男人久久精品| 国产精品一区在线观看乱码 | 精品999日本久久久影院| 欧美性黄网官网| aa视频在线播放| 91cn在线观看| 亚洲欧美自拍偷拍色图| 欧美欧美一区二区| 内射无码专区久久亚洲| 国产综合色产在线精品| 一二美女精品欧洲| 国产性生活毛片| 一卡二卡3卡四卡高清精品视频| 天天摸天天碰天天爽天天弄| 国产一区三区三区| 国产精品欧美一区二区| 精品国产一区二区三区四| 亚洲激情午夜| 久久久久久高潮国产精品视| 国产1区2区3区4区| 重囗味另类老妇506070| 最近2019中文免费高清视频观看www99 | 周于希免费高清在线观看| 夜夜嗨av一区二区三区中文字幕| 成年人黄色在线观看| 在线激情小视频| 国产欧美日韩在线| 日本高清久久天堂| 色网站在线播放| 亚洲高清资源| 亚洲激情在线观看| 制服丝袜av在线| 国产成人在线中文字幕| 精品国产91乱码一区二区三区| 日韩av成人网| 澳门久久精品| 日韩成人高清在线| 国产精品揄拍100视频| 亚州av日韩av| 一道本无吗dⅴd在线播放一区| 99自拍偷拍视频| 国产精品久久久久9999赢消| 欧美成人久久久| 久久免费视频6| 亚洲人妖在线| 国产成人亚洲综合青青| 亚洲最大成人在线视频| 国产精品1区2区3区在线观看| 91精品久久久久久久久久久久久| 99国产精品久久久久99打野战| 国产成人午夜精品影院观看视频| 国产在线一区二| 亚洲在线免费观看视频| 国产一区在线视频| 都市激情久久久久久久久久久| 天天爱天天做天天爽| 欧美日韩一卡| 91高清视频免费观看| 色老头在线视频| 极品美女销魂一区二区三区| av日韩免费电影| 日韩黄色影片| 亚洲欧洲日韩在线| 男人添女荫道口图片| 欧美黄色三级| 欧美成人性福生活免费看| a在线观看免费视频| 国产一精品一av一免费爽爽| 亚洲韩国欧洲国产日产av| 少妇无套高潮一二三区| 在线国产一区| 欧洲午夜精品久久久| 91激情在线观看| av亚洲产国偷v产偷v自拍| 日韩亚洲视频| 欧美日韩国产亚洲沙发| 中文字幕制服丝袜一区二区三区| www.av91| 欧美成人免费全部网站| 亚洲国产另类久久精品 | 男人天堂av网| 国产精品视频看| 欧美一级欧美一级| 成人av色网站| 日韩av网站导航| 无码黑人精品一区二区| 国产一区二区三区四区| 欧美乱妇高清无乱码| 91麻豆精品久久毛片一级| 久久99国产成人小视频| 久久成人18免费网站| 香蕉污视频在线观看| 成人中文字幕合集| 91香蕉视频网址| 中文字幕在线视频久| 亚洲成人av在线播放| 国产精品久久国产精麻豆96堂| 国产伦理一区| 国产精品区免费视频| 黄色的网站在线观看| 欧美天堂一区二区三区| 国产一级二级在线观看| 国内精品久久久久久久97牛牛| 欧美成人黄色小视频| 日韩不卡高清视频| 97久久超碰精品国产| 中文字幕人妻熟女人妻洋洋| 一区二区三区日本视频| 一区二区三区视频在线| 国产午夜精品久久久久| 972aa.com艺术欧美| 菠萝蜜视频在线观看入口| 伊人久久大香线蕉综合影院首页| 永久免费看mv网站入口亚洲| 亚洲成人av影片| 99国产精品久| 热99这里只有精品| 国产精品sss在线观看av| 欧美黑人又粗大| 国产叼嘿视频在线观看| 亚洲欧美偷拍卡通变态| 亚洲精品中文字幕乱码无线| 久久一区二区三区电影| 国产精品永久在线| 在线免费观看黄色| 欧美日产在线观看| 中文字幕求饶的少妇| 久久国产精品99久久久久久老狼| 午夜精品视频在线观看一区二区| 超碰公开在线| 欧美日韩亚洲天堂| 亚洲最大的黄色网| 免费在线日韩av| 欧美日韩一区二区视频在线观看| 欧美gay囗交囗交| 亚洲香蕉成人av网站在线观看| www.久久久久久久| 日本一区二区三区高清不卡| 性猛交ⅹ×××乱大交| 999久久久精品国产| 91久久久久久久久久| 四虎亚洲精品| 日韩成人小视频| 成人毛片一区二区三区| 国产精品理伦片| 青青草原播放器| 日韩一级免费| 欧美一区二区三区在线免费观看 | www.成人三级视频| 爱啪啪综合导航| 亚洲欧洲在线看| 91中文字幕在线视频| 亚洲人妖av一区二区| 91超薄肉色丝袜交足高跟凉鞋| 国产欧美一级| 亚洲欧美影院| 第四色中文综合网| 欧美中文字幕视频在线观看| 婷婷视频在线| 欧美成人bangbros| 欧美精品韩国精品| 亚洲欧美激情视频在线观看一区二区三区 | 日本在线高清| 色婷婷综合成人av| 男人天堂手机在线观看| 日本韩国欧美三级| 青青草成人免费| 国产视频一区二区三区在线观看| www.国产福利| 久久aⅴ乱码一区二区三区| 亚洲高清资源综合久久精品| 91精品入口| 国产精品美女免费看| 黄色大片在线| 日韩中文在线中文网三级| 欧美视频一二区| 欧美日本一区二区三区四区| 日韩欧美视频在线免费观看| 国产精品美女一区二区| 中文字幕精品视频在线| 精品在线观看视频| 日韩激情免费视频| 亚洲女同另类| 日韩精品第一页| 成功精品影院| 成人免费观看网址| 久久精品女人天堂av免费观看| 欧美猛少妇色xxxxx| 成人av毛片| 日韩精品有码在线观看| 午夜久久久久久久久久| 欧美日韩亚洲综合在线| 国产www在线| 亚洲电影一区二区| 99久久婷婷国产综合| 国产精品视频一二| 日韩av一二区| 成人av片在线观看| 在线观看你懂的视频| 麻豆精品精品国产自在97香蕉 | 99久久www免费| 日韩av图片| 亚洲调教一区| 国产精品伦子伦免费视频| 欧美aa免费在线| 久久久久久久爱| av网址在线看| 日韩视频免费在线观看| 高清中文字幕一区二区三区| 亚洲免费电影在线观看| 亚洲日本在线播放| 亚洲国产成人精品女人久久久 | 亚洲欧洲在线免费| 色资源在线观看| 日韩成人中文字幕在线观看| 亚洲国产www| 欧美一级久久久| h狠狠躁死你h高h| 欧美一区二区在线播放| 久久久久久久伊人| 亚洲高清视频的网址| 国产一级视频在线播放| 亚洲愉拍自拍另类高清精品| 成人观看免费视频| 亚洲一区在线看| 性欧美精品男男| 国产婷婷色一区二区三区| 亚洲高潮女人毛茸茸| 中文文精品字幕一区二区| 激情五月深爱五月| 国产精品第13页| 亚洲伦理一区二区三区| 亚洲男人的天堂在线aⅴ视频| 青青草激情视频| 亚洲综合激情另类小说区| 国产中文字幕免费| 亚洲va韩国va欧美va精品| 日本熟妇毛茸茸丰满| 精品日韩美女的视频高清| www.com亚洲| 欧美男同性恋视频网站| 国产成人精品av在线观| 精品成人私密视频| 你懂的在线视频| 中文字幕亚洲一区在线观看 | 丁香激情综合国产| yy6080午夜| 国产免费成人在线视频| 日本中文在线视频| 亚洲男女毛片无遮挡| www.天天色| 欧美性做爰猛烈叫床潮| 99热在线只有精品| 日韩高清a**址| 亚洲s色大片| 久久久人成影片一区二区三区观看 | 久久久久亚洲蜜桃| 国产aaaaaaaaa| 亚洲一区二区在线播放相泽| 丁香六月婷婷综合| 在线成人小视频| 日日躁夜夜躁白天躁晚上躁91| 亚洲欧美制服第一页| 成人短视频在线| 欧美性视频网站| 亚洲成人精品综合在线| 国内精品视频免费| 99久精品视频在线观看视频| 国产人妻777人伦精品hd| 日韩和的一区二区| 人妻少妇偷人精品久久久任期| 久久嫩草精品久久久精品| 极品久久久久久| 色综合欧美在线| 亚洲国产精品欧美久久| 国产一区二区黄| √最新版天堂资源网在线| 国产日韩欧美中文| 在线观看欧美理论a影院| 欧洲xxxxx| 热久久久久久久| 美女又爽又黄视频毛茸茸| 亚洲男人的天堂在线aⅴ视频| 国产suv精品一区二区33| 亚洲成成品网站| jizz性欧美| 国产日韩av高清| 欧美激情在线免费| 免费无码不卡视频在线观看| 国产精品观看| 一区二区成人网| 久久综合久久鬼色| 国产午夜激情视频| 欧美一区二区人人喊爽| av在线电影观看| 国产成人亚洲综合青青| 精品资源在线| 亚洲一区二区三区av无码| 国产又粗又猛又爽又黄91精品| 成人黄色短视频| 欧美视频在线一区二区三区 | 欧美激情中文字幕| 97久久久久久久| 精品久久久久久久中文字幕| 国产ts变态重口人妖hd| xvideos国产精品| 成人在线视频免费| 青青影院一区二区三区四区| 香蕉亚洲视频| 欧美一区二区三区成人精品| 亚洲国产aⅴ天堂久久| 成 人 免费 黄 色| 欧美第一黄色网| 91精品日本| 夜夜添无码一区二区三区| 成人免费视频视频| 国产真实夫妇交换视频| 亚洲加勒比久久88色综合| 爱情岛论坛亚洲品质自拍视频网站| 99久久免费国| 欧美~级网站不卡| 波多野吉衣在线视频| 亚洲在线视频网站| 深爱激情五月婷婷| 91精品国产91久久久久久久久 | 亚洲黄页网在线观看| 高清精品在线| 久热国产精品视频一区二区三区| 国产精品主播| 久久久久亚洲av无码a片| 欧美三级视频在线| 美女羞羞视频在线观看| 欧美激情第1页| 黄色美女久久久| 久久精品免费一区二区| 久久精品水蜜桃av综合天堂| 这里只有久久精品视频| 中文日韩在线视频| 亚洲热av色在线播放| 亚洲精品国产suv一区88| 成人一区二区在线观看| 亚洲天堂视频网站| 国产香蕉97碰碰久久人人| 日本国产一区| 2018中文字幕第一页| 91伊人久久大香线蕉| 精品成人在线| 久久99热这里只有精品国产| 亚洲毛片在线免费| 日韩精品一区二区三区电影| 国产激情精品久久久第一区二区 | 国产黄色片网站| 久久久久久久久中文字幕| 亚洲国产合集| 成人日韩在线视频| 亚洲一区二区在线视频| 理论视频在线| 51国偷自产一区二区三区| 日韩午夜在线| 在线观看天堂av| 亚洲第一精品夜夜躁人人爽| 欧美日韩成人影院| 欧美一级黄色录像片| 久久夜色精品国产欧美乱极品| 一区二区日韩在线观看| 97视频免费在线看| 99精品视频精品精品视频| 亚洲中文字幕无码一区| 欧美三级电影网| 亚洲精品中文字幕| 中文字幕第一页亚洲| www久久久久| 国产成人精品一区二区无码呦 | 免费又黄又爽又猛大片午夜| 美女999久久久精品视频| 视频精品在线观看| 美女扒开腿免费视频|