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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

宜人贷蜂巢API网关技术解密之Netty使用实践

發布時間:2024/4/14 编程问答 68 豆豆
生活随笔 收集整理的這篇文章主要介紹了 宜人贷蜂巢API网关技术解密之Netty使用实践 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

2019獨角獸企業重金招聘Python工程師標準>>>

一、背景

宜人貸蜂巢團隊,由Michael創立于2013年,通過使用互聯網科技手段助力金融生態和諧健康發展。自成立起一直致力于多維度數據閉環平臺建設。目前團隊規模超過百人,涵蓋征信、電商、金融、社交、五險一金和保險等用戶授信數據的抓取解析業務,輔以先進的數據分析、挖掘和機器學習等技術對用戶信用級別、欺詐風險進行預測評定,全面對外輸出金融反欺詐、社交圖譜、自動化模型定制等服務或產品。

目前宜人貸蜂巢基于用戶授權數據實時抓取解析技術,并結合頂尖大數據技術,快速迭代和自主的創新,已形成了強大而領先的聚合和輸出能力。

為了適應完成宜人貸蜂巢強大的服務輸出能力,蜂巢設計開發了自己的API網關系統,集中實現了鑒權、加解密、路由、限流等功能,使各業務抓取團隊關注其核心抓取和分析工作,而API網關系統更專注于安全、流量、路由等問題,從而更好的保障蜂巢服務系統的質量。今天帶著大家解密API網關的Netty線程池技術實踐細節。

API網關作為宜人貸蜂巢數據開放平臺的統一入口,所有的客戶端及消費端通過統一的API來使用各類抓取服務。從面向對象設計的角度看,它與外觀模式類似,包裝各類不同的實現細節,對外表現出統一的調用形式。

本文首先簡要地介紹API網關的項目框架,其次對比BIO和NIO的特點,再引入Netty作為項目的基礎框架,然后介紹Netty線程池的原理,最后深入Netty線程池的初始化、ServerBootstrap的初始化與啟動及channel與線程池的綁定過程,讓讀者了解Netty在承載高并發訪問的設計路思。

二、項目框架

圖1 - API網關項目框架

圖中描繪了API網關系統的處理流程,以及與服務注冊發現、日志分析、報警系統、各類爬蟲的關系。其中API網關系統接收請求,對請求進行編解碼、鑒權、限流、加解密,再基于Eureka服務注冊發現模塊,將請求發送到有效的服務節點上;網關及抓取系統的日志,會被收集到elk平臺中,做業務分析及報警處理。

三、BIO vs NIO

API網關承載數倍于爬蟲的流量,提升服務器的并發處理能力、縮短系統的響應時間,通信模型的選擇是至關重要的,是選擇BIO,還是NIO?

Streamvs Buffer & 阻塞 vs 非阻塞

BIO是面向流的,io的讀寫,每次只能處理一個或者多個bytes,如果數據沒有讀寫完成,線程將一直等待于此,而不能暫時跳過io或者等待io讀寫完成異步通知,線程滯留在io讀寫上,不能充分利用機器有限的線程資源,造成server的吞吐量較低,見圖2。而NIO與此不同,面向Buffer,線程不需要滯留在io讀寫上,采用操作系統的epoll模式,在io數據準備好了,才由線程來處理,見圖3。

圖2 – BIO 從流中讀取數據

圖3 – NIO 從Buffer中讀取數據

Selectors

NIO的selector使一個線程可以監控多個channel的讀寫,多個channel注冊到一個selector上,這個selector可以監測到各個channel的數據準備情況,從而使用有限的線程資源處理更多的連接,見圖4。所以可以這樣說,NIO極大的提升了服務器接受并發請求的能力,而服務器性能還是要取決于業務處理時間和業務線程池模型。

圖4 – NIO 單一線程管理多個連接

而BIO采用的是request-per-thread模式,用一個線程負責接收TCP連接請求,并建立鏈路,然后將請求dispatch給負責業務邏輯處理的線程,見圖5。一旦訪問量過多,就會造成機器的線程資源緊張,造成請求延遲,甚至服務宕機。

圖5 – BIO 一連接一線程

對比JDK NIO與諸多NIO框架后,鑒于Netty優雅的設計、易用的API、優越的性能、安全性支持、API網關使用Netty作為通信模型,實現了基礎框架的搭建。

四、Netty線程池

考慮到API網關的高并發訪問需求,線程池設計,見圖6。

圖6 – API網關線程池設計

Netty的線程池理念有點像ForkJoinPool,不是一個線程大池子并發等待一條任務隊列,而是每條線程都有一個任務隊列。而且Netty的線程,并不只是簡單的阻塞地拉取任務,而是在每個循環中做三件事情:

  • 先SelectKeys()處理NIO的事件

  • 然后獲取本線程的定時任務,放到本線程的任務隊列里

  • 最后執行其他線程提交給本線程的任務

每個循環里處理NIO事件與其他任務的時間消耗比例,還能通過ioRatio變量來控制,默認是各占50%。可見,Netty的線程根本沒有阻塞等待任務的清閑日子,所以也不使用有鎖的BlockingQueue來做任務隊列了,而是使用無鎖的MpscLinkedQueue(Mpsc 是Multiple Producer, Single Consumer的縮寫)

五、NioEventLoopGroup初始化

下面分析下Netty線程池NioEventLoopGroup的設計與實現細節,NioEventLoopGroup的類層次關系見圖7

圖7 –NioEvenrLoopGroup類層次關系

其創建過程——方法調用,見下圖

圖8 –NioEvenrLoopGroup創建調用關系

NioEvenrLoopGroup的創建,具體執行過程是執行類MultithreadEventExecutorGroup的構造方法

/*** Create a new instance.** @param nThreads the number of threads that will be used by this instance.* @param executor the Executor to use, or {@code null} if the default should be used.* @param chooserFactory the {@link EventExecutorChooserFactory} to use.* @param args arguments which will passed to each {@link #newChild(Executor, Object...)} call*/protected MultithreadEventExecutorGroup(int nThreads, Executor executor,EventExecutorChooserFactory chooserFactory, Object... args) {if (nThreads <= 0) {throw new IllegalArgumentException(String.format("nThreads: %d (expected: > 0)", nThreads));}if (executor == null) {executor = new ThreadPerTaskExecutor(newDefaultThreadFactory());}children = new EventExecutor[nThreads];for (int i = 0; i < nThreads; i ++) {boolean success = false;try {children[i] = newChild(executor, args);success = true;} catch (Exception e) { throw new IllegalStateException("failed to create a child event loop", e);} finally {if (!success) {for (int j = 0; j < i; j ++) {children[j].shutdownGracefully();}for (int j = 0; j < i; j ++) {EventExecutor e = children[j];try {while (!e.isTerminated()) {e.awaitTermination(Integer.MAX_VALUE, TimeUnit.SECONDS);}} catch (InterruptedException interrupted) {// Let the caller handle the interruption.Thread.currentThread().interrupt();break;}}}}}chooser = chooserFactory.newChooser(children);final FutureListener<Object> terminationListener = new FutureListener<Object>() {@Overridepublic void operationComplete(Future<Object> future) throws Exception {if (terminatedChildren.incrementAndGet() == children.length) {terminationFuture.setSuccess(null);}}};for (EventExecutor e: children) {e.terminationFuture().addListener(terminationListener);}Set<EventExecutor> childrenSet = new LinkedHashSet<EventExecutor>(children.length);Collections.addAll(childrenSet, children);readonlyChildren = Collections.unmodifiableSet(childrenSet);}

其中,創建細節如下:

  • 線程池中的線程數nThreads必須大于0;

  • 如果executor為null,創建默認executor,executor用于創建線程(newChild方法使用executor對象);

  • 依次創建線程池中的每一個線程即NioEventLoop,如果其中有一個創建失敗,將關閉之前創建的所有線程;

  • chooser為線程池選擇器,用來選擇下一個EventExecutor,可以理解為,用來選擇一個線程來執行task;

chooser的創建細節,如下:

DefaultEventExecutorChooserFactory根據線程數創建具體的EventExecutorChooser,線程數如果等于2^n,可使用按位與替代取模運算,節省cpu的計算資源,見源碼:

@SuppressWarnings("unchecked")@Overridepublic EventExecutorChooser newChooser(EventExecutor[] executors) {if (isPowerOfTwo(executors.length)) {return new PowerOfTowEventExecutorChooser(executors);} else {return new GenericEventExecutorChooser(executors);}} private static final class PowerOfTowEventExecutorChooser implements EventExecutorChooser {private final AtomicInteger idx = new AtomicInteger();private final EventExecutor[] executors;PowerOfTowEventExecutorChooser(EventExecutor[] executors) {this.executors = executors;}@Overridepublic EventExecutor next() {return executors[idx.getAndIncrement() & executors.length - 1];}}private static final class GenericEventExecutorChooser implements EventExecutorChooser {private final AtomicInteger idx = new AtomicInteger();private final EventExecutor[] executors;GenericEventExecutorChooser(EventExecutor[] executors) {this.executors = executors;}@Overridepublic EventExecutor next() {return executors[Math.abs(idx.getAndIncrement() % executors.length)];}}

newChild(executor, args)的創建細節,如下

MultithreadEventExecutorGroup的newChild方法是一個抽象方法,故使用NioEventLoopGroup的newChild方法,即調用NioEventLoop的構造函數。

@Overrideprotected EventLoop newChild(Executor executor, Object... args) throws Exception {return new NioEventLoop(this, executor, (SelectorProvider) args[0],((SelectStrategyFactory) args[1]).newSelectStrategy(), (RejectedExecutionHandler) args[2]);}

在這里先看下NioEventLoop的類層次關系

NioEventLoop的繼承關系比較復雜,在AbstractScheduledEventExecutor 中, Netty 實現了 NioEventLoop 的 schedule 功能, 即我們可以通過調用一個 NioEventLoop 實例的 schedule 方法來運行一些定時任務. 而在 SingleThreadEventLoop 中, 又實現了任務隊列的功能, 通過它, 我們可以調用一個NioEventLoop 實例的 execute 方法來向任務隊列中添加一個 task, 并由 NioEventLoop 進行調度執行.

通常來說, NioEventLoop 肩負著兩種任務, 第一個是作為 IO 線程, 執行與 Channel 相關的 IO 操作, 包括調用 select 等待就緒的 IO 事件、讀寫數據與數據的處理等; 而第二個任務是作為任務隊列, 執行 taskQueue 中的任務, 例如用戶調用 eventLoop.schedule 提交的定時任務也是這個線程執行的.

具體的構造過程,如下

創建任務隊列tailTasks(內部為有界的LinkedBlockingQueue)

創建線程的任務隊列taskQueue(內部為有界的LinkedBlockingQueue),以及任務過多防止系統宕機的拒絕策略rejectedHandler

其中tailTasks和taskQueue均是任務隊列,而優先級不同,taskQueue的優先級高于tailTasks,定時任務的優先級高于taskQueue。

六、ServerBootstrap初始化及啟動

了解了Netty線程池NioEvenrLoopGroup的創建過程后,下面看下API網關服務ServerBootstrap的是如何使用線程池引入服務中,為高并發訪問服務的。

API網關ServerBootstrap初始化及啟動代碼,如下:

serverBootstrap = new ServerBootstrap();bossGroup = new NioEventLoopGroup(config.getBossGroupThreads());workerGroup = new NioEventLoopGroup(config.getWorkerGroupThreads());serverBootstrap.group(bossGroup, workerGroup).channel(NioServerSocketChannel.class).option(ChannelOption.TCP_NODELAY, config.isTcpNoDelay()).option(ChannelOption.SO_BACKLOG, config.getBacklogSize()).option(ChannelOption.SO_KEEPALIVE, config.isSoKeepAlive())// Memory pooled.option(ChannelOption.ALLOCATOR, PooledByteBufAllocator.DEFAULT).childOption(ChannelOption.ALLOCATOR, PooledByteBufAllocator.DEFAULT).childHandler(channelInitializer);ChannelFuture future = serverBootstrap.bind(config.getPort()).sync();log.info("API-gateway started on port: {}", config.getPort());future.channel().closeFuture().sync();

API網關系統使用netty自帶的線程池,共有三組線程池,分別為bossGroup、workerGroup和executorGroup(使用在channelInitializer中,本文暫不作介紹)。其中,bossGroup用于接收客戶端的TCP連接,workerGroup用于處理I/O、執行系統task和定時任務,executorGroup用于處理網關業務加解密、限流、路由,及將請求轉發給后端的抓取服務等業務操作。

七、Channel與線程池的綁定

ServerBootstrap初始化后,通過調用bind(port)方法啟動Server,bind的調用鏈如下:

AbstractBootstrap.bind ->AbstractBootstrap.doBind -> AbstractBootstrap.initAndRegister

其中,ChannelFuture regFuture = config().group().register(channel);中的group()方法返回bossGroup,而channel在serverBootstrap的初始化過程指定channel為NioServerSocketChannel.class,至此將NioServerSocketChannel與bossGroup綁定到一起,bossGroup負責客戶端連接的建立。那么NioSocketChannel是如何與workerGroup綁定到一起的?

調用鏈AbstractBootstrap.initAndRegister -> AbstractBootstrap. init-> ServerBootstrap.init ->ServerBootstrapAcceptor.ServerBootstrapAcceptor ->ServerBootstrapAcceptor.channelRead

public void channelRead(ChannelHandlerContext ctx, Object msg) {final Channel child = (Channel) msg;child.pipeline().addLast(childHandler);for (Entry<ChannelOption<?>, Object> e: childOptions) {try {if (!child.config().setOption((ChannelOption<Object>) e.getKey(), e.getValue())) {logger.warn("Unknown channel option: " + e);}} catch (Throwable t) {logger.warn("Failed to set a channel option: " + child, t);}}for (Entry<AttributeKey<?>, Object> e: childAttrs) {child.attr((AttributeKey<Object>) e.getKey()).set(e.getValue());}try {childGroup.register(child).addListener(new ChannelFutureListener() {@Overridepublic void operationComplete(ChannelFuture future) throws Exception {if (!future.isSuccess()) {forceClose(child, future.cause());}}});} catch (Throwable t) {forceClose(child, t);}}

其中,childGroup.register(child)就是將NioSocketChannel與workderGroup綁定到一起,那又是什么觸發了ServerBootstrapAcceptor的channelRead方法?

其實當一個 client 連接到 server 時, Java 底層的 NIO ServerSocketChannel 會有一個SelectionKey.OP_ACCEPT 就緒事件, 接著就會調用到 NioServerSocketChannel.doReadMessages方法

@Overrideprotected int doReadMessages(List<Object> buf) throws Exception {SocketChannel ch = javaChannel().accept();try {if (ch != null) {buf.add(new NioSocketChannel(this, ch));return 1;}} catch (Throwable t) {…}return 0;}

javaChannel().accept() 會獲取到客戶端新連接的SocketChannel,實例化為一個 NioSocketChannel, 并且傳入 NioServerSocketChannel 對象(即 this), 由此可知, 我們創建的這個NioSocketChannel 的父 Channel 就是 NioServerSocketChannel 實例 .

接下來就經由 Netty 的 ChannelPipeline 機制, 將讀取事件逐級發送到各個 handler 中, 于是就會觸發前面我們提到的 ServerBootstrapAcceptor.channelRead 方法啦。

至此,分析了Netty線程池的初始化、ServerBootstrap的啟動及channel與線程池的綁定過程,能夠看出Netty中線程池的優雅設計,使用不同的線程池負責連接的建立、IO讀寫等,為API網關項目的高并發訪問提供了技術基礎。

八、總結

至此,對API網關技術的Netty實踐分享就到這里,各位如果對中間的各個環節有什么疑問和建議,歡迎大家指正,我們一起討論,共同學習提高。

參考

http://tutorials.jenkov.com/java-nio/nio-vs-io.html

http://netty.io/wiki/user-guide-for-4.x.html

http://netty.io/

http://www.tuicool.com/articles/mUFnqeM

https://segmentfault.com/a/1190000007403873

https://segmentfault.com/a/1190000007283053

作者:蜂巢團隊

來源:宜信技術學院

轉載于:https://my.oschina.net/u/4007037/blog/3058640

總結

以上是生活随笔為你收集整理的宜人贷蜂巢API网关技术解密之Netty使用实践的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

成人综合免费 | 久久激情久久 | 青青草视频精品 | 色婷婷久久 | 特级西西444www高清大视频 | 99视频免费观看 | 日韩网页| av在线免费在线观看 | 欧美国产日韩中文 | 免费看片网页 | 日韩一级电影在线 | 国产精品大片免费观看 | 天操夜夜操| 91大神精品视频在线观看 | 麻豆精品国产传媒 | www国产亚洲精品久久麻豆 | 99精彩视频在线观看免费 | 国产高清视频在线免费观看 | 久久天天躁狠狠躁亚洲综合公司 | 免费人成在线观看 | 精品视频免费 | 五月婷婷色综合 | 久久精品国产99国产 | 亚洲黄色在线播放 | 免费日韩 精品中文字幕视频在线 | 波多野结衣电影久久 | 黄色一级动作片 | 1000部国产精品成人观看 | 97色在线观看免费视频 | 93久久精品日日躁夜夜躁欧美 | 九九久久国产精品 | 中文免费在线观看 | 国产视频 久久久 | 久久久久久久久久久久久久免费看 | 国产成人a亚洲精品v | 国产探花 | 免费国产在线观看 | 91视频久久| 天天爱天天干天天爽 | 亚洲精品欧美专区 | 欧美色伊人 | 天天弄天天干 | 亚洲天堂网在线播放 | 97成人资源站 | 免费福利在线视频 | 久久综合九色综合欧美狠狠 | 国产精品毛片一区 | 黄色的网站在线 | 激情五月婷婷网 | 精品在线观看一区二区 | 国产成人精品av久久 | 日本黄色大片儿 | 免费国产在线观看 | 麻花传媒mv免费观看 | 国产午夜不卡 | 人人插人人做 | 四虎永久免费网站 | 久久综合狠狠综合久久激情 | 日韩av一区二区在线影视 | 成片免费观看视频 | 久久天堂亚洲 | 日韩综合视频在线观看 | 欧洲亚洲国产视频 | av免费网站| 日韩免费大片 | a特级毛片 | 六月丁香婷婷在线 | 久久av中文字幕片 | 国产一区二区三区免费观看视频 | 久草免费资源 | 亚洲人成精品久久久久 | 日韩亚洲精品电影 | 96久久久 | 亚洲成熟女人毛片在线 | 97在线观视频免费观看 | 欧美性色xo影院 | 色偷偷888欧美精品久久久 | 麻豆一区二区 | 在线成人免费电影 | 丁香六月在线 | 精品国产一区二区在线 | 午夜视频二区 | 国内精品久久久久久久影视简单 | 国内精品免费 | 久久综合免费视频 | 很黄很污的视频网站 | 激情视频在线观看网址 | 久久论理| 日本在线观看一区二区三区 | 亚洲精品视频一二三 | 日韩精品 在线视频 | 国产亚洲精品精品精品 | 91爱爱中文字幕 | 啪啪激情网| 91精品久久久久久久久久入口 | 在线观看 亚洲 | 午夜精品久久久久久久久久久久久久 | 久久99国产精品久久99 | www.久久色 | 亚洲精品久久久久久久不卡四虎 | 久久久婷 | 在线成人免费电影 | 国产精品久久久久免费a∨ 欧美一级性生活片 | 成人免费视频网站 | 成年人在线免费看视频 | 成人全视频免费观看在线看 | 国产99久久久国产精品免费看 | 亚洲免费一级电影 | 亚洲乱码在线 | 中文字幕免费成人 | 91高清完整版在线观看 | av免费网站观看 | 午夜精品福利一区二区三区蜜桃 | 在线观看国产麻豆 | 欧美天天射 | 精品视频资源站 | 免费看污黄网站 | 日本亚洲国产 | 97人人模人人爽人人喊中文字 | 中文在线免费观看 | 97色免费视频 | 黄色aa久久| 日韩中文字幕免费在线观看 | 国产精品美女久久久久久 | 九九视频在线播放 | 成人免费观看网址 | 久久视频国产精品免费视频在线 | 欧美久久久久久久久 | 天天射综合网站 | 欧美最爽乱淫视频播放 | 精品一区 精品二区 | 精品毛片久久久久久 | 99久久久久久久久 | 国产精品一区二区久久精品爱涩 | 欧美日本在线视频 | 亚洲2019精品 | 免费看国产精品 | av电影中文字幕 | 激情网婷婷 | 国产精品久久婷婷六月丁香 | 欧美日韩一区二区三区在线观看视频 | 久久国内精品 | 免费亚洲黄色 | 欧美日韩国产精品一区二区三区 | 激情在线五月天 | 国产精品中文字幕av | 亚洲国产精品99久久久久久久久 | 97在线精品国自产拍中文 | 色婷婷狠狠五月综合天色拍 | 波多野结衣网址 | 国产美女久久久 | 亚洲精品国产免费 | 亚洲综合精品在线 | 国产在线视频资源 | av看片在线| 欧美日韩国产精品久久 | 免费网站污 | 狠狠色丁香婷婷综合 | 精品亚洲免费 | 麻豆精品视频在线观看免费 | 国产精品久久 | 三级动图 | 免费人成网| 国产资源免费 | 激情综合啪| 国产a级片免费观看 | 三级大片网站 | 久久综合九色综合久99 | 91精品一区二区三区蜜桃 | 久久久久久久99 | 天天干天天干天天射 | 97色国产| 免费在线观看国产精品 | 激情五月视频 | 亚洲一区在线看 | 日韩精品中文字幕在线播放 | 国产黄a三级 | 在线黄色av | 色播五月激情综合网 | 欧美激情精品久久久久久 | 国产精品免费久久久久久久久久中文 | 99视频在线精品免费观看2 | 中文字幕乱码一区二区 | 美女视频黄免费的久久 | 国产免费作爱视频 | av在线免费观看网站 | 欧美精品一二 | 国产精品2019 | 亚洲永久国产精品 | 色综合久久精品 | 精品国产一区二区三区在线观看 | 日本中文乱码卡一卡二新区 | 99人成在线观看视频 | 99精品欧美一区二区蜜桃免费 | www.午夜| 欧美日韩精品在线观看 | 免费在线观看日韩欧美 | 日韩国产在线观看 | 天天久久夜夜 | 狠狠色伊人亚洲综合网站野外 | 久操中文字幕在线观看 | 免费一级日韩欧美性大片 | 国产三级精品三级在线观看 | 伊人黄| 美女很黄免费网站 | 精品欧美乱码久久久久久 | 黄色一级性片 | 久久婷综合 | 国内一级片在线观看 | 久久99热精品这里久久精品 | 99久久99热这里只有精品 | 国产亚洲免费的视频看 | 国产视| www操操| 成人av高清在线 | 毛片无卡免费无播放器 | 亚洲高清av在线 | 免费网站观看www在线观看 | 国产原创在线观看 | 天天色视频| 久久精品999| 精品99久久久久久 | av电影av在线 | 日日干天天操 | 西西44人体做爰大胆视频 | 国产香蕉av| 欧美色图30p | 超碰国产人人 | 黄色三级网站在线观看 | 国产玖玖精品视频 | 久草免费在线观看 | 岛国av在线 | 成人午夜剧场在线观看 | 91精品国产99久久久久久红楼 | www.夜夜干.com | 天天色宗合 | 日韩欧美在线观看一区二区 | 国产视频手机在线 | 四月婷婷在线观看 | 久久视频在线观看免费 | 婷婷国产在线 | 日本高清免费中文字幕 | www.夜夜干.com| 国产精品成人av在线 | 国产福利在线免费观看 | 99综合电影在线视频 | 国产日韩欧美综合在线 | 91亚洲精品久久久中文字幕 | 国产不卡网站 | 成人午夜电影在线 | 黄色a大片 | 97色se | 中文av在线天堂 | 伊人天堂久久 | 亚洲日本在线视频观看 | 最近中文字幕免费av | 国产不卡精品 | 久久综合免费视频影院 | 最近久乱中文字幕 | 99精品免费久久久久久久久 | 午夜视频不卡 | av一区二区在线观看中文字幕 | 91精品久久久久久综合乱菊 | 中国一 片免费观看 | 永久免费av在线播放 | 国内精品在线观看视频 | 欧美精品一区二区在线播放 | 福利在线看片 | 国产高清视频在线免费观看 | 国产视频18| 日本中文字幕网 | 99精品福利视频 | 超碰免费在线公开 | 国产精品毛片网 | 探花视频在线观看+在线播放 | 久久精品站 | 婷婷天天色 | 国产美女免费观看 | 欧美成人高清 | 日韩午夜av电影 | 国产精品美女毛片真酒店 | 美女精品国产 | 亚洲综合导航 | 亚洲天堂网视频 | 国产日韩欧美自拍 | 伊人天堂久久 | 日韩精品视频免费在线观看 | 亚洲欧美日韩精品久久奇米一区 | 久草在线免费新视频 | 99热99热 | av电影在线观看完整版一区二区 | 日韩av一区二区三区四区 | 人人插人人舔 | 国产二区免费视频 | 中文字幕大全 | 看片网站黄 | 人人插人人插 | 亚洲国产一区二区精品专区 | 在线观看视频黄 | 欧美日韩xx | 久久久首页| 亚洲黄色免费电影 | 中文字幕观看在线 | 国产国产人免费人成免费视频 | 亚洲精品男人的天堂 | 欧美精品一二 | 国产手机视频在线播放 | 国产精品久久久久久久电影 | 四虎8848免费高清在线观看 | 天天艹天天操 | 三级av免费 | 久久精品欧美一区二区三区麻豆 | 天堂av网站| 国产精品18久久久久久久久 | 久久久综合 | 国产一级免费播放 | 欧美日韩在线视频观看 | 色搞搞| 欧美 日韩 成人 | 97免费中文视频在线观看 | 国产精品久久久久久久久久免费看 | 国色天香在线 | 久热久草在线 | 狠狠色丁婷婷日日 | 国产资源在线免费观看 | 欧美一级视频一区 | 久久精品99北条麻妃 | 日本视频精品 | 久久区二区 | 国产手机在线播放 | 麻豆影视在线播放 | 久久精品99国产精品亚洲最刺激 | 在线日韩一区 | 去看片 | 97电影手机 | 91黄色影视 | 成片免费观看视频999 | 黄色毛片在线观看 | 黄色成年 | 国产最新视频在线 | 国产手机在线播放 | 中文字幕在线观看第一页 | 激情综合网天天干 | 色欧美视频 | 天天干天天射天天爽 | 91欧美在线 | 国产一区视频在线播放 | av观看久久久| 激情五月播播久久久精品 | 狠狠色噜噜狠狠 | 一区二区三区免费在线观看视频 | 免费三级黄 | 91av免费看| 在线国产不卡 | 4438全国亚洲精品观看视频 | 四虎小视频 | 中中文字幕av | 伊人热 | 九九免费在线观看视频 | 成人免费 在线播放 | 在线视频日韩 | 国产区精品视频 | 日本超碰在线 | 在线观看中文字幕2021 | 婷婷激情综合 | 亚洲日韩欧美一区二区在线 | 天堂av在线免费 | 黄色免费网站 | 91女子私密保健养生少妇 | 久热色超碰 | 超碰人人99 | 欧美一区二区三区在线观看 | 最近中文字幕免费 | 91麻豆操 | 99免费精品视频 | 精品一区二区三区电影 | 日韩精品一区二区三区丰满 | 欧美精品一区二区三区四区在线 | 午夜精品久久久久久久99婷婷 | 久久国产精品免费一区二区三区 | 国产精品视频免费看 | 久久久久北条麻妃免费看 | 中文字幕在线观看完整 | 91精品国产乱码久久 | 人人干网站 | 欧美国产三区 | 人人干97| 国产精品久久久久久超碰 | 天堂av在线中文在线 | 中文字幕色婷婷在线视频 | 精品美女在线视频 | 成年人免费在线看 | 91视频在线观看大全 | 丁香一区二区 | 在线亚洲免费视频 | 成人黄色在线电影 | 日韩免费电影网 | 一区中文字幕在线观看 | 最新av在线免费观看 | 欧美巨大荫蒂茸毛毛人妖 | 免费一级日韩欧美性大片 | 天天干天天碰 | 91精品导航 | 国产在线国偷精品产拍 | 久久在线免费观看 | 六月丁香久久 | 九九视频在线 | 亚洲天堂网站视频 | 久久久久久久久久久久影院 | 精品久久久一区二区 | 久久综合激情 | 精品国产久| 激情综合中文娱乐网 | 一区二区三区观看 | 国产精品久久久久久久午夜 | 久久理论视频 | 日韩精品一二三 | 91片黄在线观看 | 欧美a级片网站 | 国产小视频福利在线 | 叶爱av在线| 国产成人精品一区二区在线观看 | 天天操天天爱天天干 | 久久国产亚洲精品 | 久久成年人视频 | www五月 | 免费在线观看av不卡 | 蜜臀av夜夜澡人人爽人人 | 国内视频 | www九九热 | 国产精品福利在线播放 | 99婷婷 | www日韩在线 | 欧美国产精品久久久久久免费 | 91av短视频| 五月婷婷激情五月 | 色永久免费视频 | 这里只有精品视频在线观看 | 天天做天天射 | 欧美日韩中文国产 | 五月天久久激情 | 99久久国产免费,99久久国产免费大片 | 国产精品久99 | 天天搞天天| 婷婷伊人网 | 一级黄色在线视频 | 99精品国产高清在线观看 | 亚洲精品久久久久999中文字幕 | 成人三级av | 在线免费观看不卡av | 超碰在线网 | 深爱激情站 | av电影在线观看完整版一区二区 | av在线播放观看 | 久久9视频 | 欧美另类xxxx| 欧美黑人性猛交 | 亚洲丁香久久久 | 欧洲一区二区在线观看 | 狠狠干夜夜操 | 国产精品久久久久久久久久久久 | 黄色成人av | 久久久久综合精品福利啪啪 | 久草青青在线观看 | 国产成人av电影在线观看 | 午夜在线免费视频 | 天天操夜夜想 | 日韩中文免费视频 | 久久久久高清毛片一级 | 久久综合射 | 天天操一操| v片在线看| 99九九视频 | 午夜视频一区二区三区 | 婷婷六月色 | 99亚洲视频 | 丁香资源影视免费观看 | 色www精品视频在线观看 | 国产精品综合久久久 | 一级片视频在线 | 日韩av片无码一区二区不卡电影 | 亚洲精品在线播放视频 | 久久久.com| 亚洲精品网站 | 久草免费在线视频观看 | 国产精品欧美日韩在线观看 | 欧美日韩一级在线 | av电影亚洲 | 黄色小说视频在线 | 亚洲一级特黄 | 97国产电影| 精品久久久久久久久久久久 | 91久久久久久国产精品 | 一级片免费视频 | 国产精品久久久久久久久久不蜜月 | 国产美女被啪进深处喷白浆视频 | 久久精品美女视频网站 | 97av精品 | 99热9| 国产 视频 久久 | 精品在线观看一区二区 | 色综合久久久久综合体桃花网 | 天堂网av在线 | 国产高清视频在线播放一区 | 日韩在线观看你懂得 | 国产日韩欧美视频 | 黄色网址av | 国产99久久99热这里精品5 | 精品成人久久 | 亚洲免费观看在线视频 | 久久99亚洲网美利坚合众国 | 欧美最新另类人妖 | 中文字幕黄色 | 99色在线观看视频 | 精品久久久免费视频 | 在线国产福利 | 久久97视频 | 国产色爽 | 国产精品美女在线 | 国产美女精彩久久 | 国产精品久久久久久久久久久久冷 | 97精品超碰一区二区三区 | 91丨九色丨国产在线 | 亚洲免费av电影 | 亚洲精品视频网 | 日韩一区二区三区视频在线 | 久久视频中文字幕 | 久久久久免费观看 | 999一区二区三区 | 国产在线一区二区 | 激情开心网站 | 免费看一级一片 | 欧美性视频网站 | 成人免费观看视频网站 | 精品综合久久 | 久久99精品久久久久婷婷 | 亚洲人成免费 | 中文字幕精品一区二区精品 | 色国产精品一区在线观看 | 中文在线a√在线 | 狠狠狠狠狠狠天天爱 | 黄色小网站在线 | 99电影456麻豆 | 99九九视频 | 国产精品久免费的黄网站 | 综合激情| 丁香激情五月 | av丝袜在线| 毛片网站免费在线观看 | 黄色一级片视频 | 97在线观看免费 | 久久久久久久久久久黄色 | 五月综合在线观看 | 一区中文字幕在线观看 | 中文字幕免费不卡视频 | 国产麻豆精品免费视频 | 国产一级免费播放 | 久久亚洲区 | 探花国产在线 | 国产亚洲午夜高清国产拍精品 | 国产精品丝袜在线 | 久久精品视频免费观看 | 夜夜躁日日躁狠狠躁 | 狠狠干夜夜操天天爽 | 日韩中文字幕亚洲一区二区va在线 | 色欧美日韩 | 狠狠五月婷婷 | 国产中文在线视频 | 91精品视频在线观看免费 | 久久久久久久久综合 | www.五月天激情 | 97精品免费视频 | 日韩av电影一区 | 天天干,天天射,天天操,天天摸 | 亚洲高清激情 | 一区二区精品在线 | 99在线精品视频 | 亚洲黄色大片 | 成人中文字幕在线 | 久久国产品 | 亚洲精品视频在 | 五月婷婷综合久久 | 美女黄网站视频免费 | 久久久久国产一区二区三区四区 | www国产亚洲 | 免费亚洲精品视频 | 97视频免费 | 日韩xxx视频 | www.久久久 | 探花系列在线 | 我要色综合天天 | 婷婷综合久久 | 8x成人免费视频 | 国产精品成人一区 | 四虎国产精品免费 | 九九在线免费视频 | 国产激情免费 | 久一网站 | 国产精品99久久久久久大便 | 国产精品久久久久四虎 | 99国产一区二区三精品乱码 | 粉嫩av一区二区三区入口 | 五月婷婷开心中文字幕 | 亚洲成人av一区 | 国产成人一区二区精品非洲 | 国产区免费在线 | 日韩精品一区二区三区第95 | 久久久国产一区二区三区 | aaa日本高清在线播放免费观看 | 五月婷婷影视 | 丁香五月缴情综合网 | 欧美在线free | 五月激情丁香图片 | 成人av观看 | 亚洲国产操 | 久久人人爽人人爽人人 | 欧美精品乱码久久久久久按摩 | 99久久er热在这里只有精品15 | 亚洲激情校园春色 | 天天操夜夜摸 | www.亚洲精品在线 | 国产99久久久精品 | 中文字幕一区二区三区四区 | 五月婷婷一区 | 日韩在线视频一区二区三区 | 四虎免费av | 五月婷婷综合网 | 成人小视频在线观看免费 | 久久艹国产视频 | 国内精品在线看 | 中文字幕在线观看第二页 | 黄色大片视频网站 | 久久官网| jizz999| 欧美日韩中文字幕综合视频 | 欧美男男tv网站 | 伊人婷婷色 | 中文字幕黄色网 | 国内视频一区二区 | 1024手机在线看 | 色婷婷中文 | 国产精品视频大全 | 97福利在线| 国产精品中文久久久久久久 | 在线 高清 中文字幕 | 一区二区激情视频 | 久久精品视频国产 | 色婷婷色 | 国产精品久久网站 | 人人玩人人爽 | 亚州国产精品 | 国产美女免费观看 | 国产清纯在线 | 亚洲美女在线国产 | 五月婷婷综合在线 | 久久8精品 | 日韩免费在线播放 | 欧美久久久久久久久久久 | 三级动态视频在线观看 | 久久免费视频在线观看6 | 色视频在线 | 久久公开免费视频 | 欧美激情精品久久久久久免费 | 狠狠狠狠狠狠狠狠干 | 日本在线观看视频一区 | 美女精品| 爱av在线网 | av东方在线 | 曰本免费av | 久久人人精品 | 国产精品短视频 | 中文字幕影片免费在线观看 | 97久久久免费福利网址 | 欧美日韩在线精品一区二区 | 综合黄色网| 久久综合一本 | 美女精品在线观看 | 人人草天天草 | 久久国产片 | 国产免费大片 | 久精品视频在线观看 | 久久免费成人精品视频 | 国产香蕉视频在线播放 | 波多野结衣在线视频免费观看 | 激情综合色播五月 | av一区二区三区在线播放 | 在线视频1卡二卡三卡 | 国产精品久久久久久久久岛 | www.久艹| 亚洲一区精品人人爽人人躁 | 色妞久久福利网 | 久久午夜网 | 香蕉视频91| 婷婷av资源| 中文字幕 国产专区 | 蜜臀av在线一区二区三区 | 四虎成人av| 中文字幕黄色网 | 91精品久久久久久久久久久久久 | 一本一本久久a久久精品综合妖精 | 西西4444www大胆艺术 | 久久久久久久综合色一本 | 国产精品爽爽爽 | 丁香五月亚洲综合在线 | 亚洲精品成人av在线 | 日本公妇色中文字幕 | 精品国产伦一区二区三区免费 | 国产成人精品三级 | 久久精品1区 | 国产黄色片免费看 | 伊人va | 亚洲精品在线一区二区三区 | 美女视频永久黄网站免费观看国产 | 午夜精品一区二区三区在线播放 | 欧美成人h版在线观看 | 黄色官网在线观看 | 国产精品一区二区在线观看免费 | 国产一区二区成人 | 国产午夜精品视频 | 国产最新精品视频 | 激情久久伊人 | 中文字幕日韩免费视频 | 色丁香综合 | 色欧美成人精品a∨在线观看 | 欧美韩国日本在线观看 | 人人爽人人爽人人爽人人爽 | 国产精品久久久999 国产91九色视频 | 久国产在线播放 | 久久日韩精品 | 日韩精品一区二区在线观看 | 国产精品第一页在线观看 | 国产不卡精品视频 | 久草在线99 | 日韩电影中文字幕在线观看 | 精品国产诱惑 | 国产 一区二区三区 在线 | 亚洲精品视 | 国产电影一区二区三区四区 | 日韩午夜精品福利 | 精品免费 | 日韩欧美有码在线 | 亚洲精品一区二区在线观看 | 久草在线视频网站 | 国产福利91精品一区二区三区 | 99福利片| 婷婷久久网站 | 成人久久久久久久久 | av在线电影网站 | 国产日韩欧美中文 | 香蕉在线播放 | 久久天天躁狠狠躁夜夜不卡公司 | 91精品老司机久久一区啪 | 日韩在线免费不卡 | 精品av在线播放 | 国产精品自产拍在线观看桃花 | 日本性高潮视频 | www.天天干| 亚洲精品视频播放 | 不卡视频在线 | 亚洲美女精品区人人人人 | 黄色精品一区 | 国产黄色精品在线 | 国内精品视频在线 | 成人在线观看资源 | 夜夜高潮夜夜爽国产伦精品 | 精品久久久久久亚洲综合网站 | 69国产精品视频 | 丝袜足交在线 | 黄色小说在线免费观看 | 日本精品午夜 | 精品影院一区二区久久久 | 国产成人精品999在线观看 | 探花系列在线 | 成人性生交大片免费看中文网站 | 久久亚洲欧美日韩精品专区 | 最近高清中文在线字幕在线观看 | 91看片成人 | 超碰日韩在线 | 久久高清免费视频 | 一区二区三区在线观看中文字幕 | 国产高清在线视频 | 91成人免费在线视频 | 国产在线精品区 | 国产精品日韩高清 | www.午夜色.com| 久久久久电影 | av经典在线 | 久久久久免费精品国产小说色大师 | 69国产精品视频免费观看 | 91亚洲影院 | 日日夜夜噜噜噜 | 久久精品欧美一 | 日本性生活免费看 | 亚洲aⅴ久久精品 | 欧美成人影音 | 久久免费视频5 | 天天操天天插 | 免费看污网站 | 亚洲更新最快 | 国产一区二区视频在线播放 | 天天操操 | 五月网婷婷 | 国产精品乱码久久久久久1区2区 | 在线 欧美 日韩 | 国产成人福利片 | 亚洲资源片| 久久国产欧美日韩 | 中文字幕精品一区久久久久 | 97电影在线 | 中文国产成人精品久久一 | 999毛片| 青青五月天 | 亚洲精品理论片 | 国产精品一区二区视频 | 久草视频免费在线播放 | 日日操日日操 | 亚洲精品日韩一区二区电影 | 人人揉人人揉人人揉人人揉97 | 成年人免费看片网站 | 97av超碰| 亚洲va天堂va欧美ⅴa在线 | 日韩在线三级 | 91在线观| 在线观看 亚洲 | 最近中文字幕完整高清 | 国产一级片网站 | 在线观看日韩精品 | 久久综合狠狠综合久久综合88 | 国产精品乱码一区二区视频 | 亚洲国产精品日韩 | 在线韩国电影免费观影完整版 | 国产视频在线免费 | 久久精品国产免费看久久精品 | 91探花在线视频 | 成人小视频在线观看免费 | 天天弄天天干 | 99久久er热在这里只有精品15 | 久草免费在线观看视频 | 久久精品视频播放 | 国产日韩欧美自拍 | 免费av观看网站 | 国产亚洲精品成人av久久影院 | 国产精品久久久久久久免费大片 | 97人人看 | 91新人在线观看 | 天天干天天操天天搞 | 国产精品欧美久久久久无广告 | 在线观看视频一区二区三区 | 91精品久久香蕉国产线看观看 | 最新中文字幕在线观看视频 | 一区二区理论片 | 黄色av电影免费观看 | 国产精品一区二区三区视频免费 | 久久99国产精品免费 | 欧美日韩精品在线观看视频 | 国产伦理久久精品久久久久_ | 国产精品久久久久久久7电影 | 久久免费精品 | 韩国精品福利一区二区三区 | 亚洲精品成人av在线 | 国产国产人免费人成免费视频 | 999热线在线观看 | 福利网在线| 久久天天综合网 | 麻豆国产露脸在线观看 | 欧美午夜久久 | 丁香高清视频在线看看 | 免费激情网| 免费观看黄色av | 在线观看的a站 | 久久精品8 | 亚洲第一区在线播放 | 99精品视频免费观看视频 | 亚洲91精品在线观看 | 免费网站v | 在线视频久 | 欧美动漫一区二区三区 | 91自拍视频在线观看 | 天天天天色综合 | 24小时日本在线www免费的 | 免费看搞黄视频网站 | 久久精品国产一区二区三区 | 日韩成人精品一区二区 | 中文字幕亚洲欧美日韩 | 久草视频免费在线播放 | 久久久91精品国产 | 午夜国产在线观看 | 中文亚洲欧美日韩 | 成人精品久久久 | 九色精品免费永久在线 | 午夜久久久久久久久久久 | 日韩色在线观看 | 亚洲欧美日韩国产精品一区午夜 | 黄色一及电影 | 99草在线视频 | 国产九九热 | 久久视频免费在线观看 | 日韩欧美一区视频 | 欧美日韩二三区 | 精品国产乱码久久久久久浪潮 | 日韩69av | 五月婷婷国产 | 久久99久久久久久 | 成人app在线免费观看 | 麻豆成人精品 | av免费网页 | 日韩不卡高清视频 | 91精品国产一区二区三区 | 国产福利不卡视频 | av在线看片 | 欧美亚洲国产精品久久高清浪潮 | 色婷婷激情电影 | 久久成人高清 | 操操色 | 中文字幕888 | 亚洲欧美日韩国产一区二区 | 在线观看视频你懂的 | 91在线超碰| 亚洲a网 | 久久99九九99精品 | 手机在线欧美 | 99草在线视频| 久久精品视频一 | 色婷婷激情五月 | 17婷婷久久www | 国产在线观看午夜 | 99热这里只有精品久久 | 青草草在线 | 91cn国产在线 | 久久网站最新地址 | 91av电影网 | 欧美人交a欧美精品 | 久久久久久久久免费 | 亚洲欧美国产视频 | 亚洲国产精品久久久久婷婷884 | a在线一区 | 天天操天天干天天玩 | 中午字幕在线观看 | 国产黄色大全 | 91精品国产成人www | 超碰在线97国产 | 色噜噜狠狠色综合中国 | 97超碰资源站 | 久久激情电影 | 国产激情电影综合在线看 | 亚洲综合在线一区二区三区 | 四虎影视精品永久在线观看 | 国产精品视频最多的网站 | 丁香花在线观看视频在线 | 亚洲国产精品va在线看黑人动漫 | 波多野结衣在线中文字幕 | 狠狠激情中文字幕 | 黄色软件大全网站 | 少妇高潮流白浆在线观看 | 日韩xxxx视频 | 精品色999 | 麻豆91视频 | 人人爽人人乐 | 久久久久国产一区二区三区四区 | 欧美男同视频网站 | 免费亚洲一区二区 | 99热999 | 韩国av不卡 | 久久午夜国产 | 国内精品在线看 | 深夜免费福利视频 | 午夜三级在线 | www视频免费在线观看 | 欧美午夜一区二区福利视频 | 亚洲精品乱码白浆高清久久久久久 | 亚洲黄色在线看 | 最新动作电影 | 九九视频精品免费 | 99久久精品久久久久久动态片 | 久久久久亚洲精品 | 免费日韩av电影 | 在线看片视频 | 久久精品中文 | 激情电影影院 | 欧美大荫蒂xxx | 国产成人av电影在线 | 午夜精品久久 | 精品视频久久久 | 日韩精品一区二区不卡 | 成人h在线 | 91成人网在线 | 欧美午夜一区二区福利视频 | 国产91在线看| 久久天天躁狠狠躁亚洲综合公司 | 久久久久久久久久久福利 | 成人精品国产免费网站 | 亚洲一级电影视频 | 国产高清中文字幕 | 国产一区二区三区网站 | 最近更新好看的中文字幕 | 中文字幕在线视频免费播放 | 亚洲天天干 | 69国产盗摄一区二区三区五区 |