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

為什么放棄了微服務?是哪些原因導致的?

開發 前端 新聞
微服務被認為是一種理想的架構模式,因此,Steven Lemon 所在公司的領導層決定從單體架構向微服務架構遷移,這讓整個開發團隊在隨后的的日子里苦不堪言,七大現實問題擺在面前無法解決,微服務架構的好處也沒有享受到,并發現這不單單是一個技術問題。最終,整個團隊決定放棄。

 微服務被認為是一種理想的架構模式,因此,Steven Lemon 所在公司的領導層決定從單體架構向微服務架構遷移,這讓整個開發團隊在隨后的的日子里苦不堪言,七大現實問題擺在面前無法解決,微服務架構的好處也沒有享受到,并發現這不單單是一個技術問題。最終,整個團隊決定放棄。

領導決定:遷移微服務

最近,我所在的開發團隊在緊張的交付周期結束后,有了短暫的休息機會。領導層認為可以利用這段時間將單體架構遷移至微服務。經過一個月的調研和準備之后,我們最終放棄遷移計劃,繼續使用原先的單體架構。在我們看來,微服務不僅不會幫到我們,反而會對開發流程造成嚴重影響。

微服務被認為是一種理想的架構模式,但并不適合我們。我們公司的情況是這樣的:一共有 200 多名開發人員,不過我們團隊只有 5 個人,大概有 5% 的后端開發工作涉及公司層面的單體系統,這是一個巨大的 C#應用程序。剩下的時間,我們開發了自己的兩個 Node 服務。

我們團隊負責的這兩個服務都很小巧,完全可以控制開發、架構和部署整個流程。遇到性能問題時,我們會把生產環境中的實例數量增加一倍,直到把底層問題解決。我們幾乎不與其他團隊合作,因為這些服務是用 TypeScript 開發的,所以我們團隊 (主要是前端開發人員) 能夠在前端和后端使用相同的編程語言。最重要的是,我們可以在客戶端及后端的驗證和報告服務中包含復雜的規則計算引擎。總而言之,我們整個團隊專注于特定業務。

首先需要聲明:我們不喜歡開發單體系統,因為增加新功能、編譯和運行測試都很慢,而且架構經常發生變化,在構建過程中總會出現難以預料的東西。所以,當領導提出遷移至微服務架構時,我們也同意了。

為什么選擇放棄?

然而, 在整個調研過程中,我們發現了如下七大難以解決的問題,這些問題讓我們最終選擇放棄。

嚴重依賴第三方

我們的整體應用程序是一個建立在外部產品之上的自定義 UI 層,集成了自定義業務規則,并提供了用于交互的界面。客戶端是一個 UWP 應用程序,還有一些后端服務,用于在我們和第三方域之間進行轉換。

因為大量依賴第三方,我們在進行微服務劃分時遇到了一些問題,例如,為了讓第三方的某個域起作用,應用程序必須在域之間做一些轉換工作,讓第三方域看起來像是我們的域的一部分。如果前端和第三方之間只有一個服務,那么這種轉換還是可行的。當我們試圖將域劃分成多個獨立的微服務時,域之間的轉換工作帶來了很多麻煩。比如,微服務劃分是否要跟第三方保持一致,并在兩邊服務之間重復實現前端需求?或者根據自己的原則來劃分微服務,并通過一個微服務從第三方的多個域獲取數據?這兩種方法都違反了微服務原則,并且會導致額外的耦合。

此外,我們經常要與外部方協同工作,因為一些特性要求雙方都做出改動。實際上,外部方成了我們之外的另一個開發團隊。如此緊密的合作意味著我們的發布流程必須與他們保持同步。 微服務的一個好處是每個團隊都可以獨立發布自己的服務,不需要與其他團隊進行協調 , 但跨團隊甚至是跨公司的協調發布流程導致我們無法享受到這些好處。

微服務的核心思想之一是打破“不同層由不同團隊負責開發”的模式。在微服務架構中,每個團隊需要處理與其業務相關的整個技術棧。對于我們來說,因為外部方是一家完全獨立的公司,所以進行這種重構是不現實的。

無法有效拆分微服務

我們無法在單體系統中找到可以被明顯拆分成微服務的部分。于是,我們隨意挑了幾個領域模型,得到了一個需要創建的微服務清單,但在著手調研時,我們發現這些微服務之間存在很多共享的業務邏輯和隱式耦合。我們又進一步嘗試將這些微服務再細分為更小的服務,但這樣卻帶來了 更多耦合、無處不在的消息總線,以及潛在的通信大爆炸——一個服務需要與十個甚至更多的微服務通信。

這些微服務之所以耦合得很厲害而且難以拆分,主要是因為我們原先的單體架構只為一個業務提供服務。UI 應用程序的主要設計目標是將第三方基礎應用程序的數據聚合在一起。為了方便用戶,我們創建了跨領域的工作流,將分散的功能聚合在一起。

在整個過程,我們并沒有正確理解應該怎樣拆分微服務,而且低估了正確選擇微服務邊界的重要性。如果按照我們的方式來拆分,那么實現一個標準的功能需要同時修改多個微服務。每個功能都需要不同的微服務團隊參與開發,這就導致單個微服務無法只由某個團隊負責。

不同團隊共享微服務

我們大約有 12 名開發人員在做這件事情,分布在兩個功能團隊和一個支持團隊。但我們負責的工作是波動的,一個團隊不會只負責開發應用程序的某個部分,兩個團隊同時修改同一處代碼的情況并不少見,所以不能將某個微服務的所有權賦予某個團隊。

康威定律指出,軟件架構將以一種與組織和團隊結構類似的方式增長。如果有很多獨立的團隊,這些團隊可以負責不同的業務關注點,那么可以考慮采用微服務架構。但是,如果只有很少的團隊,并且開發的是同樣的功能,那么還是不要這么做。

平臺還沒做好準備

因為有各種各樣的問題,至少在 6 個月內,我們必須同時部署舊的單體應用和新開發的微服務,無法使用與微服務相關的工具,例如容器、Kubernetes、服務總線、API 網關等。沒有這些工具,微服務之間的通信變得更加困難。

因此,我們在每個微服務中都包含了共享邏輯。因為未能正確拆分,所以出現了很多重復工作。例如,有一個特別復雜但很重要的業務邏輯,我們不得不在四個微服務中復制、粘貼和維護。

前路渺茫

開發團隊只對接下來 6 個月做什么有粗略想法,除此之外就沒有其他東西了。業務經常發生變化,需求突然發生變化的情況并不少見。這種不確定性使微服務的開發變得更加困難,因為無法預測會出現什么新狀況。例如,微服務之間的關系和耦合會一直增長嗎?幾個月后,我們需不需要花時間把它們重新連接在一起?

今年早些時候,我們已經試著進行微服務概念驗證,但隨著業務需求的變化,這被否決了。

時間太緊

時間安排得很緊,領導留的那點時間也就夠把單體拆分成計劃好的微服務,根本沒有多余時間反思自己做了什么或者在必要時調整方向。我們在計劃階段就發現了很多問題和挑戰,在實現階段就更不用說了,開發團隊因此陷入一片焦灼。

缺乏經驗

除了面臨風險和時間壓力外,負責設計和實現微服務的人之前沒有相關經驗。由于沒有足夠的標準工具可用,導致情況更加惡化,我們不得不自己實現基礎設施平臺。在與一些有微服務經驗但沒有參與我們項目的人交流之后,引發了更大的恐慌。他們建議的基礎設施我們沒有,他們還指出了我們在領域模型之間劃分界限可能帶來的后果。

到目前為止,我們的計劃中包含了很多不得已的妥協,多少都偏離了標準的微服務模式。時間緊迫,沒有專家指導,犯錯成了家常便飯,我們以極高的代價換來血的教訓。

反思:微服務解決痛點了嗎?

當這些事情變得越來越困難,清晰的前行之路開始變得模糊。我們才意識到當初都不知道為什么要做這些事情,我們沒有列出痛點是什么,也不知道做這些事情是否可以解決問題。更糟糕的是,微服務可能會帶來新的問題。

我們開始分析這些問題:應該從重構中得到什么好處?要解決什么問題?我們試圖通過無休止的會議搞清楚這些問題。在每一次休息時間,開發人員之間的每一次對話都在討論和質疑微服務,但仍然無法得到答案。

事實證明,相比于微服務,我們確實有其他更緊迫的痛點需要解決,只是這些痛點在我們考慮遷移到微服務的過程中被忽視了,但我們沒有足夠的時間來解決這些痛點,所以我們最后既沒有得到微服務的好處,也沒能解決其他痛點。

微服務的好處是什么?

在意識到并不清楚采用微服務的目的之后,我們開始研究微服務能夠帶來哪些好處。

自治

在采用微服務架構時,開發團隊擁有交付特性所需的整個技術棧的控制權,好處是可以減少與其他團隊之間的協調工作,互不影響。

開發團隊可以專注某些領域

在采用單體架構時,開發任務的分配是不固定的,任何人都有可能分配到任意的任務。但如果每個團隊可以擁有自己的服務,就可以在特定業務領域積累專業知識,理解特定領域的業務規則和需求。他們對自己的技術棧十分了解,在做出變更時更有信心。

伸縮性

在采用微服務時,開發者可以根據每個服務的性能需求進行伸縮。而在采用單體架構時,雖然也可通過添加更多服務器進行水平伸縮,但卻不能讓單體的每個組件進行獨立伸縮。此外,細粒度的微服務可以更容易根據需要進行垂直伸縮。例如,有時可能希望多處理一些負載,而在處理性能問題時又需要一些額外的機會。

更容易回滾

如果回滾某個功能,只需要修改單個微服務就可以直接回滾,不會影響其他團隊的工作。此外,微服務架構有助于降低因單個微服務故障導致整個系統宕機的風險。

更高的發布頻率

如果是一個大型系統,每次版本發布都很耗時,且伴隨著風險。回歸測試需要覆蓋很多東西,從而限制發布節奏。開發人員可能需要經過很多人準許,并在所有參與版本發布的團隊之間進行協調。微服務縮小了變更范圍,減少了團隊之間的協調工作量。開發團隊可以根據自己的時間表發布版本,而不是被一個整體的節奏所束縛。

使用最合適的技術

微服務的各個團隊可以為要解決的問題選擇最合適的技術,可以使用較新的技術,而單體系統則很難升級,只能停留在過時的技術平臺上。

升級更簡單

給大型應用程序升級框架從來都不是件有趣的事情,而且通常都伴有風險。當需要在多個團隊間協調相互關聯的變更時,一切都變得更加困難。而在采用微服務架構時,可以只升級必要服務,每次只讓一個團隊升級一個服務。

縮小變更影響范圍

應用程序的不同部分以不同的速度發生變化,大部分組件可能幾個月甚至幾年都不需要改動,將很少發生變化的代碼與頻繁發生變化的代碼分開可以降低意外回歸帶來的風險。

易于重構

較小的服務更容易理解。一個服務只由一個團隊負責開發,服務的設計風格就能夠保持一致。小巧的微服務更容易進行重構。相比之下,單體架構可能會出現不一致,因為隨著時間的推移,不同的團隊會向單體系統中加入不一樣的設計想法。

這些好處跟我們有什么關系?

采用微服務有很多潛在的好處,但我們能撈到這些好處嗎?

最終,單體架構中無法變更的部分和我們不得不做出的妥協導致無法獲得這些好處。開發團隊需要在不同的微服務之間協調,一些功能分散在多個共享的微服務中,這說明我們并沒有獲得微服務的隔離性好處:減少協調和專門化。

微服務之間的差異變成了缺點,而不是優點。開發每一個新功能都需要了解新的微服務以及需要其他團隊做出哪些改動。我們對第三方的依賴嚴重阻礙了開發進程,讓我們無法獲得微服務伸縮性的優勢。

權衡利弊

大材小用

采用微服務架構并不是沒有代價,需要解決很多問題,而大部分在單體系統中已經解決過了,例如:日志、監控、異常處理、容錯、回退服務間通信、消息格式、容器化、服務發現、備份、遙測、警報、跟蹤、構建管道、發布管道、工具、共享基礎設施代碼、文檔、伸縮、時區支持、API 版本控制、網絡延遲、健康檢查、負載均衡、CDC 測試、容錯、在本地開發環境調試和開發多個微服務等。

更糟糕的是,因為沒有現成的微服務平臺,我們不得不自己完成上面這些事情。要轉向微服務,我們確實存在痛點和困難,也確信無法從微服務架構獲得任何好處,如果要支持微服務,還需要做一長串額外工作。

名義上的微服務

下圖分別是我們當前的單體架構、計劃中的架構和微服務架構。從結構上看,新的架構跟當前的單體架構很像,所有東西仍然緊密耦合在一起。

為什么放棄了微服務?是哪些原因導致的?

單體架構很糟糕嗎?

自從微服務架構大火之后,“單體”成了一個不太好的名詞,好像“單體”就是糟糕的東西,而“微服務”就是好東西。但回望過去,我們的開發團隊在開發單體系統時并沒有遇到什么問題。開發和擴展都非常簡單,已經有一個非常好的 CI/CD 管道,部署和回滾都非常容易。我們的分支管理和測試策略確保了很少會有問題進入到生產環境。

微服務更多與技術無關

我們對微服務研究得越多,就越覺得它與技術無關,更多的是與團隊的結構和工作模式有關。我們把微服務視為純粹的技術問題,或許是我們錯了?

除此之外,還有很多全局性的問題無法得到解答。

  • 讓不同的團隊負責處理不同的業務是否切合實際?
  • 我們能否在領域和微服務之間對功能進行清晰劃分?
  • 是否所有團隊都有足夠的工作量,會不會出現某些團隊很清閑的情況?
  • 個別團隊會不會被堆積如山的高優先級工作壓得喘不過氣?
  • 阻礙我們拆分單體系統的問題是否也會讓領導層難以分配工作?
  • 領導層對這種轉變感興趣嗎?

微服務遷移是件大事情,在幾個月的時間里,所有開發人員都停止開發新功能,并在很多先決條件都還不滿足的情況下開始拆解單體系統。為了做這件事而做,我們并沒有想過是否真的有必要。

這不僅不是從 A 到 B 的問題,反而是一種倒退。我們先是創建微服務,然后搭建基礎設施,還忽略了重組團隊結構。如果我們先根據業務關注點重組團隊,然后準備好基礎設施,這就為微服務的自然出現做好了準備。一旦出現任何新的業務問題,就可以將它們直接放到新的服務中。

在拆分微服務時,我們必須預先確定每個微服務的大小。關于微服務大小這個問題,有很多相互矛盾的建議。有人建議微服務應該足夠大,大到可以由一個團隊負責開發;另一些人則建議微服務應該足夠小,小到可以在腦子里浮現出服務結構,甚至小到可以在兩周內重寫;還有一些人建議,應該與業務大小相仿。

領導層決定基于我們的領域模型來拆分微服務,如果還有問題,就繼續把它們拆分成更小的服務。這導致了上面提到的一些問題。事后看來,如果我們先把先決條件準備好,并讓微服務自然而然地出現,最終可能會得到切合實際的微服務大小。

取消計劃

隨著微服務發布日子的臨近,我們的團隊發現了越來越多問題。我們做出了更多妥協,微服務帶給我們的好處也進一步消失殆盡。從開始實現微服務的第一個 sprint 開始,已經過去了四天,但我們仍然看不到什么收獲,反而問題越來越多。我們召開了一次會議,不管領導層想要什么,關于這條路是否要繼續走下去,答案都寫在每個開發人員的臉上。最終,我們取消了轉向微服務的計劃。

做什么來代替微服務?

因為之前把所有精力都放在了如何轉向微服務上,所以沒有花時間研究其他替代方案。但在放棄微服務之后,我們開始研究其他替代方案。最終,我們沒有將單體拆分成微服務,而是將它拆分成多個項目。這種拆分為我們提供了一些額外的結構,我們可以更容易地看出哪里存在耦合和重復,沒有額外的負擔,也不需要面對微服務架構中存在的問題。

此外,這種結構讓我們的領域模型變得更加清晰,能夠更容易地評估哪些部分可以被拆分成微服務。如果某些部分被證明是一個合適的微服務候選對象,這個部分就可以從單體中剝離出來,成為一個微服務。

結論

領導層決定轉向微服務,但沒有考慮到現狀和需要面對的挑戰。經過評估,我們發現微服務并不適合,我們需要做出大量妥協。這些妥協導致無法獲得微服務的好處,所以轉向微服務對我們來說是一種損失。

在決定轉向微服務時,我們并沒有評估團隊結構等非技術方面的問題。經過幾個月的調研和努力,我們最終放棄了這個想法,并用剩下的時間對“單體”進行了一些小的重構。

責任編輯:華軒 來源: 今日頭條
相關推薦

2020-01-18 09:35:03

微服務團隊架構

2024-06-24 07:58:00

2023-07-23 17:19:34

人工智能系統

2019-08-30 10:27:37

數據庫通信技術

2025-09-29 01:22:00

微服務單體架構CQRS

2023-02-27 16:24:17

架構開發數字化

2018-12-21 11:26:49

MySQLMongoDB數據庫

2024-10-07 09:00:58

2022-05-20 12:15:08

NodeJS微服務編程語言

2012-12-17 15:02:34

Linux操作系統

2021-12-29 08:30:48

微服務架構開發

2024-11-06 16:27:12

2020-04-14 10:30:04

微服務宏服務Uber

2025-02-18 08:10:00

Vue 3JavaScrip開發

2025-03-26 10:29:22

Vue3前端API

2021-07-20 08:03:43

微服務應用程序

2023-12-19 07:56:08

微服務軟件測試左移測試

2022-06-14 11:01:48

SpringBootTomcatUndertow

2020-02-13 17:49:55

SpringBoot放棄選擇

2023-09-20 11:36:47

Java 8Java 11
點贊
收藏

51CTO技術棧公眾號

人成免费在线视频| 久久99久久99精品| 国产精品一区二区黑人巨大| 欧美日韩一区二区三区四区在线观看| 精品国产一区二区三区不卡| 六月丁香婷婷激情| 香蕉视频在线看| 丰满放荡岳乱妇91ww| 欧美亚洲成人精品| 尤物在线免费视频| 午夜a一级毛片亚洲欧洲| 欧美无砖专区一中文字| 97干在线视频| 日本在线观看www| gogogo免费视频观看亚洲一| 国产精品爽爽爽爽爽爽在线观看| 国产亚洲欧美精品久久久www| 国内黄色精品| 亚洲国产精品yw在线观看 | 成全电影播放在线观看国语| 国产一区二区三区在线观看免费 | 亚洲精品一区中文字幕乱码| 国产欧美激情视频| 亚洲一区站长工具| 一区二区日韩电影| 永久免费精品视频网站| 免费一级在线观看播放网址| 国产成人精品免费一区二区| 国产精品自拍偷拍| 最新中文字幕一区| 国产一区二区三区四区老人| 国产亚洲美女精品久久久| 亚洲av人人澡人人爽人人夜夜| 韩日精品一区| 疯狂欧美牲乱大交777| www插插插无码免费视频网站| 最新国产在线观看| 91麻豆6部合集magnet| 操一操视频一区| 国产日韩在线观看一区| 精品一区二区三区免费观看| 国产精品福利在线观看网址| 精品不卡一区二区| 国产精品免费看| 91国产美女在线观看| 免费一级黄色大片| 欧美另类视频| 欧美人与物videos| 欧美日韩国产精品综合| 91精品在线观看国产| 色噜噜国产精品视频一区二区| 国产精品815.cc红桃| 亚洲婷婷伊人| 亚洲欧洲日产国产网站| 精品人妻少妇嫩草av无码| 欧美巨大xxxx| 亚洲美女动态图120秒| 91精品小视频| 自拍偷拍欧美一区| 国产亚洲福利一区| 能直接看的av| 国产精品videosex性欧美| 深夜福利一区二区| 日韩一级片大全| 一本一道久久综合狠狠老| 久久久精品中文字幕| 黄色片在线观看网站| 女人天堂亚洲aⅴ在线观看| 不卡毛片在线看| 久久免费公开视频| 国产视频久久| 国产精品普通话| 国产又黄又大又爽| 丁香网亚洲国际| 精品亚洲第一| aaa在线观看| 亚洲精品亚洲人成人网在线播放| www.日本在线视频| 在线中文字幕播放| 欧美在线短视频| 宇都宫紫苑在线播放| 国产精品115| 亚洲欧美国产日韩中文字幕| 超碰人人人人人人人| 亚洲综合自拍| 欧美中文字幕视频| 91禁在线观看| 白白色亚洲国产精品| 日韩欧美视频一区二区| 成人在线网址| 色综合中文字幕| 欧美又黄又嫩大片a级| 国偷自产视频一区二区久| 国产午夜精品一区理论片飘花| 999福利视频| 99xxxx成人网| 国产专区欧美专区| 亚洲三区在线观看无套内射| 国产精品久久久久久妇女6080| 国产欧美久久久久| 日本精品在线一区| 亚洲国产精品99| 在线观看美女av| 午夜一区在线| 91传媒视频免费| 精品无吗乱吗av国产爱色| 一区二区三区波多野结衣在线观看| 欧美日本视频在线观看| 91精品视频一区二区| 国产婷婷成人久久av免费高清| 人与动物性xxxx| 裸体一区二区| 国产精品入口免费| 欧美成人三区| 在线免费亚洲电影| 亚洲久久久久久| 久久久久国产精品| 国产精品三级美女白浆呻吟 | 国产亚洲欧洲在线| 中文字幕一区二区三区手机版| 美女爽到高潮91| 麻豆精品视频| 变态调教一区二区三区| 在线成人av网站| 国产三级av在线播放| 亚洲激情黄色| 操人视频欧美| 青春草视频在线观看| 9191国产精品| 中文字幕求饶的少妇| 日韩一区精品字幕| 免费久久一级欧美特大黄| 日韩av毛片| 日韩免费电影一区| 欧美性x x x| 久久国产精品一区二区| 日韩欧美第二区在线观看| 在线观看v片| 亚洲高清福利视频| 日日碰狠狠添天天爽| 三级精品在线观看| 欧美日韩国产精品一卡| 中文在线а√在线8| 亚洲成人免费网站| 精品午夜福利在线观看| 国产成人aaaa| 亚洲 自拍 另类小说综合图区| 天堂久久av| 欧美激情欧美激情在线五月| 国产高清在线免费| 一区二区理论电影在线观看| 无码人妻丰满熟妇区毛片蜜桃精品| 婷婷亚洲最大| 91九色蝌蚪成人| 中文国产字幕在线观看| 欧美成人一区二区三区| 欧美色图亚洲天堂| 成人午夜在线视频| 欧日韩免费视频| 欧美色资源站| 日韩免费不卡av| 粉嫩av一区| 欧美日本在线观看| 放荡的美妇在线播放| 国产成人小视频| 免费一级特黄毛片| 最新国产精品视频| 国产精品久久婷婷六月丁香| 免费网站免费进入在线| 欧美一区二区观看视频| 国产第100页| 99精品欧美一区二区三区小说| 国产日韩一区二区在线| 欧美日韩第一| 亚洲最大成人在线| а√天堂中文在线资源8| 日韩精品极品视频免费观看| 性高潮视频在线观看| 亚洲欧美一区二区不卡| 在线观看免费视频黄| 老**午夜毛片一区二区三区 | 欧美三级日韩三级国产三级| 麻豆明星ai换脸视频| 成人黄色综合网站| 人妻无码视频一区二区三区| 91嫩草亚洲精品| 国产精品污www一区二区三区| 超碰超碰人人人人精品| 精品国产一区二区在线| 黑人操亚洲女人| 欧美伊人精品成人久久综合97| 国产suv一区二区三区| 91在线观看高清| 亚洲一级片av| 免费日韩一区二区| 欧美aaa在线观看| 思热99re视热频这里只精品 | 国产精品怡红院| 欧美日韩另类在线| 91杏吧porn蝌蚪| 久久久不卡网国产精品一区| 男人添女人荫蒂国产| 老司机一区二区三区| 国产成人免费高清视频| 精品中文一区| 国产精品久久久久久久久久久久午夜片| 成人小电影网站| 九九精品视频在线| 91社区在线观看播放| 亚洲国产精品成人av| 国产婷婷在线视频| 欧美主播一区二区三区| 日韩女优在线观看| 一区二区在线观看视频在线观看| 亚洲国产无码精品| 懂色一区二区三区免费观看| 中文字幕22页| 日韩激情在线观看| 18禁免费观看网站| 一本一道久久a久久精品蜜桃| 视频一区视频二区视频三区视频四区国产 | 欧美zzoo| 亚洲国产精品成人一区二区| 99久久久久久久| 欧美日韩国产精品成人| 高潮毛片又色又爽免费| 香蕉影视欧美成人| 欧美黑人一级片| 亚洲色图视频网| 欧美自拍偷拍网| 国产欧美精品日韩区二区麻豆天美| 亚洲熟女乱综合一区二区三区| 国产另类ts人妖一区二区| 在线观看国产福利| 蜜桃91丨九色丨蝌蚪91桃色| 国产男女激情视频| 午夜一级在线看亚洲| 北条麻妃在线视频观看| 一本色道久久综合亚洲精品高清| 国产成人一区二区三区别| 欧美性色综合| 国产免费一区二区视频| 影音先锋久久久| 日韩小视频网站| 国产欧美综合一区二区三区| 日本国产在线播放| 亚洲影音一区| 国产欧美高清在线| 日韩成人av影视| 中文字幕在线导航| 久久精品国产第一区二区三区| 亚洲36d大奶网| 激情深爱一区二区| 中文字幕人妻无码系列第三区| 国产乱码一区二区三区| 亚洲最大视频网| zzijzzij亚洲日本少妇熟睡| 玖草视频在线观看| 久久久久九九视频| 九九九视频在线观看| 国产精品麻豆久久久| 91久久国产综合| 亚洲人成精品久久久久| 久久久久久国产精品视频| 亚洲超碰精品一区二区| 天天操夜夜操视频| 欧美三级电影在线看| 国产精品无码在线播放| 亚洲成成品网站| 可以直接在线观看的av| 中文字幕一区二区精品| 色屁屁www国产馆在线观看| 97视频在线观看免费高清完整版在线观看| 国产拍在线视频| 国产精品久久久久秋霞鲁丝| 玖玖玖电影综合影院| 精品国产二区在线| 精品一区二区三| 亚洲成人动漫在线| 亚洲神马久久| 国产探花在线看| 成人免费视频caoporn| 成人片黄网站色大片免费毛片| 国产精品久久久久精k8 | 国产日韩欧美一区| 视色视频在线观看| 国产精品一区二区在线播放| 美女久久久久久久久| 国产精品伦一区| 国产无遮挡又黄又爽又色| 欧美调教femdomvk| 成人无码一区二区三区| 中日韩美女免费视频网站在线观看| 超鹏97在线| 欧美一区在线直播| 亚洲精品一区国产| 日韩欧美一区二区视频在线播放| 亚洲精品小说| 黄色免费观看视频网站| 国内久久婷婷综合| 黄色aaa视频| 亚洲午夜免费电影| 国产一区二区三区在线观看| 亚洲精品美女久久久| www.久久ai| 国产精品xxxxx| 日韩高清影视在线观看| 免费国产成人看片在线| 日本少妇一区二区| 污污内射在线观看一区二区少妇| 国产精品理论片在线观看| 久久一区二区三区视频| 日韩免费高清av| 婷婷视频在线| 国产精品成人播放| 亚洲aaa级| 男人的天堂狠狠干| 国产精品77777竹菊影视小说| 少妇一级黄色片| 狠狠躁夜夜躁久久躁别揉| 亚洲欧美激情在线观看| 久久久999精品免费| 国产69精品久久久久9999人| 欧美激情导航| 亚洲久久成人| 国产黑丝在线观看| 一区二区三区在线免费视频| 国产永久免费视频| 丝袜亚洲欧美日韩综合| 视频在线日韩| 欧美最大成人综合网| 免费亚洲网站| 不卡一区二区在线观看| 精品久久在线播放| 日韩在线无毛| 秋霞午夜一区二区| 欧美极品中文字幕| 欧在线一二三四区| 国产日韩欧美精品一区| 久久久久在线视频| 亚洲性线免费观看视频成熟| 三上悠亚一区二区| 日韩精品电影网站| 日韩成人精品在线观看| 欧美三级视频网站| 欧美人与z0zoxxxx视频| 日韩伦理在线电影| 91精品久久久久久久久久久久久| 国产国产精品| 波多野结衣三级视频| 婷婷成人激情在线网| 无码国产精品一区二区免费16| 91精品国产色综合| 亚洲免费专区| 国产小视频精品| 中文字幕日韩欧美一区二区三区| 一级黄色片在线播放| 久久亚洲国产精品| 亚洲一区二区免费在线观看| 成人免费性视频| 久久一二三国产| 中文在线字幕免费观| 俺去亚洲欧洲欧美日韩| 日本少妇精品亚洲第一区| 日韩精品一区在线视频| 91美女在线视频| 中文字幕久久久久| 久热精品视频在线免费观看| 大陆精大陆国产国语精品| 国产91在线免费| 国产精品狼人久久影院观看方式| 国产免费高清视频| 69av视频在线播放| 日本一区二区高清不卡| 成人欧美精品一区二区| 欧美性猛交xxxx久久久| 麻豆av在线导航| 国产日韩一区二区三区| 视频一区欧美日韩| 国产盗摄一区二区三区在线| 国产视频精品久久久| 天天综合91| 自拍日韩亚洲一区在线| 中文字幕精品在线不卡| 性少妇videosexfreexxx片| 日本中文字幕成人| 亚洲国产精品久久久久蝴蝶传媒| 亚洲激情 欧美| 欧美喷水一区二区| 国产极品在线观看| 一级二级三级欧美| gogo大胆日本视频一区| 97人人爽人人爽人人爽| 97在线看福利| 91精品福利| 在线免费观看视频| 亚洲高清在线观看| 亚洲人成777| 日韩手机在线观看视频| 亚洲一区在线电影|