日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

你真的明白RPC 吗?一起来探究 RPC 的实质

發(fā)布時(shí)間:2023/12/20 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 你真的明白RPC 吗?一起来探究 RPC 的实质 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

為什么80%的碼農(nóng)都做不了架構(gòu)師?>>> ??

你真的明白R(shí)PC 嗎?一起來探究 RPC 的實(shí)質(zhì)

? 不論你是科班出身還是半路轉(zhuǎn)行,這么優(yōu)秀的你一定上過小學(xué)語文,那么對(duì)擴(kuò)句和縮句你一定不陌生。縮句就是去除各種修飾提煉出一句話的核心,而不失基本的語義。下面來實(shí)現(xiàn)一個(gè)簡(jiǎn)易的 rpc 程序探究其實(shí)質(zhì),進(jìn)而去理解復(fù)雜的 rpc 框架。所謂復(fù)雜的框架就是在簡(jiǎn)單的過程中加入了一些設(shè)計(jì)裝飾將rpc的功能豐富起來,如 dubbo 的 filter、router、loadblance、集群容錯(cuò)、多種 Invoker 、通訊協(xié)議等等,這就是一個(gè)擴(kuò)句的過程。

? RPC是指遠(yuǎn)程過程調(diào)用,也就是說兩臺(tái)服務(wù)器A、B,一個(gè)應(yīng)用部署在A服務(wù)器上,想要調(diào)用B服務(wù)器上應(yīng)用提供的函數(shù)/方法,由于不在一個(gè)內(nèi)存空間,不能直接調(diào)用,需要通過網(wǎng)絡(luò)去發(fā)起一次調(diào)用請(qǐng)求獲取結(jié)果。

? 無論是市面上主流的 rpc 框架還是小眾的 rpc 框架都實(shí)現(xiàn)了上述 rpc的語義。【服務(wù)治理型:dubbo、dubbox、motan;多語言型:grpc、thrift、avro、protocol buffers】

打一波廣告:【博主最近在寫一個(gè) java 實(shí)現(xiàn)的 rpc 框架 bridge 歡迎關(guān)注,考慮Mesh 化】

一、原理

首先用一幅圖來簡(jiǎn)單描述一下 rpc 的調(diào)用過程,從 dubbo 官網(wǎng)拿來的,不算是最簡(jiǎn)單的圖,但是也非常簡(jiǎn)單了,去掉上面的 Registry 和下面的 Monitor 剩下的就是最簡(jiǎn)單的 rpc 調(diào)用,說白了就是一個(gè)網(wǎng)絡(luò)請(qǐng)求。

過程描述:

  • 啟動(dòng)服務(wù)端provider,并向注冊(cè)中心登記一下自己暴露服務(wù)的地址和服務(wù)詳情
  • 然后啟動(dòng)消費(fèi)端consumer, 訂閱注冊(cè)中心的內(nèi)容,也就是訂閱服務(wù),獲取服務(wù)的詳情
  • 如果服務(wù)有變動(dòng),注冊(cè)中心會(huì)通知消費(fèi)端去更新訂閱內(nèi)容,更新服務(wù)詳情。
  • 客戶端拿到了服務(wù)詳情,通過網(wǎng)絡(luò)對(duì)服務(wù)端發(fā)起網(wǎng)絡(luò)請(qǐng)求,獲取結(jié)果
  • 監(jiān)視器可以獲取到服務(wù)調(diào)用詳情和消費(fèi)詳情,但不限于此
  • OK,原理就是這么簡(jiǎn)單,接下來根據(jù)上面的描述逐步實(shí)現(xiàn)。

    二、動(dòng)手實(shí)踐

    下面基于 springboot 來實(shí)現(xiàn)上述的過程。

    2.1 構(gòu)建模塊

    搭建工程和子模塊,工程結(jié)構(gòu)如下:

    2.2 實(shí)現(xiàn)服務(wù)端

    看下服務(wù)端的內(nèi)容,貼圖

    把接口定義在 api 模塊,consumer 和 provider 模塊都要引用到,接口HelloService代碼如下

    package com.glmapper.simple.api;/*** service interface** @author: Jerry*/ public interface HelloService {/*** service function** @param name* @return*/String hello(String name); }

    然后在 provider 模塊實(shí)現(xiàn)接口,用自定注解 @SimpleProvider 標(biāo)識(shí),先看下注解內(nèi)容

    package com.glmapper.simple.provider.annotation;/*** 自定義服務(wù)注解** @author Jerry*/ @Target({ElementType.TYPE}) @Retention(RetentionPolicy.RUNTIME) // 標(biāo)明可被 Spring 掃描 @Component public @interface SimpleProvider {Class<?> value(); }

    注解使用了@Component標(biāo)識(shí),所以可被 spring 掃描到,接下來看實(shí)現(xiàn)類HelloServiceImpl:

    package com.glmapper.simple.provider.service;/*** service implement class** @author: Jerry*/ @SimpleProvider(HelloService.class) public class HelloServiceImpl implements HelloService {/*** service function** @param name* @return*/@Overridepublic String hello(String name) {return "Hello! " + name;} }

    在定義一個(gè)服務(wù)配置的類SimpleProviderProperties,方便通過 application.yml 文件配置,

    package com.glmapper.simple.provider.property;/*** provider properties** @author: Jerry*/ public class SimpleProviderProperties {/*** 暴露服務(wù)的端口*/private Integer port;public Integer getPort() {return port;}public void setPort(Integer port) {this.port = port;} }

    到這里基礎(chǔ)的類文件就已經(jīng)結(jié)束了,下面開始服務(wù)初始化,入口 ProviderInitializer

    package com.glmapper.simple.provider;/*** 啟動(dòng)并注冊(cè)服務(wù)** @author Jerry*/ public class ProviderInitializer implements ApplicationContextAware, InitializingBean {private static final Logger LOGGER = LoggerFactory.getLogger(ProviderInitializer.class);private SimpleProviderProperties providerProperties;/*** service registry*/private ServiceRegistry serviceRegistry;/*** store interface and service implement mapping*/private Map<String, Object> handlerMap = new HashMap<>();public ProviderInitializer(SimpleProviderProperties providerProperties, ServiceRegistry serviceRegistry) {this.providerProperties = providerProperties;this.serviceRegistry = serviceRegistry;}@Overridepublic void setApplicationContext(ApplicationContext ctx) throws BeansException {// 獲取被 SimpleProvider 注解的 BeanMap<String, Object> serviceBeanMap = ctx.getBeansWithAnnotation(SimpleProvider.class);if (MapUtils.isNotEmpty(serviceBeanMap)) {for (Object serviceBean : serviceBeanMap.values()) {String interfaceName = serviceBean.getClass().getAnnotation(SimpleProvider.class).value().getName();handlerMap.put(interfaceName, serviceBean);}}}@Overridepublic void afterPropertiesSet() throws Exception {EventLoopGroup bossGroup = new NioEventLoopGroup();EventLoopGroup workerGroup = new NioEventLoopGroup();try {ServerBootstrap bootstrap = new ServerBootstrap();ChannelHandler channelHandler = new ChannelInitializer<SocketChannel>() {@Overridepublic void initChannel(SocketChannel channel) throws Exception {channel.pipeline().addLast(new SimpleDecoder(SimpleRequest.class)).addLast(new SimpleEncoder(SimpleResponse.class)).addLast(new SimpleHandler(handlerMap));}};bootstrap.group(bossGroup, workerGroup).channel(NioServerSocketChannel.class).childHandler(channelHandler).option(ChannelOption.SO_BACKLOG, 128).childOption(ChannelOption.SO_KEEPALIVE, true);String host = getLocalHost();if (null == host) {LOGGER.error("can't get service address,because address is null");throw new SimpleException("can't get service address,because address is null");}int port = providerProperties.getPort();ChannelFuture future = bootstrap.bind(host, port).sync();LOGGER.debug("server started on port {}", port);if (serviceRegistry != null) {String serverAddress = host + ":" + port;serviceRegistry.register(serverAddress);}future.channel().closeFuture().sync();} finally {workerGroup.shutdownGracefully();bossGroup.shutdownGracefully();}}/*** get service host** @return*/private String getLocalHost() {Enumeration<NetworkInterface> allNetInterfaces;try {allNetInterfaces = NetworkInterface.getNetworkInterfaces();} catch (SocketException e) {LOGGER.error("get local address error,cause:", e);return null;}while (allNetInterfaces.hasMoreElements()) {NetworkInterface netInterface = allNetInterfaces.nextElement();Enumeration<InetAddress> addresses = netInterface.getInetAddresses();while (addresses.hasMoreElements()) {InetAddress ip = addresses.nextElement();if (ip instanceof Inet4Address && !ip.isLoopbackAddress() && !ip.getHostAddress().contains(":")) {return ip.getHostAddress();}}}return null;} }

    描述一下這個(gè)類做了什么工作:

    • 首先他實(shí)現(xiàn)了ApplicationContextAware, InitializingBean這兩個(gè) spring 中接口,根據(jù)IOC容器初始化的順序,會(huì)依次回調(diào)用接口中的setApplicationContext 和 afterPropertiesSet 方法。
      • setApplicationContext方法中獲取了容器中被@SimpleProvider標(biāo)注的類,并將服務(wù)接口名和服務(wù)實(shí)現(xiàn)類綁定,存放到handlerMap中,在@SimpleProvider中有一個(gè) value 屬性,是考慮到一個(gè)類可以實(shí)現(xiàn)多個(gè)接口,通過 value 可以指定哪個(gè)服務(wù)接口,當(dāng)然也可以定義為數(shù)組,處理多個(gè)接口
      • afterPropertiesSet 方法中做了兩件事:
        • 在服務(wù)端開啟了一個(gè)處理socket請(qǐng)求的線程池,監(jiān)聽和處理服務(wù)暴露端口上接受到的請(qǐng)求,指定了一個(gè)處理器SimpleHandler
        • 調(diào)用ServiceRegistry類的registry方法向 zookeeper 注冊(cè)服務(wù)的地址和端口,這里沒有用到協(xié)議,只注冊(cè)了 ip:port

    SimpleHandler是一個(gè)實(shí)現(xiàn)了 netty的SimpleChannelInboundHandler的請(qǐng)求處理器類

    package com.glmapper.simple.provider.handler;/*** request handler** @author Jerry*/ public class SimpleHandler extends SimpleChannelInboundHandler<SimpleRequest> {private static final Logger LOGGER = LoggerFactory.getLogger(SimpleHandler.class);private final Map<String, Object> handlerMap;public SimpleHandler(Map<String, Object> handlerMap) {this.handlerMap = handlerMap;}@Overridepublic void channelRead0(final ChannelHandlerContext ctx, SimpleRequest request) throws Exception {SimpleResponse response = new SimpleResponse();response.setRequestId(request.getRequestId());try {Object result = handle(request);response.setResult(result);} catch (Throwable t) {response.setError(t);}ctx.writeAndFlush(response).addListener(ChannelFutureListener.CLOSE);}private Object handle(SimpleRequest request) throws Throwable {String className = request.getClassName();Object serviceBean = handlerMap.get(className);Class<?> serviceClass = serviceBean.getClass();String methodName = request.getMethodName();Class<?>[] parameterTypes = request.getParameterTypes();Object[] parameters = request.getParameters();FastClass serviceFastClass = FastClass.create(serviceClass);FastMethod serviceFastMethod = serviceFastClass.getMethod(methodName, parameterTypes);return serviceFastMethod.invoke(serviceBean, parameters);}@Overridepublic void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) {LOGGER.error("server caught exception", cause);ctx.close();} }

    SimpleHandler基于 netty 的事件驅(qū)動(dòng)模型觸發(fā)對(duì)應(yīng)的方法,當(dāng)收到請(qǐng)求事件會(huì)調(diào)用channelRead0方法,這個(gè)方法的作用就是,根據(jù)請(qǐng)求參數(shù)中的接口名找到對(duì)應(yīng)的實(shí)現(xiàn)類調(diào)用指定的方法,然后把結(jié)果返回。

    再瞅瞅ServiceRegistry,入口是ProviderInitializer調(diào)用了ServiceRegistry的 registry方法

    package com.glmapper.simple.provider.registry;/*** connect zookeeper to registry service** @author Jerry*/ public class ServiceRegistry {private static final Logger LOGGER = LoggerFactory.getLogger(ServiceRegistry.class);private ZookeeperProperties zookeeperProperties;public ServiceRegistry(ZookeeperProperties zookeeperProperties) {this.zookeeperProperties = zookeeperProperties;}public void register(String data) {if (data != null) {ZooKeeper zk = ZookeeperUtils.connectServer(zookeeperProperties.getAddress(), zookeeperProperties.getTimeout());if (zk != null) {addRootNode(zk);createNode(zk, data);}}}/*** add one zookeeper root node** @param zk*/private void addRootNode(ZooKeeper zk) {try {String registryPath = zookeeperProperties.getRootPath();Stat s = zk.exists(registryPath, false);if (s == null) {zk.create(registryPath, new byte[0], ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT);}} catch (KeeperException | InterruptedException e) {LOGGER.error("zookeeper add root node error,cause:", e);}}private void createNode(ZooKeeper zk, String data) {try {byte[] bytes = data.getBytes(Charset.forName("UTF-8"));String dataPath = zookeeperProperties.getRootPath() + zookeeperProperties.getDataPath();String path = zk.create(dataPath, bytes, ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.EPHEMERAL_SEQUENTIAL);LOGGER.debug("create zookeeper node ({} => {})", path, data);} catch (KeeperException | InterruptedException e) {LOGGER.error("create zookeeper node error,cause:", e);}} }

    ServiceRegistry類做的工作比較簡(jiǎn)單,就是把 服務(wù)ip:port注冊(cè)到 zk 的指定目錄下

    • 創(chuàng)建根節(jié)點(diǎn),根節(jié)點(diǎn)是個(gè)永久節(jié)點(diǎn)
    • 在根節(jié)點(diǎn)下創(chuàng)建臨時(shí)的子節(jié)點(diǎn),子節(jié)點(diǎn)存儲(chǔ)了服務(wù)的 ip:port,服務(wù)被掛掉對(duì)應(yīng)的子節(jié)點(diǎn)就會(huì)被干掉

    2.3 消費(fèi)端

    消費(fèi)端內(nèi)容:

    消費(fèi)端的內(nèi)容比較少,核心就三個(gè)類:ServiceDiscovery、ConsumerHandler、ConsumerProxy

    先看下ServiceDiscovery內(nèi)容:

    package com.glmapper.simple.consumer.discovery;/*** 服務(wù)發(fā)現(xiàn):連接ZK,添加watch事件** @author Jerry*/ public class ServiceDiscovery {private static final Logger LOGGER = LoggerFactory.getLogger(ServiceDiscovery.class);private volatile List<String> nodes = new ArrayList<>();private ZookeeperProperties zookeeperProperties;public ServiceDiscovery(ZookeeperProperties zookeeperProperties) {this.zookeeperProperties = zookeeperProperties;String address = zookeeperProperties.getAddress();int timeout = zookeeperProperties.getTimeout();ZooKeeper zk = ZookeeperUtils.connectServer(address, timeout);if (zk != null) {watchNode(zk);}}public String discover() {String data = null;int size = nodes.size();if (size > 0) {if (size == 1) {data = nodes.get(0);LOGGER.debug("using only node: {}", data);} else {data = nodes.get(ThreadLocalRandom.current().nextInt(size));LOGGER.debug("using random node: {}", data);}}return data;}private void watchNode(final ZooKeeper zk) {try {Watcher childrenNodeChangeWatcher = event -> {if (event.getType() == Watcher.Event.EventType.NodeChildrenChanged) {watchNode(zk);}};String rootPath = zookeeperProperties.getRootPath();List<String> nodeList = zk.getChildren(rootPath, childrenNodeChangeWatcher);List<String> nodes = new ArrayList<>();for (String node : nodeList) {byte[] bytes = zk.getData(rootPath + "/" + node, false, null);nodes.add(new String(bytes, Charset.forName("UTF-8")));}LOGGER.info("node data: {}", nodes);this.nodes = nodes;} catch (KeeperException | InterruptedException e) {LOGGER.error("節(jié)點(diǎn)監(jiān)控出錯(cuò),原因:", e);}} }

    這個(gè)類的入口是構(gòu)造器,作用是獲取 zk 的地址,然后獲取 zk 上的節(jié)點(diǎn)信息,這里沒有實(shí)現(xiàn)服務(wù)訂閱,也就是說如果 zk 上原本有兩個(gè)服務(wù),掛掉一個(gè),客戶端不會(huì)剔除掛掉的服務(wù)信息,導(dǎo)致調(diào)用失敗。

    然后是ConsumerProxy,它是一個(gè)代理工廠:

    package com.glmapper.simple.consumer.proxy;/*** ConsumerProxy** @author Jerry*/ public class ConsumerProxy {private ServiceDiscovery serviceDiscovery;public ConsumerProxy(ServiceDiscovery serviceDiscovery) {this.serviceDiscovery = serviceDiscovery;}@SuppressWarnings("unchecked")public <T> T create(Class<?> interfaceClass) {return (T) Proxy.newProxyInstance(interfaceClass.getClassLoader(),new Class<?>[]{interfaceClass},new SimpleInvocationHandler());}private class SimpleInvocationHandler implements InvocationHandler {@Overridepublic Object invoke(Object proxy, Method method, Object[] args) throws Throwable {SimpleRequest request = buildRequest(method, args);String serverAddress = getServerAddress();String[] array = serverAddress.split(":");String host = array[0];int port = Integer.parseInt(array[1]);ConsumerHandler consumerHandler = new ConsumerHandler(host, port);SimpleResponse response = consumerHandler.send(request);if (response.getError() != null) {throw new SimpleException("service invoker error,cause:", response.getError());} else {return response.getResult();}}private SimpleRequest buildRequest(Method method, Object[] args) {SimpleRequest request = new SimpleRequest();request.setRequestId(UUID.randomUUID().toString());request.setClassName(method.getDeclaringClass().getName());request.setMethodName(method.getName());request.setParameterTypes(method.getParameterTypes());request.setParameters(args);return request;}private String getServerAddress() {String serverAddress = null;if (serviceDiscovery != null) {serverAddress = serviceDiscovery.discover();}if (null == serverAddress) {throw new SimpleException("no server address available");}return serverAddress;}} }

    這里有個(gè)內(nèi)部類SimpleInvocationHandler是生產(chǎn)代理的核心,方法的核心是在 SimpleInvocationHandler.invoke()中是調(diào)用這兩行代碼

    ConsumerHandler consumerHandler = new ConsumerHandler(host, port); SimpleResponse response = consumerHandler.send(request);

    發(fā)起網(wǎng)絡(luò)請(qǐng)求,下面看下ConsumerHandler類

    package com.glmapper.simple.consumer.handler;/*** RPC真正調(diào)用客戶端** @author Jerry*/ public class ConsumerHandler extends SimpleChannelInboundHandler<SimpleResponse> {private static final Logger LOGGER = LoggerFactory.getLogger(ConsumerHandler.class);private int port;private String host;private SimpleResponse response;private CountDownLatch latch = new CountDownLatch(1);public ConsumerHandler(String host, int port) {this.host = host;this.port = port;}@Overridepublic void channelRead0(ChannelHandlerContext ctx, SimpleResponse response) throws Exception {this.response = response;latch.countDown();}@Overridepublic void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception {LOGGER.error("client caught exception", cause);ctx.close();}public SimpleResponse send(SimpleRequest request) throws Exception {EventLoopGroup group = new NioEventLoopGroup();try {Bootstrap bootstrap = new Bootstrap();ChannelInitializer<SocketChannel> channelHandler = new ChannelInitializer<SocketChannel>() {@Overridepublic void initChannel(SocketChannel channel) throws Exception {channel.pipeline()// 將 RPC 請(qǐng)求進(jìn)行編碼(為了發(fā)送請(qǐng)求).addLast(new SimpleEncoder(SimpleRequest.class))// 將 RPC 響應(yīng)進(jìn)行解碼(為了處理響應(yīng)).addLast(new SimpleDecoder(SimpleResponse.class))// 使用 RpcClient 發(fā)送 RPC 請(qǐng)求.addLast(ConsumerHandler.this);}};bootstrap.group(group).channel(NioSocketChannel.class).handler(channelHandler).option(ChannelOption.SO_KEEPALIVE, true);ChannelFuture future = bootstrap.connect(host, port).sync();future.channel().writeAndFlush(request).sync();latch.await();if (response != null) {future.channel().closeFuture().sync();}return response;} finally {group.shutdownGracefully();}} }

    這個(gè)類和服務(wù)端的 ProviderHandler 的代碼差不多,也是netty通訊類

    附一下 GitHub 地址 simple-rpc

    轉(zhuǎn)載于:https://my.oschina.net/GinkGo/blog/1834620

    總結(jié)

    以上是生活随笔為你收集整理的你真的明白RPC 吗?一起来探究 RPC 的实质的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

    久久狠狠亚洲综合 | 亚洲精品自在在线观看 | 久久久高清一区二区三区 | 亚洲综合精品视频 | 亚洲影音先锋 | 日韩二区三区在线 | 久久婷婷国产 | 天天综合中文 | 欧美成人一二区 | 国产精品视频app | 亚洲综合狠狠干 | 亚洲国产成人久久综合 | 色偷偷88888欧美精品久久久 | 久久婷亚洲五月一区天天躁 | 久久久在线 | 亚洲精品中文在线 | 狠狠色丁香久久婷婷综合_中 | 精品国产一区二区久久 | 日日精品 | 精品在线小视频 | 精品视频在线视频 | 亚洲天天在线日亚洲洲精 | 日韩电影一区二区在线 | 成人免费一级片 | 欧美一二三区在线播放 | 久草精品视频 | 不卡av电影在线观看 | 黄色毛片一级 | 国产视频久久久 | 国产精品美女久久久久久久网站 | 一区二区欧美激情 | 一本一道久久a久久精品蜜桃 | 日本在线观看一区 | 在线观看一区二区精品 | 成年人在线看片 | 国产亚洲午夜高清国产拍精品 | 亚洲天堂自拍视频 | 欧美另类性 | 免费av网站观看 | 国产精品美女毛片真酒店 | av免费观看在线 | 日韩精品一区二区在线观看视频 | 亚洲精品视频在线播放 | 在线观看色网站 | 久久久久亚洲精品男人的天堂 | 91日韩在线播放 | 在线观看视频黄色 | 国产18精品乱码免费看 | 在线免费观看黄色av | 久久一久久 | 久久人人97超碰国产公开结果 | 很黄很黄的网站免费的 | 欧美亚洲成人免费 | 91亚瑟视频 | av中文在线观看 | 93久久精品日日躁夜夜躁欧美 | 成人9ⅰ免费影视网站 | 午夜精品成人一区二区三区 | 精品一二三四五区 | 97影视| 国产午夜精品免费一区二区三区视频 | 国产一级三级 | 国产在线精品国自产拍影院 | 午夜视频在线观看一区 | 久久夜色精品国产欧美乱 | 国产成人av电影在线观看 | 亚洲第一区精品 | 一区精品在线 | 91麻豆精品国产 | 久久久国产精品一区二区中文 | 美女视频黄的免费的 | 久久久久国产精品厨房 | 狠狠五月天| 91在线免费观看国产 | av在线之家电影网站 | 国产精彩在线视频 | 欧美日韩首页 | 成人欧美日韩国产 | 在线中文字幕网站 | 国产色妞影院wwwxxx | 99视频国产在线 | 精品久久久久久国产91 | 激情伊人五月天 | 人人添人人澡人人澡人人人爽 | 国产 字幕 制服 中文 在线 | 综合婷婷| 国产在线高清 | 精品亚洲免费视频 | 日本精品视频一区 | 国产字幕在线观看 | 中文字幕国产在线 | 婷婷丁香国产 | 五月天亚洲综合小说网 | 天天色视频 | 超碰97人 | 成人午夜免费福利 | 国产一级免费观看 | 午夜久久福利影院 | 日韩欧美高清一区二区三区 | 伊人狠狠色丁香婷婷综合 | 国产婷婷 | 国产成人99av超碰超爽 | 国产区欧美 | 69xx视频 | 国产婷婷vvvv激情久 | 国产精品福利午夜在线观看 | 国产日韩精品一区二区三区 | 91麻豆国产 | 99国产精品 | 欧美一区二区在线刺激视频 | 欧洲亚洲国产视频 | 成人黄色片在线播放 | 天天干天天草 | 欧美aaa一级 | 免费看v片 | 久热久草 | 日韩高清成人在线 | 免费亚洲黄色 | 亚洲美女精品区人人人人 | 日韩av中文在线观看 | 9在线观看免费高清完整版在线观看明 | 麻豆高清免费国产一区 | 亚洲乱码精品 | 亚洲精品福利视频 | 日韩一区二区免费视频 | 欧美另类xxxxx | 久久久久欠精品国产毛片国产毛生 | 国产无遮挡猛进猛出免费软件 | 波多野结衣精品 | 亚洲国产精品第一区二区 | 99国产视频在线 | 在线免费观看黄色小说 | 色五月色开心色婷婷色丁香 | 99久久精品无码一区二区毛片 | 精品视频免费久久久看 | 一区二区精品在线 | 亚洲午夜精品电影 | 人人看人人做人人澡 | 九九在线精品视频 | 亚州av一区 | 91av蜜桃| 中文字幕国产视频 | 91最新视频在线观看 | 日韩免费电影网站 | 99视频在线观看一区三区 | 久久久久久99精品 | 日韩精品亚洲专区在线观看 | 在线91网| 五月天中文字幕 | 国产国产人免费人成免费视频 | 亚洲精品黄网站 | 亚州av免费 | 午夜视频久久久 | 成 人 黄 色 视频免费播放 | 久久综合福利 | 欧美韩日在线 | 中文字幕网址 | 丁香婷婷基地 | 美女在线观看网站 | 欧美日韩国产伦理 | 国产片免费在线观看视频 | 国产精品久久久久国产a级 激情综合中文娱乐网 | 久久久久久久久久久久av | 久久精品最新 | 美女视频黄频大全免费 | 在线影院 国内精品 | 久久视频免费观看 | 人人插人人射 | 在线观看成年人 | 视频1区2区 | 国产成在线观看免费视频 | 日韩大片在线播放 | 99热国产在线中文 | 韩国精品一区二区三区六区色诱 | 激情久久综合网 | 亚洲视频免费视频 | 国产网红在线观看 | 日韩一级片观看 | 久久亚洲美女 | 又紧又大又爽精品一区二区 | 成人黄色大片在线免费观看 | 日批视频国产 | 欧美大片大全 | av福利网址导航大全 | 开心激情五月婷婷 | 欧美二区三区91 | 中文字幕在线观看视频一区二区三区 | 欧美一区二区三区在线播放 | 美女性爽视频国产免费app | www.亚洲精品在线 | 免费网址你懂的 | 韩国一区视频 | 亚洲,播放| 国产一区在线播放 | 国产精品一区二区三区在线 | 国产在线观看高清视频 | 精品国产色 | av高清一区 | 91av久久| 久久久片 | 日韩伦理片一区二区三区 | 久草视频播放 | 五月激情久久 | 国产香蕉97碰碰碰视频在线观看 | 色综合久久综合网 | 4438全国亚洲精品在线观看视频 | 欧美性色综合网站 | 欧美在线视频日韩 | 开心激情久久 | 国产精久久久久久妇女av | 在线免费观看av网站 | 国产成人久久久久 | 国产精品嫩草影院99网站 | 激情开心色 | 免费观看视频黄 | 超碰人人做| 国产精品一区二区免费在线观看 | www.888av| 永久免费毛片在线观看 | 激情久久影院 | 片网站 | av免费电影网站 | 91一区一区三区 | 亚洲午夜av电影 | 亚洲免费一级电影 | 中文字幕日本在线观看 | 日韩一区二区三区高清免费看看 | 999久久久免费视频 午夜国产在线观看 | 国产一区二区网址 | 青青草国产精品 | 国产三级精品在线 | 精品亚洲免费 | 久久国产精品第一页 | 在线观看视频在线观看 | 香蕉视频国产在线 | 久久久久综合精品福利啪啪 | 美女黄色网在线播放 | 久久久久五月 | 五月天伊人网 | 四虎国产免费 | 亚洲成a人片在线www | 亚洲一区精品人人爽人人躁 | 在线 国产 亚洲 欧美 | 99re8这里有精品热视频免费 | 99热这里只有精品8 久久综合毛片 | 91在线播 | 国产又粗又猛又色又黄视频 | 欧美精品久久人人躁人人爽 | 中文字幕中文字幕 | 午夜视频在线观看一区二区三区 | 日韩免费观看视频 | 亚洲一区精品二人人爽久久 | 日本中文字幕在线视频 | 六月激情 | 欧美日韩中文另类 | 国产女v资源在线观看 | 天天躁天天躁天天躁婷 | 精品99视频| 国产精品24小时在线观看 | 国产玖玖精品视频 | 奇米影视777影音先锋 | 色婷婷视频在线 | 久久精品国产一区 | 热re99久久精品国产99热 | 天天色天天射天天综合网 | 国产激情小视频在线观看 | 欧美韩日精品 | 国产午夜精品一区二区三区在线观看 | 精品视频999 | 国产午夜av| 777视频在线观看 | 久久精品伊人 | .国产精品成人自产拍在线观看6 | 天天拍天天爽 | 久久手机视频 | 97国产电影 | 久久久久久久久久久久av | 中文字幕av一区二区三区四区 | 色婷婷伊人| 97精品一区二区三区 | 国产一区二区在线播放视频 | 日韩91av | 国产精品免费大片视频 | 午夜性生活片 | 日韩精品一区在线观看 | 免费在线观看日韩欧美 | 中文字幕资源站 | 日日草夜夜操 | 国产成人三级在线观看 | av在线com | 夜夜躁天天躁很躁波 | av成人免费在线看 | 欧美日韩免费看 | 国产精品久久久久久久久婷婷 | 少妇bbw撒尿 | 午夜久久网站 | 99精品久久只有精品 | 一级免费看 | 国产精选视频 | 天堂av网在线 | 91豆花在线观看 | 国产精品免费在线播放 | 国产无区一区二区三麻豆 | 亚洲欧美日韩一区二区三区在线观看 | 探花视频免费在线观看 | 91视频黄色 | www国产亚洲精品久久网站 | 97人人澡人人添人人爽超碰 | 啪啪动态视频 | 亚洲黄色a| 久久精品综合 | 97超碰网| 久久中文字幕视频 | 91最新在线观看 | 天堂av在线网站 | 激情五月在线视频 | 国产裸体无遮挡 | 国产在线不卡 | 久久中文字幕视频 | 日本韩国中文字幕 | 成人在线视频观看 | 亚洲视频 视频在线 | 中文字幕在线视频一区二区三区 | 国产精品二区在线观看 | 成人精品在线 | 日韩欧美综合在线视频 | 91麻豆精品国产91久久久无需广告 | 国产一区二区中文字幕 | 久久av免费| 久久综合婷婷国产二区高清 | 亚洲国产三级 | 人人看人人爱 | 亚洲欧美日韩一二三区 | 国产精品观看在线亚洲人成网 | 成人黄大片视频在线观看 | 欧美-第1页-屁屁影院 | 色婷婷精品 | 成人教育av| 久久狠狠干 | 亚洲一级黄色大片 | 精品乱码一区二区三四区 | 在线看v片成人 | 中文字幕视频网 | 五月婷婷丁香 | 中文字幕色站 | 亚洲免费观看在线视频 | 国产又粗又猛又黄又爽 | 久久久久久久网站 | 干天天| 成人禁用看黄a在线 | 久久久69| 91在线视频免费91 | 99视频久| 国产 亚洲 欧美 在线 | 人人射网站 | 狠狠狠色 | 五月婷婷综合网 | 亚洲jizzjizz日本少妇 | 四虎在线视频免费观看 | 亚洲天天综合网 | 三级黄色片在线观看 | 亚洲精品18日本一区app | 成年美女黄网站色大片免费看 | 操操操日日日 | 久久在线看 | 欧美 激情在线 | 99精品观看| 国产精品免费看久久久8精臀av | 在线观看视频在线 | 在线国产高清 | 人人艹人人 | 在线免费高清视频 | 日韩欧美一区二区三区免费观看 | 91国内在线 | 国产精品露脸在线 | 国产亚洲一级高清 | 男女激情网址 | 欧美在线99| 麻豆一精品传二传媒短视频 | 国产中文字幕视频在线 | 在线免费观看羞羞视频 | 不卡的一区二区三区 | 精品一二三区 | 国产综合香蕉五月婷在线 | 成人h视频 | 激情丁香5月 | 五月婷婷综合激情 | 一二三区在线 | 色av男人的天堂免费在线 | 91最新在线观看 | 日本精品一区二区三区在线观看 | 久久久精品久久日韩一区综合 | 久久午夜国产 | 免费视频一区 | 亚洲精品一区中文字幕乱码 | 国产日韩视频在线观看 | 日韩午夜av电影 | av在线直接看 | 天天射天天干天天操 | 成人免费视频视频在线观看 免费 | 国产亚洲aⅴaaaaaa毛片 | 亚洲一区尤物 | 成人禁用看黄a在线 | 亚洲成a人片在线www | 色婷婷激情综合 | 亚洲精品在线一区二区 | 国产一级免费av | 欧美亚洲精品一区 | 国产一区二区精品91 | 欧美日韩久久不卡 | 超碰免费av | 在线免费看黄网站 | 日韩中文字幕网站 | 91av免费在线观看 | 在线成人一区 | 国产精品国产三级国产不产一地 | 欧美日韩不卡在线 | 色天天 | 日韩av视屏在线观看 | 精品国产一区二区三区久久久蜜臀 | 亚洲精品99久久久久久 | 波多野结衣精品 | 久久视频免费看 | 亚洲综合导航 | 欧美激情综合五月 | 亚洲成人精品 | 国产老妇av | 六月丁香综合网 | 丁香婷婷基地 | 亚洲综合最新在线 | 国产精品欧美久久久久久 | 久久久免费观看完整版 | 色综合天天综合 | 国产精品不卡在线播放 | 亚洲精品视频在线 | 91精品秘密在线观看 | 福利久久久 | 在线观看岛国 | 黄色软件在线观看视频 | 99av国产精品欲麻豆 | 99热这里只有精品久久 | 久久久69 | 国产精品久久久久毛片大屁完整版 | av电影免费在线播放 | 特级免费毛片 | 日日夜夜精品免费视频 | 久久久久高清毛片一级 | 国产成人精品一区二区三区网站观看 | 青青草国产在线 | 欧美成人精品欧美一级乱 | 三级黄色免费片 | a黄色片 | 久久伊人精品天天 | 国产精品系列在线 | 国产精品美女久久久久久网站 | 日韩一区二区三区不卡 | www.色婷婷.com | 免费观看第二部31集 | 国模视频一区二区三区 | 国产高清在线一区 | 亚洲 欧洲 国产 精品 | 国产亚洲精品综合一区91 | 久久精品视频国产 | 天天拍天天色 | 日韩av看片 | 亚洲国产福利视频 | 久久久久国产成人免费精品免费 | 免费a级毛片在线看 | 国产一级片一区二区三区 | 美女视频黄在线观看 | 久久久久综合精品福利啪啪 | 日韩mv欧美mv国产精品 | 正在播放一区二区 | 国产黄大片在线观看 | 中文字幕888 | 日韩在线视频一区二区三区 | 色婷婷狠狠18 | 在线 高清 中文字幕 | 男女激情片在线观看 | 97国产在线视频 | 免费黄色网址大全 | 日本中文字幕在线 | 五月丁香 | 国产精品久久久久久久久久久久午夜 | 精品国产一区二区三区久久 | 9草在线| 精品久久久久久久久久久院品网 | 亚洲精品美女在线观看播放 | 在线观看香蕉视频 | 免费日韩视频 | 亚洲精品在线免费播放 | 日本久久久久久久久 | 天天操·夜夜操 | 97在线精品国自产拍中文 | 丁五月婷婷| 欧美激情视频在线观看免费 | 国产啊v在线观看 | 香蕉视频国产在线 | 欧美日韩一区二区久久 | 亚洲精品婷婷 | 国产区精品视频 | 国产精品大全 | 国产视频日韩视频欧美视频 | 天天操比 | 国产资源网站 | 久久天天躁夜夜躁狠狠躁2022 | 日韩电影在线观看一区二区 | 绯色av一区 | 久久这里精品视频 | 久久久久久久久久久久久久电影 | 久久99精品久久只有精品 | 4438全国亚洲精品观看视频 | 亚洲天堂网站视频 | 蜜臀av夜夜澡人人爽人人 | 日韩特黄一级欧美毛片特黄 | 黄色小说视频网站 | 精品在线99 | 国产视频九色蝌蚪 | 开心激情综合网 | 久草视频观看 | 亚洲激精日韩激精欧美精品 | 久久1电影院 | 欧美国产三区 | 亚洲一区av| 亚洲精品乱码久久久久久蜜桃欧美 | 就色干综合 | 国产免费观看久久 | 亚洲精品中文字幕在线 | 久久人人爽爽 | 天天干天天做天天操 | 四虎国产精| 国产黄色视| 麻豆国产网站入口 | 亚洲第一成网站 | 国产高清久久 | 天天操狠狠操 | 国产伦精品一区二区三区… | 国产香蕉97碰碰久久人人 | 久久久久国产成人精品亚洲午夜 | 成人av电影免费在线观看 | 天天插狠狠插 | 日韩毛片在线一区二区毛片 | 日本女人b| www.黄色在线 | 人人射人人爽 | 天堂av网站 | 国产精品久久久久久超碰 | 日韩电影一区二区在线观看 | 国产精品免费久久久久影院仙踪林 | 久久这里只有精品23 | 91在线免费视频观看 | 久久亚洲综合色 | 欧美日韩精品在线观看 | 国产一区影院 | 中文字幕精品久久 | 五月宗合网| 网址你懂的在线观看 | 国产区在线视频 | 亚洲黄色激情小说 | 亚洲在线视频播放 | av免费在线观 | 国产亚洲精品中文字幕 | 欧美成人aa | 狠狠ri| 国产精品嫩草69影院 | 天天舔天天射天天操 | 黄色在线视频网址 | 成人在线视频免费看 | 国产精彩视频一区二区 | 免费av免费观看 | 97在线观看免费观看 | 91看片在线观看 | 色吧久久 | 人人看人人草 | 久久国产精品久久久久 | 亚洲精品1区2区3区 超碰成人网 | 人人爽人人看 | 婷婷丁香色 | 欧美日本不卡 | 丁香六月综合网 | 成人a v视频| 欧美性色黄 | 人人舔人人射 | 精精国产xxxx视频在线播放 | 日本公妇在线观看 | 中文字幕 二区 | 日韩激情视频 | 中文字幕中文字幕中文字幕 | 国产精品美女久久久久久网站 | 高清av影院 | 亚洲视频播放 | av看片在线观看 | 2021国产精品视频 | 成人午夜精品久久久久久久3d | 伊人天天色 | 狠狠狠狠狠狠狠狠干 | 一级黄色在线视频 | 超碰国产在线观看 | 国产成人久久 | 麻豆小视频在线观看 | 国产精品九九九 | 四虎影视成人精品 | 91成人天堂久久成人 | 在线国产日韩 | 日韩一级电影在线观看 | 欧美日韩在线播放 | 操久| 麻豆91视频| 国产在线看 | 亚洲,播放| 久久精品精品电影网 | 亚洲精品国产精品国自 | 99精品国产在热久久下载 | 亚洲天堂网站视频 | 人人插人人爱 | 国产精品2区| 在线国产91 | av在线免费在线观看 | 美女网站黄免费 | 日本黄色免费大片 | 五月婷婷六月综合 | 97超碰色 | 日本久久成人 | 97高清视频 | 精品专区一区二区 | 91字幕| 亚洲做受高潮欧美裸体 | 五月婷婷综合在线观看 | 日本不卡一区二区 | 国产精品久久久区三区天天噜 | 国产精品门事件 | 在线播放av网址 | 亚洲有 在线 | 一区二区三区日韩视频在线观看 | 亚洲一区二区观看 | 99久久精品无免国产免费 | 亚洲va欧美| 亚洲精品在线观看不卡 | 欧美亚洲免费在线一区 | 久热超碰 | 久久视屏网 | 日韩三级一区 | 欧美亚洲精品在线观看 | 一区二区三区不卡在线 | 免费网站v | 国产99久久精品一区二区300 | 91丨九色丨丝袜 | 女人18毛片90分钟 | 日本精品视频网站 | 国产999精品久久久久久 | 亚洲精品456在线播放乱码 | 久久精品网址 | 免费观看性生交大片3 | 亚洲日韩欧美一区二区在线 | 亚洲精品一区二区三区高潮 | 国产午夜三级一区二区三桃花影视 | 日韩毛片在线免费观看 | 欧美日韩在线播放 | 中文视频一区二区 | 国产99视频在线观看 | 欧美人zozo| av片在线观看免费 | 免费高清av在线看 | 91成人免费视频 | 国内成人精品视频 | a级黄色片视频 | 欧美成人h版 | 91av视频在线免费观看 | 成人小视频在线免费观看 | 香蕉视频免费在线播放 | 成人欧美亚洲 | 丝袜美腿在线 | 人人爽人人搞 | 婷婷国产v亚洲v欧美久久 | 午夜久久久久久久久久久 | 00av视频| 午夜视频一区二区三区 | 欧美日韩激情视频8区 | 探花视频在线观看+在线播放 | 日韩在线观看的 | 国模精品在线 | 亚洲美女精品区人人人人 | 九九热re| 日韩免费观看av | 丝袜精品视频 | 欧美黑人xxxx猛性大交 | 懂色av一区二区三区蜜臀 | 天躁狠狠躁 | 亚洲蜜桃在线 | av在线官网 | 久久超碰免费 | 黄色h在线观看 | 91在线免费视频 | 91在线免费播放 | 99精品网站 | 国产精品视频永久免费播放 | 日韩综合在线观看 | 91大片网站 | 欧美成人精品欧美一级乱黄 | 综合色亚洲 | 麻豆果冻剧传媒在线播放 | 成人片在线播放 | 99国产精品久久久久老师 | 在线观看视频免费播放 | 黄色片网站大全 | 国产精品成人国产乱 | 国内成人精品2018免费看 | 国模一二三区 | 亚洲欧洲国产日韩精品 | 九九99视频 | 亚洲国产精品久久久 | 俺要去色综合狠狠 | 69久久99精品久久久久婷婷 | 亚州欧美精品 | 久久综合久久综合这里只有精品 | 18av在线视频 | 久久免费在线 | 中文字幕二区 | 日韩欧美一区二区三区黑寡妇 | 日韩欧美亚州 | 亚洲婷婷在线 | 亚洲jizzjizz日本少妇 | 正在播放 国产精品 | 亚洲成成品网站 | 在线观看一区 | 久久福利剧场 | 欧美aaaxxxx做受视频 | 日韩精品一区二区三区三炮视频 | 色婷婷一区 | 九九热在线精品 | 亚洲高清视频在线观看 | 不卡的av电影 | 激情在线网 | 久久久色| va视频在线| 国产精品美女久久久久aⅴ 干干夜夜 | 精品国产一区二区三区男人吃奶 | 一区中文字幕电影 | 99视频在线免费观看 | 亚洲欧美国产精品久久久久 | 免费91在线观看 | 久久涩视频 | 日韩午夜一级片 | 狠狠色丁香婷婷综合视频 | 久久久国产精品亚洲一区 | 日韩国产精品一区 | 在线免费av网站 | 天天综合网 天天 | 国产午夜影院 | 国产成人一区二区精品非洲 | 午夜在线免费视频 | av国产在线观看 | 91日韩在线专区 | 亚洲精品在线国产 | 五月婷婷,六月丁香 | 欧美日韩在线视频免费 | 特级毛片在线免费观看 | 波多野结衣在线播放一区 | 色www精品视频在线观看 | 波多野结衣在线观看视频 | 精品一区二区av | 久久天天躁狠狠躁亚洲综合公司 | 天天操天天操天天操天天操天天操天天操 | 久久视| 福利一区在线 | 久草在线视频精品 | 国产精品久久久一区二区三区网站 | 91chinese在线 | 免费看片日韩 | 亚洲专区欧美专区 | 一级免费看 | 久久天堂精品视频 | 粉嫩aⅴ一区二区三区 | 亚洲精品白浆高清久久久久久 | 久久国产日韩 | av在线电影免费观看 | 国产99久久久精品 | www178ccom视频在线 | 国产精品99久久99久久久二8 | 五月婷社区 | 国产日韩视频在线播放 | 黄色成人av在线 | 一级欧美一级日韩 | 亚洲日本欧美在线 | 91精品对白一区国产伦 | 97超碰在线久草超碰在线观看 | 91九色蝌蚪在线 | 激情网综合 | 日韩三级视频 | 在线免费视频一区 | 九九热久久免费视频 | av一二三区| 97涩涩视频 | 国产精品一区二区精品视频免费看 | 免费人成网ww44kk44 | 日韩精品视频免费在线观看 | 人人dvd| av成人在线看 | 日本爱爱免费 | 国产精品一区二区精品视频免费看 | 国产一区二区不卡视频 | 在线观看你懂的网址 | 人人添人人| 亚洲a色| 免费日韩 精品中文字幕视频在线 | 成人免费看视频 | 最近中文字幕在线中文高清版 | 国模精品一区二区三区 | 成年人免费看片 | 亚洲国产精品久久 | 91久久精品一区二区三区 | 国产精品久久久亚洲 | 日韩av电影手机在线观看 | 久久久久99精品成人片三人毛片 | 中文字幕网站视频在线 | 欧美大码xxxx | 少妇bbbb揉bbbb日本 | 国产视频在线观看一区 | 黄av在线| 在线黄网站 | 色哟哟国产精品 | 黄色大全免费网站 | 亚洲少妇xxxx| 国产精品中文字幕在线观看 | 亚洲片在线 | 久久激情小视频 | 色爱区综合激月婷婷 | 久99久在线视频 | 久久男人中文字幕资源站 | a视频在线| 色婷婷综合久久久久 | 人人玩人人添人人澡97 | 97av色 | 中文字幕在线看视频国产中文版 | 66av99精品福利视频在线 | 日日夜夜天天久久 | 成人av免费看 | 在线观看a视频 | 日韩精品在线视频 | 中文字幕 影院 | 97视频久久久 | 国产精品久久久久一区二区 | 天天操婷婷 | 激情视频国产 | 久久久国产在线视频 | 九九有精品 | 亚洲免费色| 亚洲国产一区av | 久久久官网 | 看片的网址| 国产精品白浆 | 亚洲一区二区黄色 | 天天操天天舔天天爽 | 午夜精品一二区 | 久久久午夜影院 | 免费a v视频 | a在线免费观看视频 | 日本一区二区三区免费看 | 国产精品免费在线 | 日韩免费观看av | 免费视频一区二区 | 96久久精品 | 首页国产精品 | 在线91色| 国产一级二级在线观看 | 欧美亚洲xxx | 日韩av影视在线观看 | 欧美日韩国产一区二区三区 | 美女视频黄在线观看 | 97人人模人人爽人人喊中文字 | 欧美激情另类文学 | 国产97视频在线 | 亚洲视频免费在线观看 | 国产精品永久在线观看 | 日本韩国精品一区二区在线观看 | 一区中文字幕电影 | 精品女同一区二区三区在线观看 | 午夜色性片 | 超碰在线观看97 | 麻豆视频在线免费观看 | 国产精品1024| 欧美亚洲精品在线观看 | 精品国产一区二区三区不卡 | 日本三级久久久 | 欧美日本在线观看视频 | 成人在线一区二区三区 | 日韩电影中文字幕在线观看 | 一区 二区电影免费在线观看 | 亚洲动漫在线观看 | 伊人狠狠色丁香婷婷综合 | 亚洲黄网站| 99久久爱 | 2000xxx影视| 精品国产理论 | 草莓视频在线观看免费观看 | 国产高清不卡在线 | 日韩大片在线 | 成人毛片在线观看视频 | 国产亚洲精品久久久网站好莱 | 91精品老司机久久一区啪 | 国产裸体永久免费视频网站 | 中文字幕观看视频 | 99热精品国产一区二区在线观看 | 91亚洲国产成人 | 久草www | 99久久电影| 国产精品成人a免费观看 | 中文在线√天堂 | 99精品免费久久久久久久久日本 | 国产精品一区二区三区在线播放 | 精品国产中文字幕 | 亚洲香蕉在线观看 | 日韩女同一区二区三区在线观看 | 久久视频免费在线观看 | 99免费在线观看 | 永久免费观看视频 | 国产高清视频 | 9999国产精品 | 三级黄色免费 | 国产夫妻av在线 | av免费电影在线观看 | 日韩av电影网站在线观看 | 日韩在线电影观看 | 亚洲综合色播 | 国产成人精品一区一区一区 | 久久久精品一区二区 | 日韩在线理论 | 亚洲影院天堂 | 久艹视频在线免费观看 | 国内综合精品午夜久久资源 | 中文国产在线观看 | 久久草在线精品 | 人人狠狠综合久久亚洲婷 | 在线视频一二区 | 免费看一级特黄a大片 | 久久久久久久久毛片精品 | 91精品专区 | 五月婷婷综合激情网 | 亚洲四虎 | 欧美国产日韩一区二区三区 | 在线亚洲午夜片av大片 | 成人久久影院 | 成人丁香花 | 久久精品国产美女 | 国产精品久久久久久久99 | 欧美午夜精品久久久久久浪潮 | 91精品亚洲影视在线观看 | 一二区电影 | 色综合天天色综合 | 久久黄色网页 | 久久午夜免费观看 | 五月婷婷操 | 97超碰国产精品女人人人爽 | 国产在线97| 在线av资源 | 亚洲 综合 精品 | 999ZYZ玖玖资源站永久 | 日韩av偷拍 | 婷婷亚洲五月色综合 | 日韩欧美区 | 久久精品99国产精品日本 | 日韩精品久久一区二区三区 | 欧美激情视频在线免费观看 | 精品三级av | 久久精品亚洲一区二区三区观看模式 | 天天色.com| wwwwwww黄| 久久se视频 | 日韩午夜av| 在线观看av中文字幕 | 久久久精品国产免费观看一区二区 | 日韩欧美高清在线 | 成 人 黄 色 免费播放 | 久久综合九色综合久久久精品综合 | 国产剧情在线一区 | 成片人卡1卡2卡3手机免费看 | 狠狠色丁香婷婷综合久久片 | 婷色| 日韩高清观看 | 国产一区二区三精品久久久无广告 | 911香蕉 | 一区在线观看视频 | 亚洲美女在线一区 | 超碰97在线资源站 | 免费在线观看日韩 | 国精产品一二三线999 | www.色午夜 | 91刺激视频 | 99热在线免费观看 | 美女久久久久 | 欧美国产视频在线 | 国产中文字幕在线免费观看 | bbw av| 久久免费视频8 | 日日夜夜中文字幕 | 国产拍揄自揄精品视频麻豆 | 久久国产精品99久久久久 | 国产视频一区二区在线播放 |