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

微服務(wù)必須具備的 3 個(gè)基本功能!

開(kāi)發(fā) 后端
在我們對(duì)微服務(wù)架構(gòu)有了整體的認(rèn)識(shí),并且具備了服務(wù)化的前提后,一個(gè)完整的微服務(wù)請(qǐng)求需要涉及到哪些內(nèi)容呢?一起來(lái)看看吧。

[[403423]]

 在我們對(duì)微服務(wù)架構(gòu)有了整體的認(rèn)識(shí),并且具備了服務(wù)化的前提后,一個(gè)完整的微服務(wù)請(qǐng)求需要涉及到哪些內(nèi)容呢?

這其中包括了微服務(wù)框架所具備的三個(gè)基本功能:

  •  服務(wù)的發(fā)布與引用
  •  服務(wù)的注冊(cè)與發(fā)現(xiàn)
  • 服務(wù)的遠(yuǎn)程通信

服務(wù)的發(fā)布與引用

首先我們面臨的第一個(gè)問(wèn)題是,如何發(fā)布服務(wù)和引用服務(wù)。具體一點(diǎn)就是,這個(gè)服務(wù)的接口名是啥,有哪些參數(shù),返回值是什么類(lèi)型等等,通常也就是接口描述信息。

常見(jiàn)的發(fā)布和引用的方式包括:

  •  RESTful API / 聲明式Restful API
  •  XML
  •  IDL

一般來(lái)講,不管使用哪種方式,服務(wù)端定義接口與實(shí)現(xiàn)接口都是必要的,例如: 

  1. @exa(id = "xxx" 
  2. public interface testApi {  
  3.     @PostMapping(value = "/soatest/{id}" 
  4.     String getResponse(@PathVariable(value = "id") final Integer index, @RequestParam(value = "str") final String Data);  
  5.     }  

具體實(shí)現(xiàn)如下: 

  1. public class testApiImpl implements testApi{  
  2.     @Override  
  3.     String getResponse(final Integer index, final String Data){  
  4.         return "ok"; 
  5.      }      

聲明式Restful API

這種常使用HTTP或者HTTPS協(xié)議調(diào)用服務(wù),相對(duì)來(lái)說(shuō),性能稍差。

首先服務(wù)端如上定義接口并實(shí)現(xiàn)接口,隨后服務(wù)提供者可以使用類(lèi)似restEasy這樣的框架通過(guò)servlet的方式發(fā)布服務(wù),而服務(wù)消費(fèi)者直接引用定義的接口調(diào)用。

除此之外還有一種類(lèi)似feign的方式,即服務(wù)端的發(fā)布依賴(lài)于springmvc controller,框架只基于客戶(hù)端模板化http請(qǐng)求調(diào)用。這種情況下需接口定義與服務(wù)端controller協(xié)商一致,這樣客戶(hù)端直接引用接口發(fā)起調(diào)用即可。

XML

使用私有rpc協(xié)議的都會(huì)選擇xml配置的方式來(lái)描述接口,比較高效,例如dubbo、motan等。

同樣服務(wù)端如上定義接口并實(shí)現(xiàn)接口,服務(wù)端通過(guò)server.xml將文件接口暴露出去。服務(wù)消費(fèi)者則通過(guò)client.xml引用需要調(diào)用的接口。

但這種方式對(duì)業(yè)務(wù)代碼入侵較高,xml配置有變更時(shí)候,服務(wù)消費(fèi)者和服務(wù)提供者都需要更新。

IDL

IDL是接口描述語(yǔ)言,常用于跨語(yǔ)言之間的調(diào)用,最常用的IDL包括Thrift協(xié)議以及gRpc協(xié)議。例如gRpc協(xié)議使用Protobuf來(lái)定義接口,寫(xiě)好一個(gè)proto文件后,利用語(yǔ)言對(duì)應(yīng)的protoc插件生成對(duì)應(yīng)server端與client端的代碼,便可直接使用。

但是如果參數(shù)字段非常多,proto文件會(huì)顯得非常大難以維護(hù)。并且如果字段經(jīng)常需要變更,例如刪除字段,PB就無(wú)法做到向前兼容。

一些tips

不管哪種方式,在接口變更的時(shí)候都需要通知服務(wù)消費(fèi)者。消費(fèi)者對(duì)api的強(qiáng)依賴(lài)性是很難避免的,接口變更引起的各種調(diào)用失敗也十分常見(jiàn)。所以如果有變更,盡量使用新增接口的方式,或者給每個(gè)接口定義好版本號(hào)吧。

在使用上,大多數(shù)人的選擇是對(duì)外Restful,對(duì)內(nèi)Xml,跨語(yǔ)言IDL。

一些問(wèn)題

在實(shí)際的服務(wù)發(fā)布與引用的落地上,還會(huì)存在很多問(wèn)題,大多和配置信息相關(guān)。例如一個(gè)簡(jiǎn)單的接口調(diào)用超時(shí)時(shí)間配置,這個(gè)配置應(yīng)該配在服務(wù)級(jí)別還是接口級(jí)別?是放在服務(wù)提供者這邊還是服務(wù)消費(fèi)者這邊?

在實(shí)踐中,大多數(shù)服務(wù)消費(fèi)者會(huì)忽略這些配置,所以服務(wù)提供者自身提供默認(rèn)的配置模板是有必要的,相當(dāng)于一個(gè)預(yù)定義的過(guò)程。每個(gè)服務(wù)消費(fèi)者在繼承服務(wù)提供者預(yù)定義好的配置后,還需要能夠進(jìn)行自定義的配置覆蓋。

但是,比方說(shuō)一個(gè)服務(wù)有100個(gè)接口,每個(gè)接口都有自身的超時(shí)配置,而這個(gè)服務(wù)又有100個(gè)消費(fèi)者,當(dāng)服務(wù)節(jié)點(diǎn)發(fā)生變更的時(shí)候,就會(huì)發(fā)生100*100次注冊(cè)中心的消息通知,這是比較可怕的,就有可能引起網(wǎng)絡(luò)風(fēng)暴。

服務(wù)的注冊(cè)與發(fā)現(xiàn)

假設(shè)你已經(jīng)發(fā)布了服務(wù),并在一臺(tái)機(jī)器上部署了服務(wù),那么消費(fèi)者該怎樣找到你的服務(wù)的地址呢?

也許有人會(huì)說(shuō)是DNS,但DNS有許多缺陷:

  •  維護(hù)麻煩,更新延遲
  •  無(wú)法在客戶(hù)端做負(fù)載均衡
  •  不能做到端口級(jí)別的服務(wù)發(fā)現(xiàn)

其實(shí)在分布式系統(tǒng)中,有個(gè)很重要的角色,叫注冊(cè)中心,便是用于解決該問(wèn)題。

使用注冊(cè)中心尋址并調(diào)用的過(guò)程如下:

  •  服務(wù)啟動(dòng)時(shí),向注冊(cè)中心注冊(cè)自身,并定期發(fā)送心跳匯報(bào)存活狀態(tài)。
  •  客戶(hù)端調(diào)用服務(wù)時(shí),向注冊(cè)中心訂閱服務(wù),并將節(jié)點(diǎn)列表緩存至本地,再與服務(wù)端建立連接(當(dāng)然這兒可以lazy load)。發(fā)起調(diào)用時(shí),在本地緩存節(jié)點(diǎn)列表中,基于負(fù)載均衡算法選取一臺(tái)服務(wù)端發(fā)起調(diào)用。
  •  當(dāng)服務(wù)端節(jié)點(diǎn)發(fā)生變更,注冊(cè)中心能感知到后通知到客戶(hù)端。

注冊(cè)中心的實(shí)現(xiàn)主要需要考慮以下這些問(wèn)題:

  •  自身一致性與可用性
  •  注冊(cè)方式
  •  存儲(chǔ)結(jié)構(gòu)
  •  服務(wù)健康監(jiān)測(cè)
  •  狀態(tài)變更通知

一致性與可用性

一個(gè)老舊的命題,即分布式系統(tǒng)中的CAP(一致性、可用性、分區(qū)容錯(cuò)性)。我們知道同時(shí)滿(mǎn)足CAP是不可能的,那么便需要有取舍。常見(jiàn)的注冊(cè)中心大致分為CP注冊(cè)中心以及AP注冊(cè)中心。

CP注冊(cè)中心

比較典型的就是zookeeper、etcd以及consul了,犧牲可用性來(lái)保證了一致性,通過(guò)zab協(xié)議或者raft協(xié)議來(lái)保證一致性。

AP注冊(cè)中心

犧牲一致性來(lái)保證可用性,感覺(jué)只能列出eureka了。eureka每個(gè)服務(wù)器單獨(dú)保存節(jié)點(diǎn)列表,可能會(huì)出現(xiàn)不一致的情況。關(guān)注公眾號(hào)Java技術(shù)棧,在后臺(tái)回復(fù):cloud,可以獲取我整理的 Spring Cloud 系列教程,非常齊全。

從理論上來(lái)說(shuō),僅用于注冊(cè)中心,AP型是遠(yuǎn)比CP型合適的??捎眯缘男枨筮h(yuǎn)遠(yuǎn)高于一致性,一致性只要保證最終一致即可,而不一致的時(shí)候還可以使用各種容錯(cuò)策略進(jìn)行彌補(bǔ)。

保障高可用性其實(shí)還有很多辦法,例如集群部署或者多IDC部署等。Consul就是多IDC部署保障可用性的典型例子,它使用了wan gossip來(lái)保持跨機(jī)房狀態(tài)同步。

注冊(cè)方式

有兩種與注冊(cè)中心交互的方式,一種是通過(guò)應(yīng)用內(nèi)集成sdk,另一種則是通過(guò)其他方式在應(yīng)用外間接與注冊(cè)中心交互。Spring Boot 系列教程整理好了:https://github.com/javastacks/spring-boot-best-practice

應(yīng)用內(nèi)

這應(yīng)該就是最常見(jiàn)的方式了,客戶(hù)端與服務(wù)端都集成相關(guān)sdk與注冊(cè)中心進(jìn)行交互。例如選擇zookeeper作為注冊(cè)中心,那么就可以使用curator sdk進(jìn)行服務(wù)的注冊(cè)與發(fā)現(xiàn)。

應(yīng)用外

consul提供了應(yīng)用外注冊(cè)的解決方案,consul agent或者第三方Registrator可以監(jiān)聽(tīng)服務(wù)狀態(tài),從而負(fù)責(zé)服務(wù)提供者的注冊(cè)或銷(xiāo)毀。而Consul Template則可以做到定時(shí)從注冊(cè)中心拉取節(jié)點(diǎn)列表,并刷新LB配置(例如通過(guò)Nginx的upstream),這樣就相當(dāng)于完成了服務(wù)消費(fèi)者端的負(fù)載均衡。

存儲(chǔ)結(jié)構(gòu)

注冊(cè)中心存儲(chǔ)相關(guān)信息一般采取目錄化的層次結(jié)構(gòu),一般分為服務(wù)-接口-節(jié)點(diǎn)信息。

同時(shí)注冊(cè)中心一般還會(huì)進(jìn)行分組,分組的概念很廣,可以是根據(jù)機(jī)房劃分也可以根據(jù)環(huán)境劃分。

節(jié)點(diǎn)信息主要會(huì)包括節(jié)點(diǎn)的地址(ip和端口號(hào)),還有一些節(jié)點(diǎn)的其他信息,比如請(qǐng)求失敗的重試次數(shù)、超時(shí)時(shí)間的設(shè)置等等。

當(dāng)然很多時(shí)候,其實(shí)可能會(huì)把接口這一層給去掉,因?yàn)榭紤]到接口數(shù)量很多的情況下,過(guò)多的節(jié)點(diǎn)會(huì)造成很多問(wèn)題,比如之前說(shuō)的網(wǎng)絡(luò)風(fēng)暴。

服務(wù)健康監(jiān)測(cè)

服務(wù)存活狀態(tài)監(jiān)測(cè)也是注冊(cè)中心的一個(gè)必要功能。在zookeeper中,每個(gè)客戶(hù)端都會(huì)與服務(wù)端保持一個(gè)長(zhǎng)連接,并生成一個(gè)session,在session過(guò)期周期內(nèi),通過(guò)客戶(hù)端定時(shí)向服務(wù)端發(fā)送心跳包來(lái)檢測(cè)鏈路是否正常,服務(wù)端則重置下次session的過(guò)期時(shí)間,如果session過(guò)期周期內(nèi)都沒(méi)有檢測(cè)到客戶(hù)端的心跳包,那么就會(huì)認(rèn)為它已經(jīng)不可用了,將其從節(jié)點(diǎn)列表中移除。

狀態(tài)變更通知

在注冊(cè)中心具備服務(wù)健康檢測(cè)能力后,還需要將狀態(tài)變更通知到客戶(hù)端。在zookeeper中,可以通過(guò)監(jiān)聽(tīng)器watcher的process方法來(lái)獲取服務(wù)變更。

服務(wù)的遠(yuǎn)程通信

在上面,服務(wù)消費(fèi)者已經(jīng)正確引用了服務(wù),并發(fā)現(xiàn)了該服務(wù)的地址,那么如何向這個(gè)地址發(fā)起請(qǐng)求呢?要解決服務(wù)間的遠(yuǎn)程通信問(wèn)題,我們需要考慮一些問(wèn)題:

  •  網(wǎng)絡(luò)I/O的處理
  •  傳輸協(xié)議
  •  序列化方式

網(wǎng)絡(luò)I/O的處理

簡(jiǎn)單來(lái)說(shuō),就是客戶(hù)端是怎么處理請(qǐng)求?服務(wù)端又是怎么處理請(qǐng)求的?關(guān)注公眾號(hào)Java技術(shù)棧,在后臺(tái)回復(fù):面試,可以獲取我整理的 Java 網(wǎng)絡(luò)編程系列面試題和答案,非常齊全。

先從客戶(hù)端來(lái)說(shuō),我們創(chuàng)建連接的時(shí)機(jī)可以是從注冊(cè)中心獲取到節(jié)點(diǎn)信息的時(shí)候,但更多時(shí)候,我們會(huì)選擇在第一次請(qǐng)求發(fā)起調(diào)用的時(shí)候去創(chuàng)建連接。此外,我們往往會(huì)為該節(jié)點(diǎn)維護(hù)一個(gè)連接池,進(jìn)行連接復(fù)用。

如果是異步的情況下,我們還需要為每一個(gè)請(qǐng)求編號(hào),并維護(hù)一個(gè)請(qǐng)求池,從而在響應(yīng)返回時(shí)找到對(duì)應(yīng)的請(qǐng)求。當(dāng)然這并不是必須的,很多框架會(huì)幫我們干好這些事情,比如rxNetty。

從服務(wù)端來(lái)說(shuō),處理請(qǐng)求的方式就可以追溯到unix的5種IO模型了。我們可以直接使用Netty、MINA等網(wǎng)絡(luò)框架來(lái)處理服務(wù)端請(qǐng)求,或者如果你有十分的興趣,可以自己實(shí)現(xiàn)一個(gè)通信框架。

傳輸協(xié)議

最常見(jiàn)的當(dāng)然是直接使用Http協(xié)議,使用雙方無(wú)需關(guān)注和了解協(xié)議內(nèi)容,方便直接,但自然性能上會(huì)有所折損。

還有就是目前比較火熱的http2協(xié)議,擁有二進(jìn)制數(shù)據(jù)、頭部壓縮、多路復(fù)用等許多優(yōu)良特性。但從自身的實(shí)踐上看,http2要走到生產(chǎn)仍有一段距離,一個(gè)最簡(jiǎn)單的例子,升級(jí)到http2后所有的header names都變成小寫(xiě),同時(shí)不是case-insenstive了,這時(shí)候就會(huì)有兼容性問(wèn)題。

當(dāng)然如果追求更高效與可控的傳輸,可以定制私有協(xié)議并基于tcp進(jìn)行傳輸。私有協(xié)議的定制需要通信雙方都了解其特性,設(shè)計(jì)上還需要注意預(yù)留好擴(kuò)展字段,以及處理好粘包分包等問(wèn)題。

序列化方式

在網(wǎng)絡(luò)傳輸?shù)那昂?,往往都需要在發(fā)送端進(jìn)行編碼,在服務(wù)端進(jìn)行解碼,這樣主要是為了在網(wǎng)絡(luò)傳輸時(shí)候減少數(shù)據(jù)傳輸量。

常用的序列化方式包括文本類(lèi)的,例如XML/JSON,還有二進(jìn)制類(lèi)型的,例如Protobuf/Thrift等。在選擇序列化的考慮上,一是性能,Protobuf的壓縮大小和壓縮速度都會(huì)比JSON快很多,性能也更好。二是兼容性上,相對(duì)來(lái)說(shuō),JSON的前后兼容性會(huì)強(qiáng)一些,可以用于接口經(jīng)常變化的場(chǎng)景。

在此還是需要強(qiáng)調(diào),使用每一種序列化都需要了解過(guò)其特性,并在接口變更的時(shí)候拿捏好邊界。例如jackson的FAIL_ON_UNKNOW_PROPERTIES屬性、kryo的CompatibleFieldSerializer、jdk序列化會(huì)嚴(yán)格比較serialVersionUID等等。 

 

責(zé)任編輯:龐桂玉 來(lái)源: Java技術(shù)棧
相關(guān)推薦

2010-06-28 21:33:17

eMule協(xié)議

2019-04-16 08:21:46

2012-10-22 16:47:45

IBMdw

2020-10-19 10:16:02

AWSDynamoDB功能

2010-04-16 09:06:18

WPF 4

2010-03-02 17:43:31

WCF框架處理流程

2010-01-05 15:27:04

.NET Framew

2019-09-16 08:22:12

特權(quán)訪(fǎng)問(wèn)管理PAM網(wǎng)絡(luò)安全

2015-07-07 14:17:56

物聯(lián)網(wǎng)操作系統(tǒng)

2011-04-19 10:17:25

2009-03-04 10:30:00

2023-05-11 08:59:43

Nginx配置服務(wù)器

2010-01-20 18:20:50

2010-01-04 10:47:08

智能交換機(jī)

2009-12-03 09:08:21

路由器基本功能

2017-01-15 17:15:27

Java基本功能

2011-04-29 14:04:56

一體機(jī)

2009-12-03 14:10:22

路由器基本功能

2009-12-08 13:58:12

Linux操作系統(tǒng)垃圾郵件

2015-11-09 10:34:54

iOS 9.1 iPhone
點(diǎn)贊
收藏

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

久久成年人视频| 色狠狠一区二区| 国产亚洲一区二区三区在线播放| 国产a∨精品一区二区三区仙踪林| 啄木系列成人av电影| 欧美色窝79yyyycom| www.99riav| 欧美日韩国产综合视频| 日本不卡视频一二三区| 欧美二区乱c黑人| av黄色在线免费观看| 视频二区欧美毛片免费观看| 大伊人狠狠躁夜夜躁av一区| 香蕉视频在线网址| 男同在线观看| 成人高清伦理免费影院在线观看| 国产精品27p| 国产亚洲精品成人| 日韩免费av| 日韩精品久久久久| 中国老熟女重囗味hdxx| 久久xxx视频| 红桃视频成人在线观看| 热这里只有精品| 国产黄在线观看| 成人福利在线看| 亚洲最大成人网色| 性色av一区二区三区四区| 亚洲人体大胆视频| 欧美久久精品午夜青青大伊人| 9.1成人看片免费版| www.国产精品一区| 91麻豆精品国产91久久久久久| 国产成人精品无码播放| 日本不良网站在线观看| 亚洲一二三四区不卡| 久久久久亚洲av无码专区喷水| 国产大片在线免费观看| 久久日韩粉嫩一区二区三区 | 中文无码av一区二区三区| 在线高清一区| 久久久久九九九九| 久久久久久福利| 天堂美国久久| 精品国偷自产在线| 日韩av网站在线播放| 波多野结衣在线播放一区| 精品亚洲一区二区三区四区五区 | 久久婷婷综合激情| 精品乱码一区二区三区| 国产 欧美 自拍| 国产成人aaaa| 成人高清在线观看| 亚洲AV无码精品色毛片浪潮| 国产精品一区一区三区| 亚洲精品免费av| 精品久久在线观看| 国产91在线观看丝袜| 成人在线观看网址| 黄频网站在线观看| 99久久久无码国产精品| 精品国产中文字幕| 青青草在线播放| 国产欧美一区二区三区网站 | 欧美日韩专区| 欧美精品九九久久| 日韩成人av毛片| 国产精品久久久免费| 欧美在线免费看| 国产一卡二卡三卡| 久久电影国产免费久久电影| 91欧美视频网站| 午夜精品久久久久久久第一页按摩 | 欧美亚洲在线日韩| 中文字幕日韩欧美| 91n在线视频| 欧美精品网站| 2018中文字幕一区二区三区| 免费黄色小视频在线观看| 日本亚洲一区二区| 亚洲a∨日韩av高清在线观看| 国产成人精品毛片| 91麻豆6部合集magnet| 亚洲高清视频一区二区| 中文字幕在线观看播放| 亚洲成年人影院| 国产无套内射久久久国产| 123成人网| 日韩精品在线网站| 欧美高清性xxxx| 93在线视频精品免费观看| 久久久久久久久久久免费| 9i精品福利一区二区三区| 久久99在线观看| 国产女主播一区二区三区| 国产大学生校花援交在线播放| 亚洲美腿欧美偷拍| 春日野结衣av| 999精品视频在线观看| 亚洲黄色免费三级| 美国精品一区二区| 99精品热视频只有精品10| 国产乱人伦真实精品视频| 亚洲毛片欧洲毛片国产一品色| 久久久久久久久一| 国产激情片在线观看| 欧美片第一页| 精品国产三级a在线观看| 亚洲女同二女同志奶水| 亚洲日本黄色| 亚洲a成v人在线观看| 韩国福利在线| 亚洲第一综合色| 亚洲网中文字幕| 精品久久不卡| 欧美亚洲另类视频| 性少妇videosexfreexxx片| 国产欧美精品在线观看| 国产欧美日韩网站| 91视频亚洲| 在线观看欧美www| 欧美videossex极品| 国产成人综合精品三级| 中文字幕一区二区三区四区五区| 亚洲人成午夜免电影费观看| 精品国产一区二区在线观看| 日韩精品123区| 日本色综合中文字幕| 蜜桃av久久久亚洲精品| av手机在线观看| 日韩天堂在线观看| 国产激情无码一区二区三区| 日本在线不卡一区| 日韩av一级大片| 中文字幕人成乱码在线观看 | 91精品免费看| 国产福利片在线| 欧美性生交xxxxxdddd| 97人妻精品一区二区三区免费| 亚洲影视一区二区三区| 91精品久久久久久久久久| av电影在线网| 精品视频999| 国产精品无码无卡无需播放器| 久久一区中文字幕| 免费国产在线精品一区二区三区| 大桥未久在线视频| 亚洲精品第一页| 国产成人无码精品久在线观看| 国产精品1区2区| www.日本三级| 国产精品chinese在线观看| 欧美极品少妇全裸体| 性生交大片免费看女人按摩| 亚洲主播在线观看| 国产一级免费片| 国产精品入口| 欧美一级二级三级九九九| 日韩免费va| 这里只有精品在线播放| 一级黄色片在线观看| 亚洲欧洲成人自拍| 性生活在线视频| 欧美激情视频一区二区三区在线播放| 999国内精品视频在线| 久色国产在线| 亚洲精品综合精品自拍| 人人妻人人爽人人澡人人精品| 亚洲国产岛国毛片在线| 久久6免费视频| 欧美午夜电影在线观看 | 久久国产电影| 亚洲最大的免费| 福利网站在线观看| 亚洲欧美精品伊人久久| 亚洲免费视频二区| 夜夜亚洲天天久久| 醉酒壮男gay强迫野外xx| 日日摸夜夜添夜夜添精品视频| 亚洲一区三区在线观看| 日韩一二三区| 欧美亚洲成人xxx| 无遮挡动作视频在线观看免费入口| 欧美久久一区二区| 在线观看精品国产| 中文字幕高清不卡| 色婷婷狠狠18禁久久| 在线亚洲一区| 伊人久久99| 久久动漫网址| 91精品国产综合久久香蕉的用户体验 | 亚洲1区在线| 欧美一区二区三区免费观看| 日本中文字幕在线看| 精品999在线播放| 免费看av在线| 亚洲国产精品久久人人爱| 精品亚洲aⅴ无码一区二区三区| 国产乱人伦偷精品视频不卡| 欧美在线观看成人| 欧美a级片一区| 欧美中文娱乐网| 99久久人爽人人添人人澡 | 91蝌蚪国产九色| 手机精品视频在线| 亚洲欧美日韩国产| www.国产亚洲| 成人av资源电影网站| 国产精选在线观看91| 日韩欧乱色一区二区三区在线| 68精品久久久久久欧美| 中文字幕免费高清电视剧网站在线观看| 亚洲精品在线看| 男人天堂手机在线观看| 欧美一区二区三区四区在线观看| 国产三级精品三级在线观看| 亚洲在线视频网站| 国产喷水在线观看| 久久久精品欧美丰满| 日本少妇xxxx| 国产jizzjizz一区二区| 国产精品视频中文字幕| 久久亚洲国产精品一区二区| 成人精品视频在线播放| 一区二区三区国产精华| 亚洲巨乳在线观看| 国产精品密蕾丝视频下载| 国产精品xxx在线观看www| 91麻豆精品| 91网站在线免费观看| 成人性片免费| 国产精品伦子伦免费视频| 亚洲天堂电影| 69视频在线播放| 绿色成人影院| 韩国三级日本三级少妇99| 日皮视频在线观看| 九九热精品视频| 中文字幕中文字幕在线中高清免费版| 久久视频精品在线| 日本a级在线| 日韩在线免费视频观看| av男人的天堂在线| 色悠悠久久久久| 免费在线毛片网站| 中文字幕一区日韩电影| www.亚洲.com| 色婷婷久久av| 岛国成人毛片| 欧美日韩999| 超碰资源在线| 奇米四色中文综合久久| 成人免费网站www网站高清| 国产成人精品综合| se69色成人网wwwsex| 国产欧美日韩中文| 动漫一区二区三区| ts人妖另类在线| 国产精品久久久久久久久久白浆 | 91综合网人人| 亚洲天堂第一区| 亚洲国产一区二区三区高清| 日韩av三级在线| 老牛嫩草一区二区三区日本| 亚州精品一二三区| 狠狠久久亚洲欧美| 国产麻豆剧传媒精品国产| 波多野洁衣一区| 久久成人激情视频| 国产精品久久久久7777按摩| 欧美第一页在线观看| 亚洲一区二区三区三| 国产嫩bbwbbw高潮| 精品视频全国免费看| 国产黄色一区二区| 亚洲美女性视频| 91社区在线观看| 欧美激情免费观看| 依依综合在线| 成人激情视频在线观看| 国产伦乱精品| 色一情一乱一伦一区二区三区 | 中文字幕av一区 二区| 欧美成人免费观看视频| 欧美性生交大片免费| 做爰无遮挡三级| 精品福利一二区| 国产福利免费在线观看| 欧美情侣性视频| 日韩伦理三区| 99在线首页视频| 国产一区二区三区天码| 精品一区二区三区毛片| 国产亚洲精品bv在线观看| 性生活免费在线观看| 成人永久看片免费视频天堂| 中文字幕av久久爽一区| 亚洲一区影音先锋| 亚洲免费视频二区| 亚洲第一区在线| 毛片av在线| 国产成人鲁鲁免费视频a| 视频一区国产| 亚洲欧美精品| 性娇小13――14欧美| 免费观看黄网站| 亚洲国产高清在线观看视频| 国产成人免费看| 精品精品欲导航| 精品国产白色丝袜高跟鞋| 青青在线视频一区二区三区| 91九色鹿精品国产综合久久香蕉| 婷婷五月色综合| 国产视频一区免费看| 免费黄色在线播放| 国产精品剧情在线亚洲| 国产视频1区2区| 亚洲电影免费观看高清完整版在线| 日本不卡不卡| 国产精品久久一区主播| 亚洲男人都懂第一日本| 人妻av中文系列| 成人午夜免费视频| 欧美日韩精品一区二区三区视频播放| 欧美影片第一页| 国产区视频在线| 日韩免费在线观看视频| 老牛影视av一区二区在线观看| 欧美黄色免费网址| 国产一区二区导航在线播放| 顶级黑人搡bbw搡bbbb搡| 欧美日韩久久一区| 超碰在线国产| 国产精品久久久久久久久久久新郎 | 丰乳肥臀在线| 国产精品久久精品视| 欧美国产三级| 国产精品久久久久久久99| 国产精品久久久久久久久搜平片| 一级黄色av片| 国产一区二区激情| 我爱我色成人网| 神马影院午夜我不卡| 蜜臀av性久久久久蜜臀aⅴ| 一级特黄曰皮片视频| 欧美日韩国产成人在线91| 午夜在线免费观看视频| 国产欧美日韩最新| 忘忧草精品久久久久久久高清| www.久久91| 亚洲人成网站精品片在线观看| 国产伦精品一区二区三区视频痴汉| www国产亚洲精品久久网站| 五月天色综合| 蜜桃视频一区二区在线观看| 岛国av在线一区| 五月天综合激情网| 亚洲三级免费看| 777午夜精品电影免费看| 资源网第一页久久久| 国产精品香蕉一区二区三区| 久久精品国产亚洲AV无码麻豆| 亚洲第一网站男人都懂| 亚洲最新无码中文字幕久久| 日韩色妇久久av| 激情av综合网| 国产在线视频你懂的| 日韩精品黄色网| 成人国产精品| 800av在线免费观看| 91蜜桃网址入口| 姑娘第5集在线观看免费好剧| 久久综合五月天| 欧美精品中文| a在线观看免费视频| 亚洲综合视频网| 久热av在线| 亚洲综合一区二区不卡| 国产精品女主播一区二区三区| 国产真实乱人偷精品人妻| 欧美精品乱码久久久久久按摩| 91www在线| 日韩在线电影一区| 国产一区二区三区在线观看免费| 日本a在线观看| 中文字幕av日韩| 激情av综合| 艹b视频在线观看| 亚洲成人动漫一区| 日本在线观看www| 激情视频在线观看一区二区三区| 奇米一区二区三区av| 黄色小视频在线免费看| 中文字幕成人精品久久不卡| 国内精品免费| 91丝袜超薄交口足| 日韩欧美精品网站| 亚洲奶水xxxx哺乳期| 无码免费一区二区三区免费播放| 国产不卡在线视频|