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

多云架構落地設計和實施方案

新聞 架構
本文以實際項目案例為例,分析項目的架構設計、實施步驟,以及多云架構面臨的挑戰和機遇。

“不要把雞蛋放在同一個籃子里”是一條知名的商業準則,在云平臺選擇上,很多公司也遵循這樣的準則。基于多云平臺構筑“業務中臺”并不是一件簡單的事情,需要構建一種快速繼承、可持續迭代的路徑,幫助整體方案落地。本文以實際項目案例為例,分析項目的架構設計、實施步驟,以及多云架構面臨的挑戰和機遇。

總體思路  

不同云廠商提供的云服務不盡相同,相同的云服務在功能、性能上也會有或多或少的差異。越是深度使用某個云廠商的云服務,越是難于遷移到其他云廠商。選擇自己構建云服務,則技術門檻,維護成本很高。確定多云架構以后,首先需要在技術棧的選型上做好折中。一個基本的原則是通過業務架構的靈活性,去適配不同的云廠商,盡可能的使用云廠商提供的優秀特性,提升運行于該云平臺的業務系統的可靠性,提升整體業務的競爭力。

上面的思路和一些客戶常見的思路有顯著差別。有些客戶選擇采用開源軟件,搭建自己的 PaaS 平臺;有些客戶則完全采用云廠商的技術棧,開發兩套業務系統。這兩種方式是兩個極端,前者開發和運維難度高,往往由于技術風險評估不足,項目無法如期交付,或者產品競爭力太弱,沒有云廠商提供的服務好。后者則需要維護兩套系統,代碼重復度高,還會被云廠商完全綁定,失去談判的籌碼,業務發展靈活性降低。還有些客戶期望云廠商提供足夠兼容性的框架支持,在不改造現有業務系統的邏輯的情況下實現多云部署,云廠商這方面的努力通常由于客戶系統的復雜性和多樣性得不到落地。

開發框架選擇和架構設計  

開發框架設計是多云架構的核心,也是抽象程度最高的部分。華為云主推 ServiceComb 作為微服務框架,阿里云主推 HSF、Dubbo 作為微服務框架,其他國外的云廠商,多數選擇 Spring Cloud 作為微服務框架,另外還有其他不同的語言和框架選擇。雖然 mesher 等技術為多語言協同工作提供了良好的支持,但是為了最大限度的利用框架特性,幫助快速構建穩定可靠的業務系統,選擇一個微服務開發框架仍然是必不可少的。

基于總體思路,多云架構期望在華為云上使用 ServiceComb 運行時,在阿里云上使用 HSF 運行時,并且支持 Spring Cloud 運行時。完成這個目標,首先需要對微服務運行框架的運行時和主要組成部分有所了解。對于多數中臺系統,對于框架運行時的依賴,一般都是 RPC 框架,以及基于 RPC 框架做的服務治理能力,包括服務注冊發現、熔斷容錯、限流等機制。將業務邏輯核心代碼,與微服務框架能力進行解耦,是設計的第一步。

多云架构落地设计和实施方案

上面的圖形展現了基本的邏輯架構。

業務核心:技術選型上使用 Spring、Spring Boot。ServiceComb、HSF 和 Spring Cloud 等微服務框架的技術底座,都可以基于 Spring、 Spring Boot 技術棧來構建。

在邏輯架構下,需要將微服務代碼進行分層,包含下面三個主要目錄:

  • microservice-api:定義微服務的接口。該目錄包含接口定義(interface)、數據結構定義(models)。為了支持不同的微服務框架,對于接口定義和數據結構定義會有一定的要求。
  • microservice-service:業務邏輯實現代碼。
  • microservice-endpoint-servicecomb:發布為 ServiceComb 的微服務項目。
  • microservice-endpoint-hsf:發布為 HSF 的微服務項目。
  • microservice-endpoint-springcloud:發布為 Spring Cloud 的微服務項目。

這個代碼分層實施的核心關鍵是 api 設計,以及業務邏輯實現和服務發布解耦。api 設計需要滿足不同的微服務框架的設計要求。這里涉及到 RPC 編解碼的基礎。RPC 編解碼通常分為語言無關(跨平臺)和語言相關(不跨平臺)。比如 HSF、Dubbo 的缺省編解碼是語言有關的,只能夠支持 JAVA 程序之間的通信,ServiceComb 缺省采用 Jackson 編解碼,或者 protobuffer 編解碼,這兩種方式都基于 Open API 2.0 進行定義,可以做到語言無關,Spring Cloud 則相對復雜一些,它是一種混合型的編碼格式,可以通過靈活的序列化定制,滿足多樣性需要,也可以嚴格遵循 Jackson 和 Open API 標準。通常語言無關的編解碼可以完全包含語言無關的編解碼要求,因此 api 定義的時候,需要做到語言無關,才能夠保證 api 能夠在不同的微服務開發框架下得到最好的實現。基于本文是描述工程實踐,不詳細探討關于跨平臺設計的原理,下面列出一些接口設計的準則:

  • 使用簡單的類型(比如 Integer, String, Boolean 等)定義參數或者返回值。或者使用包含簡單類型的,符合 Java Bean 規范的 POJO Bean 定義參數或者返回值。
  • 盡可能不使用 interface, abstract class, 存在多個實現的基類,模板類作為參數或者返回值。
  • 不使用運行環境強相關的對象作為接口參數或者返回值。比如 HttpServletRequest,RpcContext,InvocationContext,ResonseEntity 等。

上面的原則從使用者的視角來看,是非常容易理解的。接口語義清晰,沒有歧義,直接通過接口定義就能夠理解接口的參數個數以及如何傳遞,不需要提供額外的文檔或者查看源代碼。有利于通過接口定義生成文檔、swagger 定義。

在實際項目中,開發者需要理解 microservice-api 是微服務之間的接口定義,接口設計需要考慮數據的序列化和反序列化。這個不同于內部接口設計。為了降低業務實現邏輯的重復度,增強內聚性,內部接口設計會更多的使用抽象、繼承進行邏輯封裝。內部接口的數據結構,還會包含一些額外的控制邏輯。比如數據庫訪問層的數據結構,提供懶加載等機制,當訪問到 getter 方法的時候,實際上調用的是代理對象的 getter 方法。因此,需要有一些數據結構轉換邏輯,將內部的數據結構轉換為外部接口的數據結構,以保持服務之間接口和內部接口的界限清晰,防止將內部數據結構作為參數或者返回值,導致內部信息泄露,造成不可預期的處理結果。

api 示例

  1. interface LoginService { 
  2.   SessionInfo   login(String username, String password); 
  3.  
  4.  
  5. public class SessionInfo { 
  6.   private String   sessionId; 
  7.   private String   username; 

 service 示例

  1. @Service  
  2.   
  3. @Primary  
  4.   
  5. public class LoginServiceImpl implements LoginService {  
  6.   
  7.   public SessionInfo   login(String username, String password) {  
  8.   
  9.          // do login  
  10.   
  11.   }  
  12.   
  13. }  

ServiceComb Endpoint 示例

服務端:

  1. @RpcSchema(schemaId = “LoginServiceEndpoint”) 
  2. public class LoginServiceEndpoint implements LoginService   { 
  3.   @Autowired 
  4.   private   LoginService service; 
  5.  
  6.  
  7.   public SessionInfo   login(String username, String password) { 
  8.          return   service.login(username, password); 
  9.   } 
  10.  
  11.  

客戶端:

  1. @Bean 
  2. public LoginService getLoginService() { 
  3.   return   Invoker.createProxy(SERVICE_NAME, "LoginServiceEndpoint", LoginService.class); 

或者

  1. @RpcReference(microserviceName=SERVICE_NAME, schemaId=”LoginServiceEndpoint”) 
  2. private LoginService loginService; 

HSF Endpoint 示例

服務端:

  1. @HSFProvider(serviceInterface = LoginService.class,serviceVersion   = "1.0.0")  
  2. public class LoginServiceEndpoint implements LoginService   {  
  3.   @Autowired  
  4.   private   LoginService service;  
  5.   
  6.   
  7.   public SessionInfo   login(String username, String password) {  
  8.          return   service.login(username, password);  
  9.   }  
  10.   
  11.   
  12. }  

客戶端:

  1. @HSFConsumer 
  2. private LoginService loginService; 

從上面的代碼示例看,Endpoint 層需要做到盡可能邏輯簡單,實現邏輯全部交給 Service 層,只包含接口聲明,或者包含必要的數據結構轉換邏輯。上面的方式演示了 RPC 的接口聲明,還可以加上 REST 標簽(Spring MVC,或者 JAX RS),來支持 REST 接口。

遺留系統的改造策略  

大部分公司都會存在現有系統運行于某一個云上,把現有系統推倒重來,進行全新設計,通常不是一個好主意。遺留系統的改造需要遵循持續迭代,繼承性改造的思路。

以阿里云系統改造為華為云系統為例,將原來基于 HSF 開發的微服務應用改造為基于 ServcieComb 開發的微服務應用。

按照前面的總體思路,首先需要將原來項目強依賴于 HSF 的代碼部分分離出來,建立下面的目錄結構:

  • microservice-api:定義微服務的接口。該目錄包含接口定義(interface)、數據結構定義(models)。為了支持不同的微服務框架,對于接口定義和數據結構定義會有一定的要求。
  • microservice-service:業務邏輯實現代碼。
  • microservice-endpoint-hsf:發布為 HSF 的微服務項目。

這個過程相對而言是簡單的,不涉及任何業務邏輯的調整,只是代碼目錄結構的變化和 POM 依賴關系的調整。調整完成后,可以對現有功能進行簡單自動化驗證,保證項目自動化測試用例能夠通過。調整后的項目功能和遺留系統是一致的,擁有一個始終無損的運行系統,對于功能比較、問題發現都是非常有幫助的。

項目調整后,就可以增加華為云的項目:

  • microservice-endpoint-servicecomb:發布為 ServiceComb 的微服務項目。

這個項目可以復制 microservice-endpoint-hsf,將 POM 依賴改為 ServiceComb 的內容,并將發布的接口(Endpoint)調整為 ServiceComb 的發布方式。

項目調整后,就可以一份代碼構建出兩個可執行 jar 包,兩個 jar 包分別在華為云和阿里云部署。

這個過程的工作量需要通過原來代碼本身的復雜度、api 接口的規范性、代碼規模等進行評估。如果原來代碼結構復雜,api 定義不規范,工作量會顯著增加。對于良好組織的代碼,這個過程則會非常容易。實際改造的一些項目,有些一天時間即可完成,有些則花費了一、兩個月時間。獲取到產品的業務結構、代碼規模和通過簡單的識別現有代碼的技術棧和開發方式,能夠幫助有效的評估工作量。

遺留系統改造的核心工作在于 microservice-api 中接口定義的梳理。由于 HSF 不是一個跨語言的開發框架,因此在接口定義里面使用的數據結構 ServiceComb 可能存在不支持的情況。采用一個支持跨語言的框架的接口定義作為基準(一般的,可以將接口定義通過 IDL、WSDL 或者 Open API 描述的接口定義,比如 gRPC、WebService、ServiceComb,),其他框架都實現這個接口,是微服務架構適配的核心關鍵。

數據庫適配  

業務系統都會使用數據庫。各個云廠商支持的數據庫形式多樣,有 MySQL、Postgre、Oracle 等,此外還有分布式數據庫,以及分庫分表等特性,數據倉庫支持等。雖然在連接池管理、事務管理、ORM 框架等方面有大量的開源開發框架,比如 dbcp、spring transaction、MyBatis 等,它們仍然沒法覆蓋所有的應用場景。適配多云架構對于業務代碼開發有如下建議:

盡可能使用符合 ANSI SQL Standard 的 SQL 語句。比如 MySQL 在大小寫、Column 引用、Limit、Group by 語句等方面都有自己的特殊用法。為了更好的適配多云數據庫,應該避免使用特殊用法,除非對于業務價值具備明顯的價值,而且沒有對等的解決方案。

選用一個被廣泛采用的 ORM 框架。比如 MyBatis、JPA 等。這些框架被廣泛支持,對于多數據庫支持得到比較充分的驗證。在使用數據庫有差異的地方,提供了非常良好的擴展機制。比如使用 MyBatis,可以使用 DatabaseProvider 接口,來屏蔽語法差異。在使用 JDBC 或者 JDBCTempate 拼接 URL 的地方,則可以通過接口的不同實現,返回不同的 SQL 語句。

  1. <if   test="_databaseId == 'mysql' "
  2. limit   #{stratRow},#{rowCount} 
  3. </if
  4. <if   test="_databaseId == 'postgresql' "
  5. limit   #{rowCount} offset #{stratRow} 
  6. </if

分布式數據庫、分庫分表、分析型數據庫對于業務開發存在不同的限制。比如對于唯一索引使用的限制、對于分庫分表鍵的修改限制等。對于這些場景,盡可能符合這些限制,調整業務實現方式,避免為了滿足某個不重要的場景需要,陷入一些分布式場景無法解決的問題當中去,而無法適配其他云廠商的數據庫。

緩存適配  

各個廠商均支持 Redis 作為緩存,但是在 Redis 發展路徑上,有不同的分支。一個分支是 Proxy 集群模式,一個分支是 Redis 的原生集群方式。Redis 提供的客戶端 API 也存在兩套,一個是 Jedis,一個是 JedisCluster,兩套支持的命令集合不盡相同。比如 Proxy 集群模式能夠非常好的支持所有的 Jedis 命令,而 Redis 的原生集群方式只支持 JedisCluster 命令。很多客戶常用的 pipeline 指令,在 Redis 原生集群方式下不支持。

Proxy 集群能夠更好的屏蔽底層服務的差異,在沒有特殊需要的情況下,建議用戶使用 Proxy 集群模式,云廠商需要通過 Proxy 集群模式提供對于 Jedis 不同指令的支持。用戶也可以選擇 Redis 的原生集群,這個在不同的云產生也都提供了支持,用戶可以在業務場景上避免使用原生集群不支持的命令,這樣就可以在多云環境上部署。

總結起來,緩存的多云支持的最佳實踐:及時升級 Client API 版本,使用比較新的 Client API,并且只使用 JedisCluster 提供的指令集合。

消息中間件適配  

相對于數據庫和緩存,消息中間件的適配的標準性更弱一點。雖然早期 JAVA 提出了 JMS 等標準,但是目前主流的消息中間件都沒有提供 JMS 接口的實現。阿里的 RocketMQ、華為基于 Kafka 的 DMS 的接口均不一致。而且消息中間件的服務質量并不一樣,比如在消息有序投遞、重復投遞等方面是通過消息中間件配置提供的,而不受客戶端接口控制。有些客戶的業務邏輯依賴于特定消息中間件的機制,因此需要對消息中間件使用的接口、接口行為進行抽象,分析其他云廠商的中間件能否提供對應的接口實現并滿足對應的服務質量要求,有時候需要業務代碼做一些補償,以彌補不同中間件服務質量的差異。

其他中間件適配  

其他中間件包括日志服務器、定時任務服務、對象存儲服務等等。適配的總體思路一致,這里不詳細描述里面的細節。

多云架構的挑戰和建議  

和做協議標準一樣,多云架構除了給客戶帶來商業上的靈活性,還會促進業務系統軟件架構的改善,提升整體的軟件質量。因為多云架構需要對使用的技術點進行權衡,技術選型上更多采用相對中立和標準的方案,這些方案被廣泛驗證,相對于使用一些私有特性來說,更加穩定,同時可以促進項目開發人員之間的技術交流和能力繼承。在給客戶做多云架構落地的實踐中,通過架構交流,幫助客戶梳理了整體的架構演進方向,還發現了很多歷史問題,對于客戶的代碼質量提升起到了很大作用。

多云架構也面臨特別多的挑戰。首先是短期內企業維護成本的增加和技術成本的增加,需要投入專家解決前期的架構適配問題,為系統持續演進搭好框架。多云系統運行,還會增加業務數據同步,不同云上系統如何進行協同的問題。只有當客戶多云系統相對獨立,沒有數據共享和業務交互的場景才比較簡單。多云系統還會影響到客戶的交付效率,不同云的持續交付方式存在較大的差異,運維人員的體驗不同,會降低日常的效率。

因此,多云架構更多的是準備“備胎”,客戶的主要業務還是以單一云廠商提供。多云架構給客戶對比不同云廠商的服務質量提供了非常準確的參考,客戶能夠更加準確的選擇優質的供應商。

微服務框架層的抽象是做多云架構最難抽象的部分,也是多數開發者最難把握的一層。ServiceComb 微服務開發框架作為參考接口規范,可以非常好的適配到 HSF、Spring Cloud 等框架。在接口定義的時候,可以采用它作為基線,先測試 ServiceComb,再測試 HSF 和 Spring Cloud 等適配,對于新接口開發、歷史系統遷移都是一個非常好的中間產品。

 

 

 

 

責任編輯:張燕妮 來源: 微服務蜂巢
相關推薦

2012-10-17 14:17:21

SAN網絡布線

2009-10-22 12:58:45

校園綜合布線系統

2009-12-31 09:19:19

2021-04-22 20:34:54

Kubernetes云架構安全

2011-08-18 13:30:09

組網交換機路由器

2011-06-07 14:15:01

jQuery

2013-08-22 09:12:12

2009-10-20 12:48:00

家庭網絡綜合布線

2010-03-16 13:41:09

Python進程

2010-01-04 15:13:27

交換機SNMP配置命令

2018-10-24 14:17:45

云存儲策略數據

2017-11-02 15:01:14

多云云計算云平臺

2023-05-12 08:06:46

Kubernetes多云架構

2022-07-05 10:16:07

多云云安全

2012-05-15 10:14:19

寬帶中國寬帶接入

2010-07-23 16:16:26

SQL Server

2021-02-24 09:39:03

架構系統技術

2015-02-05 17:01:27

2010-03-10 11:26:34

2009-04-08 09:52:00

HomePNA寬帶接入
點贊
收藏

51CTO技術棧公眾號

国产成人精品亚洲线观看| 欧美在线激情| www.99热这里只有精品| www.99re6| 国产精品电影| 欧美日韩色图| 亚洲成人自拍一区| 91人人爽人人爽人人精88v| 国产黄色网址在线观看| 成年网站在线视频网站| 激情综合色丁香一区二区| 一本色道久久88综合亚洲精品ⅰ| heyzo亚洲| 国产精品久久久久久久龚玥菲| 激情亚洲网站| 日韩欧美一级二级三级| 伊人久久大香线蕉精品| 免费黄色av片| 国产精品亚洲人成在99www| 午夜激情久久久| 国产一区二区三区四区hd | www国产成人免费观看视频 深夜成人网| 色噜噜久久综合伊人一本| 成年人小视频网站| 亚洲成人777777| 中文字幕午夜精品一区二区三区 | 久久先锋影音av| 91精品国产沙发| 天堂www中文在线资源| 91豆花视频在线播放| caoporen国产精品视频| 97在线看免费观看视频在线观看| 国产污在线观看| аⅴ资源天堂资源库在线| 国产精品麻豆一区二区| 成人精品视频在线| 欧美性猛交xxxxx少妇| 人人九九精品视频| 亚洲成人激情综合网| 正在播放一区二区三区| 国产鲁鲁视频在线观看免费| 成人激情小说网站| 777国产偷窥盗摄精品视频| 精品人妻伦九区久久aaa片| 日本一区二区乱| 欧美日韩国产免费| 天天做天天躁天天躁| 四虎在线视频免费观看| 日韩av一级电影| 久久久精品2019中文字幕神马| 肉丝美足丝袜一区二区三区四| 国产精品一区二区日韩| 国产精品久久久久一区二区三区 | 少妇高潮一区二区三区99小说| 国产成人综合亚洲91猫咪| 久久久久久久久久久久av| 捆绑裸体绳奴bdsm亚洲| 成人啊v在线| 亚洲欧洲成人精品av97| 国产美女精品久久久| 久久狠狠高潮亚洲精品| 欧美手机在线| 亚洲精品在线免费观看视频| 激情婷婷综合网| 香蕉视频亚洲一级| 一级做a爱片久久| 日韩欧美三级电影| 成人毛片在线免费观看| 日韩成人av影视| 欧美激情乱人伦| 1024手机在线观看你懂的| 亚洲码欧美码一区二区三区| 欧美性高潮在线| avove在线观看| 人成免费电影一二三区在线观看| 精品一区二区综合| 欧美孕妇毛茸茸xxxx| 亚洲国产精品久| 极品尤物久久久av免费看| 91精品成人久久| 中文字幕在线看人| 伊人久久亚洲美女图片| 91爱爱小视频k| 免费黄色片视频| 91久久黄色| 草民午夜欧美限制a级福利片| 无码人妻精品一区二区三区温州| 免费观看性欧美大片无片| 欧美在线啊v一区| 熟女少妇在线视频播放| 在线中文字幕视频观看| 国产精品视频线看| 强开小嫩苞一区二区三区网站| 国内在线免费视频| 91久久精品国产91性色tv| 欧美精品久久久久久久自慰| 免费在线视频欧美| 国产日韩三级在线| 久久综合伊人77777麻豆| www.日本在线观看| 久久精品99国产精品| 欧亚精品中文字幕| 日韩高清免费av| 黄色成人av网站| 欧美成人午夜激情| 欧美 日韩 国产 一区二区三区| 精品理论电影在线| 欧美大片在线免费观看| chinese国产精品| 国产精品99久| 茄子视频成人在线观看 | 黄色小视频免费观看| 国产亚洲污的网站| 18禁裸男晨勃露j毛免费观看| 亚乱亚乱亚洲乱妇| 国产精品美女久久久久久久久久久| www.亚洲一区二区| 欧美性xxx| 亚洲精品一区二区三区精华液| 波多野在线播放| 精品理论电影| 66m—66摸成人免费视频| ,一级淫片a看免费| 国产麻豆午夜三级精品| 91欧美精品午夜性色福利在线| 四虎影视在线观看2413| 26uuu成人网一区二区三区| 久久国产精品免费观看| 青春草视频在线观看| 亚洲成在线观看| www.国产福利| 99精品中文字幕在线不卡 | 国产精品成人aaaaa网站| 中文字幕免费高清网站| 不卡欧美aaaaa| 成人在线视频一区二区三区| 成人三级高清视频在线看| 欧美日韩小视频| 中文写幕一区二区三区免费观成熟| 伊人久久大香线蕉av超碰| 久久精品99久久久久久久久| 中文字幕免费高清在线观看| 精品在线播放免费| 午夜老司机精品| 欧美理论片在线播放| 9191精品国产综合久久久久久| 日本一级大毛片a一| 要久久爱电视剧全集完整观看| 中文字幕在线视频日韩| 538任你躁在线精品视频网站| 麻豆视频观看网址久久| 亚洲精品一区二区三区蜜桃久| 中文字幕中文字幕在线十八区| 欧美日韩一级黄| 三级黄色在线观看| 亚洲毛片视频| 久草热久草热线频97精品| 1769在线观看| 午夜精品一区二区三区电影天堂 | 久久好看免费视频| 91无套直看片红桃| 亚洲视频一区二区在线| 欧美一区二区中文字幕| 欧美五码在线| 精品国内亚洲在观看18黄| 中文字幕一区二区人妻| 中文字幕在线不卡国产视频| 全黄性性激高免费视频| 青青一区二区| 日韩av色综合| 性欧美一区二区三区| 亚洲最大成人综合| 亚洲成av人片在线观看无| 亚洲欧美高清| 丁香五月网久久综合| av黄色在线观看| 欧美一级二级三级蜜桃| 免费成人深夜天涯网站| 久久国产欧美日韩精品| 国产一级大片免费看| 高清日韩中文字幕| 日韩女在线观看| 成人在线app| 欧美专区亚洲专区| 强迫凌虐淫辱の牝奴在线观看| 久久精品123| 精品国产乱码一区二区三区四区| 黄色av电影在线观看| 日本韩国一区二区三区视频| 亚洲精品国产精品国自| 国产69精品久久777的优势| 亚洲第一页在线视频| 欧美韩国亚洲| 久国内精品在线| 国产三级三级在线观看| 国产精品污www在线观看| 妞干网在线免费视频| 97人人精品| 国产日韩欧美在线视频观看| 国产中文字幕在线播放| 色94色欧美sute亚洲线路一久| 国产又粗又猛又爽又黄的视频小说| 国产成人午夜片在线观看高清观看| 777精品久无码人妻蜜桃| 天天做天天爱天天爽综合网| 国产精品视频在线播放| 国产51人人成人人人人爽色哟哟 | 欧美日韩在线观看视频小说| 成人xxxxx色| av电影免费在线看| 中文字幕免费精品一区| 人妻无码中文字幕| 午夜精品久久久久影视| 亚洲欧美卡通动漫| 国产午夜亚洲精品不卡| 美女扒开腿免费视频| 激情图片小说一区| 已婚少妇美妙人妻系列| 亚洲高清激情| 日本一二三区视频在线| 日韩黄色大片| 91中文字幕在线| 日韩少妇视频| 亚洲国产精品成人一区二区| 久久久久久久久影院| 国产亚洲福利社区一区| 一边摸一边做爽的视频17国产| 精品午夜一区二区三区在线观看| aaa毛片在线观看| 亚洲免费观看| 天堂资源在线亚洲视频| 欧美黑白配在线| 成人欧美视频在线| 国产一区精品二区| 国产69精品久久久久9999| 天天干,夜夜爽| 日韩精品一区二区三区中文精品| 国产一区二区网站| 欧美日韩视频在线第一区| 69av视频在线观看| 日本精品一区二区三区高清| 在线视频一区二区三区四区| 天天综合网 天天综合色| a资源在线观看| 久久久久免费观看| 午夜啪啪小视频| 久久精品久久精品| 黄色手机在线视频| 精品成人免费| 欧洲精品在线播放| 亚洲高清激情| 日韩avxxx| 亚洲香蕉av| av磁力番号网| 欧美不卡高清| 日韩福利一区二区三区| 精品av一区二区| 亚洲欧洲一区二区| 99久精品视频在线观看视频| 一区二区三区三区在线| 麻豆成人入口| 91精品啪aⅴ在线观看国产| 4438五月综合| 国产v综合v亚洲欧美久久| 欧美日韩经典丝袜| 久久久中精品2020中文| 松下纱荣子在线观看| 欧美另类暴力丝袜| 久久不射影院| 欧美综合国产精品久久丁香| 日韩电影网站| 91麻豆桃色免费看| 国语一区二区三区| 日韩激情久久| 女主播福利一区| 免费无遮挡无码永久视频| 爽好多水快深点欧美视频| 女人帮男人橹视频播放| 国产亚洲激情| 东北少妇不带套对白| 国产精品亚洲欧美| 色www免费视频| 久久综合亚州| 精品亚洲视频在线| av在线免费不卡| 免费一级特黄3大片视频| 亚洲精选视频免费看| 蜜桃av.com| 亚洲一区二区不卡免费| 九九精品视频免费| 亚洲成av人片在线观看无码| 五月婷婷激情视频| 日韩欧美一区二区久久婷婷| 四虎在线视频| 久久国产精彩视频| 国模一区二区| 成人在线资源网址| 日韩国产专区| 亚洲自偷自拍熟女另类| 精久久久久久久久久久| 日本免费福利视频| 亚洲乱码国产乱码精品精98午夜| 在线观看日本视频| 欧美xxxxxxxx| 免费av一级片| 久久精品2019中文字幕| 久久电影tv| 国产精品嫩草影院一区二区 | 国产精品欧美日韩| 精品久久97| 日韩一二区视频| 蜜桃视频免费观看一区| 欧美伦理片在线观看| 不卡视频免费播放| 欧美成人片在线观看| 欧美中文字幕一区二区三区| 手机看片一区二区| 欧美精品性视频| 老司机精品视频网| 亚洲bt天天射| 日韩中文在线电影| 免费黄色一级网站| 久久成人免费网站| 日韩精品卡通动漫网站| 午夜精品久久久久久久99水蜜桃 | 四虎精品在线观看| 亚洲自拍另类欧美丝袜| 欧美日韩激情| av动漫免费看| 韩国视频一区二区| 美国精品一区二区| 亚洲一区免费在线观看| 国产美女裸体无遮挡免费视频| 亚洲视频精品在线| 久操视频在线观看| 国产色视频一区| 日韩精品久久| 色哟哟精品视频| 国产精品色哟哟网站| 中文字幕有码无码人妻av蜜桃| 亚洲一二在线观看| 亚洲妇熟xxxx妇色黄| 91香蕉电影院| 中文字幕一区二区三区乱码图片| 手机视频在线观看| 国产精品久久久久永久免费观看 | a级精品国产片在线观看| 免费人成视频在线| 福利一区视频在线观看| 在线免费观看一区二区| 日韩精品专区在线影院重磅| 国产精品久久麻豆| 91国产在线免费观看| 九一精品国产| 少妇久久久久久被弄到高潮| 国内精品自线一区二区三区视频| 国产一二三四区| 精品sm捆绑视频| 涩涩在线视频| 2020国产精品久久精品不卡| 欧美日韩hd| 精品综合久久久久| 亚洲蜜臀av乱码久久精品| 亚洲av无码国产综合专区| 久久全球大尺度高清视频| 老司机成人在线| 99草草国产熟女视频在线| 国产精品第13页| 蜜臀av午夜精品| 日韩av电影院| 天天综合精品| 国产性生活毛片| 欧美性猛交xxxx黑人交| 伊人精品影院| 欧美一卡2卡3卡4卡无卡免费观看水多多 | 成人精品国产免费网站| 黄色在线观看国产| 欧美v国产在线一区二区三区| av电影免费在线看| 日韩av高清| 国产精品影音先锋| 一区二区三区在线观看av| 日韩最新av在线| 欧美日韩五码| 丰满人妻一区二区三区53号| 99久久精品国产毛片| 18精品爽视频在线观看| 欧美一区二区三区四区五区| 日韩在线免费电影| 国产精品初高中精品久久| 可以免费看不卡的av网站| 日本在线一级片| 亚洲欧美日韩区| 成人欧美一区二区三区的电影| 中文字幕一区二区三区有限公司 | 国产精品夜夜夜一区二区三区尤| 久久精品一区二区三区中文字幕| 男人的午夜天堂| 亚洲美女www午夜| 一区二区三区自拍视频|