亭亭五月天在线观看,亭亭五月天在线观看,国产最新av一区二区,国产 高清 中文字幕,99re热久久亚洲综合精品成人,熟妇 一区二区三区,一级做a爰片性色毛片武则天,美女的骚穴视频播放,国产美女午夜免费视频

首頁>國內 > 正文

MySQL連接離奇掛死,竟不是連接池的鍋……

2023-03-03 10:03:38來源:dbaplus社群

一、背景

近期由測試反饋的問題有點多,其中關于系統(tǒng)可靠性測試提出的問題令人感到頭疼,一來這類問題有時候屬于“偶發(fā)”現(xiàn)象,難以在環(huán)境上快速復現(xiàn);二來則是可靠性問題的定位鏈條有時候變得很長,極端情況下可能要從 A 服務追蹤到 Z 服務,或者是從應用代碼追溯到硬件層面。

本次分享的是一次關于 MySQL 高可用問題的定位過程,其中曲折頗多但問題本身卻比較有些代表性,遂將其記錄以供參考。

1、架構

首先,本系統(tǒng)以 MySQL 作為主要的數(shù)據(jù)存儲部件。整一個是典型的微服務架構(SpringBoot + SpringCloud),持久層則采用了如下幾個組件:


【資料圖】

mybatis,實現(xiàn) SQL <-> Method 的映射hikaricp,實現(xiàn)數(shù)據(jù)庫連接池mariadb-java-client,實現(xiàn) JDBC 驅動

在 MySQL 服務端部分,后端采用了雙主架構,前端以 keepalived 結合浮動IP(VIP)做一層高可用。如下:

MySQL 部署兩臺實例,設定為互為主備的關系。為每臺 MySQL 實例部署一個 keepalived 進程,由 keepalived 提供 VIP 高可用的故障切換。實際上,keepalived 和 MySQL 都實現(xiàn)了容器化,而 VIP 端口則映射到 VM 上的 nodePort 服務端口上。業(yè)務服務一律使用 VIP 進行數(shù)據(jù)庫訪問。

Keepalived 是基于 VRRP 協(xié)議實現(xiàn)了路由層轉換的,在同一時刻,VIP 只會指向其中的一個虛擬機(master)。

當主節(jié)點發(fā)生故障時,其他的 keepalived 會檢測到問題并重新選舉出新的 master,此后 VIP 將切換到另一個可用的 MySQL 實例節(jié)點上。

這樣一來,MySQL 數(shù)據(jù)庫就擁有了基礎的高可用能力。

另外一點,Keepalived 還會對 MySQL 實例進行定時的健康檢查,一旦發(fā)現(xiàn) MySQL 實例不可用會將自身進程殺死,進而再觸發(fā) VIP 的切換動作。

2、問題現(xiàn)象

本次的測試用例也是基于虛擬機故障的場景來設計的:

持續(xù)以較小的壓力向業(yè)務服務發(fā)起訪問,隨后將其中一臺 MySQL 的容器實例(master)重啟。

按照原有的評估,業(yè)務可能會產(chǎn)生很小的抖動,但其中斷時間應該保持在秒級。

然而經(jīng)過多次的測試后發(fā)現(xiàn),在重啟 MySQL 主節(jié)點容器之后,有一定的概率會出現(xiàn)業(yè)務卻再也無法訪問的情況!

二、分析過程

在發(fā)生問題之后,開發(fā)同學的第一反應是 MySQL 的高可用機制出了問題。由于此前曾經(jīng)出現(xiàn)過由于 keepalived 配置不當導致 VIP 未能及時切換的問題,因此對其已經(jīng)有所戒備。

先是經(jīng)過一通的排查,然后并沒有找到 keepalived 任何配置上的毛病。

然后在沒有辦法的情況下,重新測試了幾次,問題又復現(xiàn)了。

緊接著,我們提出了幾個疑點:

1)Keepalived 會根據(jù) MySQL 實例的可達性進行判斷,會不會是健康檢查出了問題?

但在本次測試場景中,MySQL 容器銷毀會導致 keepalived 的端口探測產(chǎn)生失敗,這同樣會導致 keepalived 失效。如果 keepalived 也發(fā)生了中止,那么 VIP 應該能自動發(fā)生搶占。而通過對比兩臺虛擬機節(jié)點的信息后,發(fā)現(xiàn) VIP 的確發(fā)生了切換。

2)業(yè)務進程所在的容器是否發(fā)生了網(wǎng)絡不可達的問題?

嘗試進入容器,對當前發(fā)生切換后的浮動IP、端口執(zhí)行 telnet 測試,發(fā)現(xiàn)仍然能訪問成功。

1、連接池排查

在排查前面兩個疑點之后,我們只能將目光轉向了業(yè)務服務的DB客戶端上。

從日志上看,在產(chǎn)生故障的時刻,業(yè)務側的確出現(xiàn)了一些異常,如下:

Unable to acquire JDBC Connection [n/a]java.sql.SQLTransientConnectionException: HikariPool-1 - Connection is not available, request timed out after 30000ms. at com.zaxxer.hikari.pool.HikariPool.createTimeoutException(HikariPool.java:669) ~[HikariCP-2.7.9.jar!/:?] at com.zaxxer.hikari.pool.HikariPool.getConnection(HikariPool.java:183) ~[HikariCP-2.7.9.jar!/:?]  ...

這里提示的是業(yè)務操作獲取連接超時了(超過了30秒)。那么,會不會是連接數(shù)不夠用呢?

業(yè)務接入采用的是 hikariCP 連接池,這也是市面上流行度很高的一款組件了。

我們隨即檢查了當前的連接池配置,如下:

//最小空閑連接數(shù)spring.datasource.hikari.minimum-idle=10//連接池最大大小spring.datasource.hikari.maximum-pool-size=50//連接最大空閑時長spring.datasource.hikari.idle-timeout=60000//連接生命時長spring.datasource.hikari.max-lifetime=1800000//獲取連接的超時時長spring.datasource.hikari.connection-timeout=30000

其中 注意到 hikari 連接池配置了 minimum-idle = 10,也就是說,就算在沒有任何業(yè)務的情況下,連接池應該保證有 10 個連接。更何況當前的業(yè)務訪問量極低,不應該存在連接數(shù)不夠使用的情況。

除此之外,另外一種可能性則可能是出現(xiàn)了“僵尸連接”,也就是說在重啟的過程中,連接池一直沒有釋放這些不可用的連接,最終造成沒有可用連接的結果。

開發(fā)同學對"僵尸鏈接"的說法深信不疑,傾向性的認為這很可能是來自于 HikariCP 組件的某個 BUG..

于是開始走讀 HikariCP 的源碼,發(fā)現(xiàn)應用層向連接池請求連接的一處代碼如下:

public class HikariPool{   //獲取連接對象入口   public Connection getConnection(final long hardTimeout) throws SQLException{      suspendResumeLock.acquire();      final long startTime = currentTime();      try {      //使用預設的30s 超時時間         long timeout = hardTimeout;         do {      //進入循環(huán),在指定時間內獲取可用連接   //從 connectionBag 中獲取連接            PoolEntry poolEntry = connectionBag.borrow(timeout, MILLISECONDS);            if (poolEntry == null) {               break; // We timed out... break and throw exception            }            final long now = currentTime();   //連接對象被標記清除或不滿足存活條件時,關閉該連接            if (poolEntry.isMarkedEvicted() || (elapsedMillis(poolEntry.lastAccessed, now) > aliveBypassWindowMs && !isConnectionAlive(poolEntry.connection))) {               closeConnection(poolEntry, poolEntry.isMarkedEvicted() ? EVICTED_CONNECTION_MESSAGE : DEAD_CONNECTION_MESSAGE);               timeout = hardTimeout - elapsedMillis(startTime);            }   //成功獲得連接對象            else {               metricsTracker.recordBorrowStats(poolEntry, startTime);               return poolEntry.createProxyConnection(leakTaskFactory.schedule(poolEntry), now);            }         } while (timeout > 0L);   //超時了,拋出異常         metricsTracker.recordBorrowTimeoutStats(startTime);         throw createTimeoutException(startTime);      }      catch (InterruptedException e) {         Thread.currentThread().interrupt();         throw new SQLException(poolName + " - Interrupted during connection acquisition", e);      }      finally {         suspendResumeLock.release();      }   }}

getConnection() 方法展示了獲取連接的整個流程,其中 connectionBag 是用于存放連接對象的容器對象。如果從 connectionBag 獲得的連接不再滿足存活條件,那么會將其手動關閉,代碼如下:

void closeConnection(final PoolEntry poolEntry, final String closureReason){      //移除連接對象      if (connectionBag.remove(poolEntry)) {         final Connection connection = poolEntry.close();   //異步關閉連接         closeConnectionExecutor.execute(() -> {            quietlyCloseConnection(connection, closureReason);   //由于可用連接變少,將觸發(fā)填充連接池的任務            if (poolState == POOL_NORMAL) {               fillPool();            }         });      }   }

注意到,只有當連接滿足下面條件中的其中一個時,會被執(zhí)行 close。

isMarkedEvicted() 的返回結果是 true,即標記為清除

如果連接存活時間超出最大生存時間(maxLifeTime),或者距離上一次使用超過了idleTimeout,會被定時任務標記為清除狀態(tài),清除狀態(tài)的連接在獲取的時候才真正 close。

500ms 內沒有被使用,且連接已經(jīng)不再存活,即 isConnectionAlive() 返回 false

由于我們把 idleTimeout 和 maxLifeTime 都設置得非常大,因此需重點檢查 isConnectionAlive 方法中的判斷,如下:

public class PoolBase{   //判斷連接是否存活   boolean isConnectionAlive(final Connection connection){      try {         try {      //設置 JDBC 連接的執(zhí)行超時            setNetworkTimeout(connection, validationTimeout);            final int validationSeconds = (int) Math.max(1000L, validationTimeout) / 1000;   //如果沒有設置 TestQuery,使用 JDBC4 的校驗接口            if (isUseJdbc4Validation) {               return connection.isValid(validationSeconds);            }   //使用 TestQuery(如 select 1)語句對連接進行探測            try (Statement statement = connection.createStatement()) {               if (isNetworkTimeoutSupported != TRUE) {                  setQueryTimeout(statement, validationSeconds);               }               statement.execute(config.getConnectionTestQuery());            }         }         finally {            setNetworkTimeout(connection, networkTimeout);            if (isIsolateInternalQueries && !isAutoCommit) {               connection.rollback();            }         }         return true;      }      catch (Exception e) {      //發(fā)生異常時,將失敗信息記錄到上下文         lastConnectionFailure.set(e);         logger.warn("{} - Failed to validate connection {} ({}). Possibly consider using a shorter maxLifetime value.",                     poolName, connection, e.getMessage());         return false;      }   }}

我們看到,在PoolBase.isConnectionAlive 方法中對連接執(zhí)行了一系列的探測,如果發(fā)生異常還會將異常信息記錄到當前的線程上下文中。隨后,在 HikariPool 拋出異常時會將最后一次檢測失敗的異常也一同收集,如下:

private SQLException createTimeoutException(long startTime){   logPoolState("Timeout failure ");   metricsTracker.recordConnectionTimeout();   String sqlState = null;   //獲取最后一次連接失敗的異常   final Throwable originalException = getLastConnectionFailure();   if (originalException instanceof SQLException) {      sqlState = ((SQLException) originalException).getSQLState();   }   //拋出異常   final SQLException connectionException = new SQLTransientConnectionException(poolName + " - Connection is not available, request timed out after " + elapsedMillis(startTime) + "ms.", sqlState, originalException);   if (originalException instanceof SQLException) {      connectionException.setNextException((SQLException) originalException);   }   return connectionException;}

這里的異常消息和我們在業(yè)務服務中看到的異常日志基本上是吻合的,即除了超時產(chǎn)生的 "Connection is not available, request timed out after xxxms" 消息之外,日志中還伴隨輸出了校驗失敗的信息:

Caused by: java.sql.SQLException: Connection.setNetworkTimeout cannot be called on a closed connection at org.mariadb.jdbc.internal.util.exceptions.ExceptionMapper.getSqlException(ExceptionMapper.java:211) ~[mariadb-java-client-2.2.6.jar!/:?] at org.mariadb.jdbc.MariaDbConnection.setNetworkTimeout(MariaDbConnection.java:1632) ~[mariadb-java-client-2.2.6.jar!/:?] at com.zaxxer.hikari.pool.PoolBase.setNetworkTimeout(PoolBase.java:541) ~[HikariCP-2.7.9.jar!/:?] at com.zaxxer.hikari.pool.PoolBase.isConnectionAlive(PoolBase.java:162) ~[HikariCP-2.7.9.jar!/:?] at com.zaxxer.hikari.pool.HikariPool.getConnection(HikariPool.java:172) ~[HikariCP-2.7.9.jar!/:?] at com.zaxxer.hikari.pool.HikariPool.getConnection(HikariPool.java:148) ~[HikariCP-2.7.9.jar!/:?] at com.zaxxer.hikari.HikariDataSource.getConnection(HikariDataSource.java:128) ~[HikariCP-2.7.9.jar!/:?]

到這里,我們已經(jīng)將應用獲得連接的代碼大致梳理了一遍,整個過程如下圖所示:

從執(zhí)行邏輯上看,連接池的處理并沒有問題,相反其在許多細節(jié)上都考慮到位了。在對非存活連接執(zhí)行 close 時,同樣調用了 removeFromBag 動作將其從連接池中移除,因此也不應該存在僵尸連接對象的問題。

那么,我們之前的推測應該就是錯誤的!

2、陷入焦灼

在代碼分析之余,開發(fā)同學也注意到當前使用的 hikariCP 版本為 3.4.5,而環(huán)境上出問題的業(yè)務服務卻是 2.7.9 版本,這仿佛預示著什么.. 讓我們再次假設 hikariCP 2.7.9 版本存在某種未知的 BUG,導致了問題的產(chǎn)生。

為了進一步分析連接池對于服務端故障的行為處理,我們嘗試在本地機器上進行模擬,這一次使用了 hikariCP 2.7.9 版本進行測試,并同時將 hikariCP 的日志級別設置為 DEBUG。

模擬場景中,會由 由本地應用程序連接本機的 MySQL 數(shù)據(jù)庫進行操作,步驟如下:

1)初始化數(shù)據(jù)源,此時連接池 min-idle 設置為 10;

2)每隔50ms 執(zhí)行一次SQL操作,查詢當前的元數(shù)據(jù)表;

3)將 MySQL 服務停止一段時間,觀察業(yè)務表現(xiàn);

4)將 MySQL 服務重新啟動,觀察業(yè)務表現(xiàn)。

最終產(chǎn)生的日志如下:

//初始化過程,建立10個連接DEBUG -HikariPool.logPoolState - Pool stats (total=1, active=1, idle=0, waiting=0)DEBUG -HikariPool$PoolEntryCreator.call- Added connection MariaDbConnection@71ab7c09DEBUG -HikariPool$PoolEntryCreator.call- Added connection MariaDbConnection@7f6c9c4cDEBUG -HikariPool$PoolEntryCreator.call- Added connection MariaDbConnection@7b531779...DEBUG -HikariPool.logPoolState- After adding stats (total=10, active=1, idle=9, waiting=0)//執(zhí)行業(yè)務操作,成功execute statement: truetest time -------1execute statement: truetest time -------2...//停止MySQL...//檢測到無效連接WARN  -PoolBase.isConnectionAlive - Failed to validate connection MariaDbConnection@9225652 ((conn=38652) Connection.setNetworkTimeout cannot be called on a closed connection). Possibly consider using a shorter maxLifetime value.WARN  -PoolBase.isConnectionAlive - Failed to validate connection MariaDbConnection@71ab7c09 ((conn=38653) Connection.setNetworkTimeout cannot be called on a closed connection). Possibly consider using a shorter maxLifetime value.//釋放連接DEBUG -PoolBase.quietlyCloseConnection(PoolBase.java:134) - Closing connection MariaDbConnection@9225652: (connection is dead) DEBUG -PoolBase.quietlyCloseConnection(PoolBase.java:134) - Closing connection MariaDbConnection@71ab7c09: (connection is dead)//嘗試創(chuàng)建連接失敗DEBUG -HikariPool.createPoolEntry - Cannot acquire connection from data sourcejava.sql.SQLNonTransientConnectionException: Could not connect to address=(host=localhost)(port=3306)(type=master) : Socket fail to connect to host:localhost, port:3306. Connection refused: connectCaused by: java.sql.SQLNonTransientConnectionException: Socket fail to connect to host:localhost, port:3306. Connection refused: connect at internal.util.exceptions.ExceptionFactory.createException(ExceptionFactory.java:73) ~[mariadb-java-client-2.6.0.jar:?] ...//持續(xù)失敗.. 直到MySQL重啟//重啟后,自動創(chuàng)建連接成功DEBUG -HikariPool$PoolEntryCreator.call -Added connection MariaDbConnection@42c5503eDEBUG -HikariPool$PoolEntryCreator.call -Added connection MariaDbConnection@695a7435//連接池狀態(tài),重新建立10個連接DEBUG -HikariPool.logPoolState(HikariPool.java:421) -After adding stats (total=10, active=1, idle=9, waiting=0)//執(zhí)行業(yè)務操作,成功(已經(jīng)自愈)execute statement: true

從日志上看,hikariCP 還是能成功檢測到壞死的連接并將其踢出連接池,一旦 MySQL 重新啟動,業(yè)務操作又能自動恢復成功了。根據(jù)這個結果,基于 hikariCP 版本問題的設想也再次落空,研發(fā)同學再次陷入焦灼。

3、撥開云霧見光明

多方面求證無果之后,我們最終嘗試在業(yè)務服務所在的容器內進行抓包,看是否能發(fā)現(xiàn)一些蛛絲馬跡。

進入故障容器,執(zhí)行 tcpdump -i eth0 tcp port 30052 進行抓包,然后對業(yè)務接口發(fā)起訪問。

此時令人詭異的事情發(fā)生了,沒有任何網(wǎng)絡包產(chǎn)生!而業(yè)務日志在 30s 之后也出現(xiàn)了獲取連接失敗的異常。

我們通過 netstat 命令檢查網(wǎng)絡連接,發(fā)現(xiàn)只有一個 ESTABLISHED 狀態(tài)的 TCP 連接。

也就是說,當前業(yè)務實例和 MySQL 服務端是存在一個建好的連接的,但為什么業(yè)務還是報出可用連接呢?

推測可能原因有二:

該連接被某個業(yè)務(如定時器)一直占用。該連接實際上還沒有辦法使用,可能處于某種僵死的狀態(tài)。

對于原因一,很快就可以被推翻,一來當前服務并沒有什么定時器任務,二來就算該連接被占用,按照連接池的原理,只要沒有達到上限,新的業(yè)務請求應該會促使連接池進行新連接的建立,那么無論是從 netstat 命令檢查還是 tcpdump 的結果來看,不應該一直是只有一個連接的狀況。

那么,情況二的可能性就很大了。帶著這個思路,繼續(xù)分析 Java 進程的線程棧。

執(zhí)行 kill -3 pid 將線程棧輸出后分析,果不其然,在當前 thread stack 中發(fā)現(xiàn)了如下的條目:

"HikariPool-1 connection adder" #121 daemon prio=5 os_prio=0 tid=0x00007f1300021800 nid=0xad runnable [0x00007f12d82e5000]   java.lang.Thread.State: RUNNABLE at java.net.SocketInputStream.socketRead0(Native Method) at java.net.SocketInputStream.socketRead(SocketInputStream.java:116) at java.net.SocketInputStream.read(SocketInputStream.java:171) at java.net.SocketInputStream.read(SocketInputStream.java:141) at java.io.FilterInputStream.read(FilterInputStream.java:133) at org.mariadb.jdbc.internal.io.input.ReadAheadBufferedStream.fillBuffer(ReadAheadBufferedStream.java:129) at org.mariadb.jdbc.internal.io.input.ReadAheadBufferedStream.read(ReadAheadBufferedStream.java:102) - locked <0x00000000d7f5b480> (a org.mariadb.jdbc.internal.io.input.ReadAheadBufferedStream) at org.mariadb.jdbc.internal.io.input.StandardPacketInputStream.getPacketArray(StandardPacketInputStream.java:241) at org.mariadb.jdbc.internal.io.input.StandardPacketInputStream.getPacket(StandardPacketInputStream.java:212) at org.mariadb.jdbc.internal.com.read.ReadInitialHandShakePacket.(ReadInitialHandShakePacket.java:90) at org.mariadb.jdbc.internal.protocol.AbstractConnectProtocol.createConnection(AbstractConnectProtocol.java:480) at org.mariadb.jdbc.internal.protocol.AbstractConnectProtocol.connectWithoutProxy(AbstractConnectProtocol.java:1236) at org.mariadb.jdbc.internal.util.Utils.retrieveProxy(Utils.java:610) at org.mariadb.jdbc.MariaDbConnection.newConnection(MariaDbConnection.java:142) at org.mariadb.jdbc.Driver.connect(Driver.java:86) at com.zaxxer.hikari.util.DriverDataSource.getConnection(DriverDataSource.java:138) at com.zaxxer.hikari.pool.PoolBase.newConnection(PoolBase.java:358) at com.zaxxer.hikari.pool.PoolBase.newPoolEntry(PoolBase.java:206) at com.zaxxer.hikari.pool.HikariPool.createPoolEntry(HikariPool.java:477)

這里顯示 HikariPool-1 connection adder 這個線程一直處于 socketRead 的可執(zhí)行狀態(tài)。從命名上看該線程應該是 HikariCP 連接池用于建立連接的任務線程,socket 讀操作則來自于 MariaDbConnection.newConnection() 這個方法,即 mariadb-java-client 驅動層建立 MySQL 連接的一個操作,其中 ReadInitialHandShakePacket 初始化則屬于 MySQL 建鏈協(xié)議中的一個環(huán)節(jié)。

簡而言之,上面的線程剛好處于建鏈的一個過程態(tài),關于 mariadb 驅動和 MySQL 建鏈的過程大致如下:

MySQL 建鏈首先是建立 TCP 連接(三次握手),客戶端會讀取 MySQL 協(xié)議的一個初始化握手消息包,內部包含 MySQL 版本號,鑒權算法等等信息,之后再進入身份鑒權的環(huán)節(jié)。

這里的問題就在于 ReadInitialHandShakePacket 初始化(讀取握手消息包)一直處于 socket read 的一個狀態(tài)。

如果此時 MySQL 遠端主機故障了,那么該操作就會一直卡住。而此時的連接雖然已經(jīng)建立(處于 ESTABLISHED 狀態(tài)),但卻一直沒能完成協(xié)議握手和后面的身份鑒權流程,即該連接只能算一個半成品(無法進入 hikariCP 連接池的列表中)。從故障服務的 DEBUG 日志也可以看到,連接池持續(xù)是沒有可用連接的,如下:

DEBUG HikariPool.logPoolState --> Before cleanup stats (total=0, active=0, idle=0, waiting=3)

另一個需要解釋的問題則是,這樣一個 socket read 操作的阻塞是否就造成了整個連接池的阻塞呢?

經(jīng)過代碼走讀,我們再次梳理了 hikariCP 建立連接的一個流程,其中涉及到幾個模塊:

HikariPool,連接池實例,由該對象連接的獲取、釋放以及連接的維護。ConnectionBag,連接對象容器,存放當前的連接對象列表,用于提供可用連接。AddConnectionExecutor,添加連接的執(zhí)行器,命名如 "HikariPool-1 connection adder",是一個單線程的線程池。PoolEntryCreator,添加連接的任務,實現(xiàn)創(chuàng)建連接的具體邏輯。HouseKeeper,內部定時器,用于實現(xiàn)連接的超時淘汰、連接池的補充等工作。

HouseKeeper 在連接池初始化后的 100ms 觸發(fā)執(zhí)行,其調用 fillPool() 方法完成連接池的填充,例如 min-idle 是10,那么初始化就會創(chuàng)建10個連接。ConnectionBag 維護了當前連接對象的列表,該模塊還維護了請求連接者(waiters)的一個計數(shù)器,用于評估當前連接數(shù)的需求。

其中,borrow 方法的邏輯如下:

public T borrow(long timeout, final TimeUnit timeUnit) throws InterruptedException{      // 嘗試從 thread-local 中獲取      final List list = threadList.get();      for (int i = list.size() - 1; i >= 0; i--) {         ...      }      // 計算當前等待請求的任務      final int waiting = waiters.incrementAndGet();      try {         for (T bagEntry : sharedList) {            if (bagEntry.compareAndSet(STATE_NOT_IN_USE, STATE_IN_USE)) {               //如果獲得了可用連接,會觸發(fā)填充任務               if (waiting > 1) {                  listener.addBagItem(waiting - 1);               }               return bagEntry;            }         }   //沒有可用連接,先觸發(fā)填充任務         listener.addBagItem(waiting);   //在指定時間內等待可用連接進入         timeout = timeUnit.toNanos(timeout);         do {            final long start = currentTime();            final T bagEntry = handoffQueue.poll(timeout, NANOSECONDS);            if (bagEntry == null || bagEntry.compareAndSet(STATE_NOT_IN_USE, STATE_IN_USE)) {               return bagEntry;            }            timeout -= elapsedNanos(start);         } while (timeout > 10_000);         return null;      }      finally {         waiters.decrementAndGet();      }   }

注意到,無論是有沒有可用連接,該方法都會觸發(fā)一個 listener.addBagItem() 方法,HikariPool 對該接口的實現(xiàn)如下:

public void addBagItem(final int waiting){      final boolean shouldAdd = waiting - addConnectionQueueReadOnlyView.size() >= 0; // Yes, >= is intentional.      if (shouldAdd) {         //調用 AddConnectionExecutor 提交創(chuàng)建連接的任務         addConnectionExecutor.submit(poolEntryCreator);      }      else {         logger.debug("{} - Add connection elided, waiting {}, queue {}", poolName, waiting, addConnectionQueueReadOnlyView.size());      }   }

PoolEntryCreator 則實現(xiàn)了創(chuàng)建連接的具體邏輯,如下:

public class PoolEntryCreator{     @Override      public Boolean call()      {         long sleepBackoff = 250L;   //判斷是否需要建立連接         while (poolState == POOL_NORMAL && shouldCreateAnotherConnection()) {      //創(chuàng)建 MySQL 連接            final PoolEntry poolEntry = createPoolEntry();               if (poolEntry != null) {      //建立連接成功,直接返回。               connectionBag.add(poolEntry);               logger.debug("{} - Added connection {}", poolName, poolEntry.connection);               if (loggingPrefix != null) {                  logPoolState(loggingPrefix);               }               return Boolean.TRUE;            }            ...         }         // Pool is suspended or shutdown or at max size         return Boolean.FALSE;      }}

由此可見,AddConnectionExecutor 采用了單線程的設計,當產(chǎn)生新連接需求時,會異步觸發(fā) PoolEntryCreator 任務進行補充。其中 PoolEntryCreator. createPoolEntry() 會完成 MySQL 驅動連接建立的所有事情,而我們的情況則恰恰是 MySQL 建鏈過程產(chǎn)生了永久性阻塞。因此無論后面怎么獲取連接,新來的建鏈任務都會一直排隊等待,這便導致了業(yè)務上一直沒有連接可用。

下面這個圖說明了 hikariCP 的建鏈過程:

好了,讓我們在回顧一下前面關于可靠性測試的場景:

首先,MySQL 主實例發(fā)生故障,而緊接著 hikariCP 則檢測到了壞的連接(connection is dead)并將其釋放,在釋放關閉連接的同時又發(fā)現(xiàn)連接數(shù)需要補充,進而立即觸發(fā)了新的建鏈請求。而問題就剛好出在這一次建鏈請求上,TCP 握手的部分是成功了(客戶端和 MySQL VM 上 nodePort 的完成連接),但在接下來由于當前的 MySQL 容器已經(jīng)停止(此時 VIP 也切換到了另一臺 MySQL 實例上),因此客戶端再也無法獲得原 MySQL 實例的握手包響應(該握手屬于MySQL應用層的協(xié)議),此時便陷入了長時間的阻塞式 socketRead 操作。而建鏈請求任務恰恰好采用了單線程運作,進一步則導致了所有業(yè)務的阻塞。

三、解決方案

在了解了事情的來龍去脈之后,我們主要考慮從兩方面進行優(yōu)化:

1)優(yōu)化一,增加 HirakiPool 中 AddConnectionExecutor 線程的數(shù)量,這樣即使第一個線程出現(xiàn)掛死,還有其他的線程能參與建鏈任務的分配。

2)優(yōu)化二,出問題的 socketRead 是一種同步阻塞式的調用,可通過 SO_TIMEOUT 來避免長時間掛死。

對于優(yōu)化點一,我們一致認為用處并不大,如果連接出現(xiàn)了掛死那么相當于線程資源已經(jīng)泄露,對服務后續(xù)的穩(wěn)定運行十分不利,而且 hikariCP 在這里也已經(jīng)將其寫死了。因此關鍵的方案還是避免阻塞式的調用。

查閱了 mariadb-java-client 官方文檔后,發(fā)現(xiàn)可以在 JDBC URL 中指定網(wǎng)絡IO 的超時參數(shù),如下:

如描述所說的,socketTimeout 可以設置 socket 的 SO_TIMEOUT 屬性,從而達到控制超時時間的目的。默認是 0,即不超時。

我們在 MySQL JDBC URL 中加入了相關的參數(shù),如下:

spring.datasource.url=jdbc:mysql://10.0.71.13:33052/appdb?socketTimeout=60000&cnotallow=30000&serverTimeznotallow=UTC

此后對 MySQL 可靠性場景進行多次驗證,發(fā)現(xiàn)連接掛死的現(xiàn)象已經(jīng)不再出現(xiàn),此時問題得到解決。

四、小結

本次分享了一次關于 MySQL 連接掛死問題排查的心路歷程,由于環(huán)境搭建的工作量巨大,而且該問題復現(xiàn)存在偶然性,整個分析過程還是有些坎坷的(其中也踩了坑)。

的確,我們很容易被一些表面的現(xiàn)象所迷惑,而覺得問題很難解決時,更容易帶著偏向性思維去處理問題。

例如本例中曾一致認為連接池出現(xiàn)了問題,但實際上卻是由于 MySQL JDBC 驅動(mariadb driver)的一個不嚴謹?shù)呐渲盟鶎е隆?/p>

從原則上講,應該避免一切可能導致資源掛死的行為。

關鍵詞: 連接失敗 也就是說 拋出異常 的情況下 重新啟動

相關新聞

Copyright 2015-2020   三好網(wǎng)  版權所有 聯(lián)系郵箱:435 22 640@qq.com  備案號: 京ICP備2022022245號-21
婷婷一区二区三区五月丁| 丰满少妇_区二区三区| 亚洲黄色成人一级片| 国产精品视频网站污污污| 老色鬼精品视频在线观看播放| 女同性恋av在线播放| 亚洲午夜精品视频节目| 亚洲欧美日韩电影一区| 中文字幕人妻精品精品| 欧美一区二区三区爽爽| 美利坚合众国av天堂| 高潮喷水一区二区三区| 日本少妇丰满大bbb的小乳沟| 自拍偷自拍亚洲精品10p| 欧美插插插插插插| 天天日天天亲天天操| 精品国产av虐杀两警花| 久久99嫩草99久久精品| 欧美色区国产日韩亚洲区| 91精品国产成人久久久久久| 日韩人妻中文字幕区| 插鸡视频免费网站在线播放 | av激情四射五月婷婷| 日韩人妻中文字幕区| 亚洲精品9999蜜桃| 全球高清中文字幕av| 最新国产精品综合网高清| 人妻中文字幕亚洲在线| 国产激情在线观看一区二区三区| 中文在线字幕免费观看日韩视频| 国产高清视频www夜色资源| 日本韩国欧美在线视频| 免费看超污视频在线观看| 女同大尺度视频网站在线观看| 人妻系列级片在线观看视频| 亚洲国产精品一区二区第二页| 伊人久久综合国产精品| 亚洲第一区av中文字幕| 欧美大胆a级视频秒播| 蜜桃tv一区二区三区| 中文乱码字幕人妻熟女人妻| 男人的天堂av中文字幕| 亚洲va999天堂va| 日日躁夜夜躁狠狠操| 日本特级黄片免费观看| 人妻在线中文视频视频| 国产精品亚洲精品亚洲| 正在播放麻豆精品一区二区| av 资源在线播放| 五十岁熟妇高潮喷水| 国产一区二区手机在线观看| 国产人妻熟女ⅹxx丝袜| 日日夜夜免费视频精品| 黄色网络中文字幕日本| 日韩久久九九精品视频| 亚洲最大先锋资源采集站| 玖玖资源站在线观看亚洲| 网站在线观看蜜臀91| 东京热日韩av影片| 丰满少妇高潮喷水视频| 欧美亚洲愉拍一区二区三区| 97人妻在线视频自拍| jiee日本美女视频网站| 色视频在线播放免费观看| 手机看片福利一区二区三区四区| 亚洲一区二区在线激情| 国产av嗯嗯啊啊av| 久久精品国产亚洲av热软件| 一区二区三区四区影片| 亚洲成人激情在线综合| 人妻人妻在线视频网站| 精品国产污污污污免费观看| —区二区三区女厕偷拍| 亚洲欧美精品日韩偷拍| 手机看片福利一区二区三区四区| 一区二区三区五区六区| 亚洲美女黄色福利视频网站大全| 国产精品igao为爱寻找激情| 欧美不卡一二三区精品| 美女把腿张开给男的捅| 欧美极品少妇高潮喷水| jizzjizz国产精品传媒| 美女扒开逼逼给你看| 久操资源在线免费播放| 蜜臀一区二区日韩美女少妇视频| 呻吟求饶的人妻中文字幕| 午夜精品秘一区二区三区| 一区二区三区内射美女| 久久国产精品久精国产爱| 丝袜美女诱惑佐佐三上 | 亚洲美女色www色| 99久久久久久亚洲精品免费| 99久久精品视频16| 亚洲成人偷拍自拍在线| 美女扒开逼逼给你看| 高潮喷水在线视频观看| 日本在线免费观看国产精品| 亚洲欧美另类丝袜另类自拍| 妈妈的朋友2中文字幕在线 | 亚洲午夜高清在线观看| 99免费观看在线视频| 不卡视频在线 欧美日韩| 久久人人爽人人爽人人av东京热| 夏目彩春av在线看| 久久国产半精品99精品国产| 精产国品一二三77777| 亚洲精品国品乱码久久久久| 狠狠操av一区二区三区| 天堂网成人av电影| 熟女人妻精品视频一区| 男人用大鸡巴狂操女人肉穴| 狠狠操狠狠操狠狠插| 9久re热视频在线精品 | 不用付费特黄特色亚洲特级黄色片| 夜夜操夜夜爱夜夜摸| av天堂a亚洲va天堂va里番| 韩国毛片w妈妈的朋友7| 手机看片福利一区二区三区四区| 69av精品国产探花| 中文字幕在线观看亚洲情色| 无人区一码二码三码区别在哪| 中文字幕av特黄毛片| 午夜精品视频免费观看| 91偷拍被偷拍在线播放| 9999久久久久老熟妇二区| 国产av剧变态维修工虐杀美女| 中文字幕 中文字幕 亚洲| 日本福利网站一区二区| 亚洲一区二区三区国产精品电影| 亚洲午夜高清在线观看| 天天看天天爱天天日| 日本少妇丰满大bbb的小乳沟| 中文字幕在线免费观看成人| 黄色av 在线观看| 在宿舍强奷两个清纯校花| 538欧美在线观看一区二区三区 | 久久中文字幕av一区二区| 婷婷六月天在线视频| 美利坚合众国av天堂| 欧美区日本区国产区| 北野中文字幕一区二区| 天天曰天天摸天天爽| 97香蕉久久国产超碰| 日本a级2020在线观看| 中文乱码字幕人妻熟女人妻| 91九色pony蝌蚪| 欧美精品激情在线不卡| 最新国产精品久久精品app| 国产av高清二区三区| 欧美日韩亚洲tv不卡久久| 狠狠操深爱婷婷综合一区| 国产精品网站的黄色| 亚洲制服丝袜资源网| 4日日夜夜精品视频免费| 青青青青午夜手机国产视频| 人人妻人人爽人人爽欧美一区| 丰满少妇高潮喷水视频| 手机看片1024精品国产| 精品人妻人人做人人爽| 蜜臀久久精品久久久久久av| 中文字幕观看中文字幕免费 | 嗯~嗯~啊啊啊~高潮了软件| 狠狠操狠狠操狠狠插| 亚洲欧美不卡专业视频| 最新中文字幕久久久久| 视频免费在线观看网站| 国内精品一区二区2021在线| 青青在线视频看看| 国产91免费在线观看| 精久久久久久久久久久久 | 亚洲 偷拍 自拍 欧美| 日本a级2020在线观看| 青青草成人免费自拍视频| 97人妻人人揉人人躁人人夜夜爽| 日本男女免费福利视频| 鸡巴插进美女的嫩小穴视频| 天天色 天天操 天天好逼| 精品国产污污污污免费观看| 北野中文字幕一区二区| 无码人妻丰满熟妇区五路| 色老头一区二区三区四区五区| 亚洲a级视频在线播放| 偷拍欧美日韩另类图片| 国产黑色丝袜 在线日韩欧美| 丰满少妇_区二区三区| 中文字幕人妻一区二区视频系列| www一区二区91| 日本黄页在线观看视频| 不卡高清一区二区三区| 黄在线看片免费人成视频| 港台美女明星av天堂| 91精品在线视频免费视频| 免费成人av麻豆| 国内销魂老女人老泬| 色网站在线观看免费| 中文字幕在线字幕乱码怎么设置 | 欧美成人少妇人妻精品| 欧洲精品在线免费观看| 欧美一区日韩二区三区四区| 国产毛片特级Av片| 天天日天天干天天日天天干天天| 夫亡人妻被强干中文字幕| 久久久久性感美女偷拍视频| 91精品资源在线观看| 国产精品久久久久久成人久| 大乳丰满人妻中文字幕韩国hd| 精品一区二区三区免费毛片W| 999精品视频免费在线观看| 岳的大肥屁熟妇五十路| 亚洲少妇色小说综合| 精产国品一二三77777| 开心激情五月天作爱片| 天天干夜夜爽狠狠操| 国产福利三级在线观看| 免费24小时人妻视频| 欧美三区四区在线视频| 成熟了的熟妇毛茸茸| 国产成人深夜福利短视频99| 最近在线中文字幕免费| 欧美视频免费观看777| 91porny九色视频偷拍| 夜夜骚av一二三区| 五月天色婷婷狠狠爱| 91九色pony蝌蚪| 夫亡人妻被强干中文字幕| 亚洲天堂色综合久久| 久久99热精品免费观看视| 久久99嫩草99久久精品| 午夜国产免费视频亚洲| 97香蕉久久国产超碰| 久久久西西gogo日本美女人体| 97视频人人爱麻豆| 国产极品气质外围av| 亚洲国产精品久久久久久无码| 亚洲综合一区二区三区四区| 青青操久久综合激情| 亚洲色视频在线播放网站| 亚洲18片综合国产av| 婷婷综合缴情亚洲五月伊人| 亚洲 自拍 激情 另类| 日韩在线 中文字幕| 中文字幕在线观看av观看| 911美女片黄在线观看| 亚洲综合熟女乱中文| 不卡一区二区视频在线| 中文字幕福利视频在线一区| 亚洲欧美另类校园春色| 天天干夜夜操91视频网站| 五月天天堂视频在线| 果冻麻豆一区二区三区| 国产天堂av不卡网| 国产视频1区2区3区| 韩国一级片最火爆中文字幕| 不卡一区二区视频在线| 亚洲熟女在线免费观看| 二十四小时日本高清在线观看| 欧美亚洲国产一区二区| 天天插天天透天天爽| 一区二区三区四区 在线播放 | av无限看熟女人妻另类av| 女人的天堂av在线网| 91色老久久精品偷偷蜜臀| 免费看日韩黄视频在线观看| 麻豆出品视频在线观看| 十八禁黄色免费污污污亚洲| 国产午夜羞羞一区二区三区| 国产91免费在线观看| 2021国产在线视频| 有码一区二区三区四区五区| 日本熟妇乱妇熟色视频| 午夜精品一区二区三区不卡顿| 最近中文字幕免费视频一| 国产乱码有码一区二区三区| 黑人大吊大战亚洲女人。| 欧美极品少妇高潮喷水| 蜜桃臀少妇白色紧身裤细高跟| 日韩人妻精品久久久久| xxxx69在线观看视频| 91进入蜜桃臀在线播放| 蜜乳视频一区二区三区| 国产青青青青草免费在线视频| 国际精品熟女一区二区| 欧美三区四区在线视频| 激情九月天在线视频| 在线能看视频你懂的| 成人午夜高清福利视频| 亚洲国产精品自拍偷拍视频在线 | 鸡巴在里面福利视频在线观看| 91佛爷视频在线观看| 久久久久国产精品二区| 日本高清激情乱一区二区三区 | 九九热视频1这里只有精品| 亚洲高清一区二区三区久久| 十八禁黄色免费污污污亚洲| 欧美视频亚洲视频在线| 搞乱在线在线观看视频| 午夜精品久久久久久久久久蜜桃| 亚洲欧美不卡专业视频| 日韩三级精品电影久久久久| 中文字幕人妻精品精品| 夫妻黄色一级性生活片| 欧美性感美女热舞视频| 日本一区二区三区的资源| 老司机免费视频福利0| 中文字幕国产一区在线视频| 久草视频在线看免费| 四虎精品久久免费最新| 亚洲黄色免费在线观看网站| 高潮喷水一区二区三区| 麻豆国产91制片厂| 妈妈的朋友2中文字幕在线| 青青青在线观看国产| 天天操天天日天天碰| 东京热日本一区二区三区| 亚洲欧美激情久久久| 99女福利女女视频在线播放| 国产福利小视频在线观看网站| 一区二区三区不卡免费视频网站| 网站在线观看蜜臀91| 中文字幕在线免费观看成人| 亚洲欧美另类校园春色| 亚洲妹妹我爱你在线观看 | 亚洲高清一区二区三区久久| 精品人妻 色中文熟女 oo| 自拍丝袜国产欧美日韩| 99热这里只有精品免费播放| 特级aaaaa黄色片| 丰满人妻熟女aⅴ一区| 黑人黄色免费一级av| 久久av色噜噜ai换脸| 户外露出视频在线观看| 18岁禁一二三区免费体验| 女人扒开逼让男人操| 99 re国产精品| 午夜久久久久欠久久久久| 放荡人妻极品少妇全集| av福利免费体验观看| 一区二区三区免费版在线| 亚洲国产精品青青草| 亚洲全国精品女人久久久| 中文字幕 中文字幕 亚洲| 日韩欧美一区二区三区免费看| 豆豆专区操逼性视频在线| 国产美女主播av在线| 夫亡人妻被强干中文字幕| 亚洲黄色成人一级片| 91九色人妻在线播放| 天天碰天天摸天天搞| 福利视频导航在线观看| 91精品久久久久久久久99蜜臀| 久久视频 在线播放| 大香蕉尹人在线最新| 91久久精品美女高潮喷水白浆| 免费在线观看视频啪啪| 福利小视频免费在线| 中文字幕丰满子伦无码专区| 午夜久久人妻一级内射av网址 | 奇米网首页神马久久| 亚洲欧美韩国日本一区二区| 中文字幕在线免费观看人妻| 一区二区三区资源视频| 天天综合久久无人区| 人妻激情综合久久久久蜜桃| 丰满少妇人妻一区二区三区蜜桃 | 伊人网在线欧美日韩在线| 精品日本少妇久久久| 中文字幕日韩人妻在线三区| 亚洲欧美日韩中文视频| 亚洲综合另类欧美久久| 精品精品精品精品精品污污污污| 中日韩又粗又硬又大精品| 68福利精品在线视频| 色999日韩偷自拍拍免费| 在线观看中文字幕少妇av| 婷婷色九月综合激情丁香| 免费观看在线中文字幕视频| 亚洲熟女少妇中文字幕系列| 亚洲欧美激情久久久| 夜夜操天天干夜夜操| 亚洲无人区乱码中文字幕一区| 国产一区两区三区福利小视频| 日韩激情亚洲国产欧美另类激情| 国产av高清二区三区| 全国熟妇精品一区二区免费视频| 天天干夜夜操夜夜骑| 久久人妻人人草人人爽| 午夜久久人妻一级内射av网址 | 日韩激情文学在线视频| 97视频538在线观看| 国产欧美福利在线观看| 日韩精品欧美一区二区| 亚洲熟妇丰满多毛xxxx网站| 欧美丝袜亚洲国产日韩| 老司机伊人99久久精品| 精品视频一区二区三区◇| aaaa级少妇高潮在线观看 | 亚洲a区在线免费观看| 天天爱天天日天天爽| 黄色网络中文字幕日本| 91精产国品一二三产区区别网站| 亚洲美女午夜激情视频在线观看 | 福利小视频免费在线| 国产中文亚洲熟女日韩| 91精品视频在线观看视频| 九十九步都是爱最后一步是尊严| 亚洲资源在线免费观看| 快进来插我的逼嗯啊视频| 女生抠逼自慰啊啊啊啊啊啊啊下载 | 亚洲欧美激情久久久| 国产精品网站亚洲发布| 久久人妻诱惑我视频| 亚洲资源在线免费观看| 大乳人妻一区二区三区| 青青草原在线播放日韩| 中文字幕熟女人妻一区| 福利小视频免费在线| 有码一区二区三区四区五区| 美女把腿张开给男的捅| 欧美色视频网址大全| 老色鬼精品视频在线观看播放| 骚穴被阴茎插免费视频| 91青青青国产免费高清| 老司机在线视频福利观看| 日本黄页在线观看视频| 激情久久在线免费观看视频| tushy一区二区三区视频| 在线免费观看视频18| 国产精品亚洲精品亚洲| 视频自拍偷拍视频自拍| 大乳人妻一区二区三区| 欧美视频免费观看777| 国产精品性感美女视频| 2026天天操天天干| 成人资源中文在线观看| 4日日夜夜精品视频免费| 精产国品一二三产品区别97| 99久久人人爽亚洲精品美女| 97精品久久久久久无码人妻| 3344永久在线观看视频下载| 日本男女免费福利视频| 在线国产精品欧美| 99色在线观看免费观看| 东京热日本一区二区三区| 大奶熟妇激情操逼逼| av网页免费在线观看| 一区二区在线观看视频观看| 日本福利网站一区二区| 青青青青午夜手机国产视频| 日本一区二区三区调教性奴视频| 911精产国品一二三产区区| 欧美日韩福利视频网| tobu8日本高清| 又粗又长又硬又黄又爽| 国产精品剧情在线亚洲| 亚洲少妇视频在线观看| 天天搞天天操天天干| 亚洲综合首页综合在线观看| 中文字幕观看中文字幕免费 | 欧美成人少妇人妻精品| 午夜福利片无码10000| 青青操久久综合激情| 国产在线小视频一区二区| 极品内射老女人操逼视频| 成人午夜麻豆大胆视频| 欧美日本在线免费视频| 女人扒开逼让男人操| 精品一区二区三区喷水内射高潮| av在线男人的天堂亚洲| 日本成人福利电影网| 欧美猛少妇色ⅹⅹⅹⅹⅹ猛叫| 国产精品网站的黄色| 亚洲最大先锋资源采集站| 天天爱天天日天天爽| 老熟女xxxⅹhd老熟女性| 免费24小时人妻视频| 最新日韩中文字幕免费在线观看| 国产成人91色精品免费看片| 丰满人妻被猛烈进入中文字幕| xxoo福利视频导航| 日本黄色一级电影网址| 久久热在线免费观看| 河北全程露脸对白自拍| 在线观看中文字幕少妇av| 麻豆午夜激情在线观看| 国产福利三级在线观看| 顶级欧美色妇4khd| 国产精品黄色片大全| 天天色天天射天天日天天干| 日韩av熟妇在线观看| —区二区三区女厕偷拍| avtt中文字幕手机版| 国内自拍第一区二区三区| 夜色福利视频免费观看| 瑟瑟干视频在线观看| 精品国产污污污污免费观看| 亚洲综合成人精品成人精品| 最新中文字幕久久久久| 天天搞天天操天天干| 精品免费一区二区三区四区视频| 99久久精品视频16| 亚洲国产中文字幕在线看| 成人av在线视频免费| 九九热在线精品播放| 国产精品国产三级在线高清观看| 欧美 日韩 精品 中文| 黑人和日本人av一区二区| 黄色片免费国产精品| 4438全国成人免费视频| 久久精品国产亚洲av清纯| 亚洲一区视频中文字幕在线播放| www,日韩av,com| 性色蜜桃臀x88av天美传媒| 亚洲欧美另类丝袜另类自拍| 黄色av 在线观看| 免费在线观看黄色小网站| 9999久久久久老熟妇二区| 99精品久久99久久久久一| 久久久久国产精品二区| 人妻激情综合久久久久蜜桃| 91亚洲精品久久蜜桃| 最新福利二区三区视频| 黑人巨大精品一区二区在线| 在线有码人妻自拍视频| 日韩美精品成人一区二区三区四区| 黑人黄色免费一级av| 中文字幕在线免费观看人妻| 日本韩国福利在线播放| 久久国产精品久精国产爱 | 亚洲成人自拍av在线| 一区二区三区高清视频3| 有码一区二区三区四区五区| 裸露视频免费在线观看| 亚洲国产精品一区51动漫| 成人精品影视一区二区| 黑人和日本人av一区二区| 精品美女洗澡一区二区| 人人人妻人人人妻精品少妇| jiee日本美女视频网站| 99 re国产精品| 亚洲成人三级黄色片| 亚洲国产精品一区51动漫| 青青草一个释放的网站| 夜夜操夜夜爱夜夜摸| avjpm亚洲伊人久久| 最新日韩av电影在线播放| 超级黄肉动漫在线观看| 精品国产久久久久午夜精品av| 在线免费视频999| 国产av啊啊啊啊啊啊啊| 亚洲精品久久久人妻| iga肾三级算严重吗| 91久久精品美女高潮喷水白浆| 久久精品四虎夜夜拍拍拍| 高清欧美色欧美综合网站| 最近在线中文字幕免费| 日本国产亚洲欧美色综合| 911美女片黄在线观看| 操人妻人妻天天爽天天偷| 外国美女舔男人坤坤| 99精品久久一区二区| 欧美肥妇久久久久久| 国产91黑丝小视频在线观看| 综合激情网,激情五月| 无码精品黑人一区二区老人| 一区二区三区婷婷中文字幕| 欧美啪啪一区二区三区| 日韩久久九九精品视频| 快使劲弄我视频在线播放| 男生和女生羞羞91在线看| 亚洲欧美国产人成在线| 亚洲图片另类综合小说| avtt中文字幕手机版| 99久久久久久久久久久久久| 操人妻人妻天天爽天天偷| 天天操天天射天天操天天日| 亚洲熟女乱一区二区精品成人| 国产精品网站亚洲发布| av日韩视频在线观看| 日韩人妻中文字幕区| 大秀成年人国产精品视频| jiee日本美女视频网站| jandara在线观看| 七色福利视频在线观看| 另类欧美激情校园春色| 黄色av日韩在线观看| 麻豆午夜激情在线观看| 天堂网免费在线电影| 精品欧美黑人一区二区三区| 天天操天天舔天天爽| 性感美女人妻久久久| 天天干天天色综合久久| 日韩人妻中文字幕区| 黑人侵犯人妻森泽佳奈| 91久久久久久最新网站| 91精品国产人妻麻豆| 亚洲美女午夜激情视频在线观看| 欧美视频免费观看777| 亚洲免费午夜污福利| 新亚洲天堂男子av| 欧美日韩高清片在线观看| 美女av色播在线播放| 69av精品国产探花| 欧美日韩国产在线中文字幕| av网页免费在线观看| 欧美色视频网址大全| 亚洲综合一区二区三区四区| 高潮喷水一区二区三区| 欧美激情视频第一页| 亭亭五月天在线观看| 91porny九色视频偷拍| 免费绝清毛片a在线播放| 福利视频免费在线播放| 欧美精品激情在线不卡| 亚洲一区二区中文字幕久久| 高清av在线婷一区二区色日韩| 日韩av电影中文在线免费观看| 黄色片黄色片黄色片黄色片黄色| 亚洲国内精品久久久久久久 | 精品人妻人人做人人爽| 瑟瑟干视频在线观看| 国语对白性爱三级片免费看| 精品视频在线观看免费99| 国产主播诱惑毛片av| 全球高清中文字幕av| 亚洲一区二区在线视频观看免费| 日韩人妻一区二区三区在线观看| 欧美日韩亚洲国产视频二区| 欧美成人短视频在线播放| 亚洲第一页欧美第一页| 亚洲精品国产99999| 九九视频在线观看全部| 夜夜爽夜夜操夜夜爱| 97超碰人人爽人人做| 国产福利小视频在线观看网站| 天天操天天搞天天操| 老色鬼精品视频在线观看播放| 亚洲制服丝袜在线看| 日本久久久久久黄色| 9662av在线视频| 美女精品久久久久久久久| 午夜亚洲国产精品中字| 人妻中文字幕亚洲在线| 男人av一区二区三区| 91精品夜夜夜一区二区蜜桃| 国产人妻777人伦精品hd超碰| 日本亚洲午夜福利一区二区三区| 天天爱天天日天天爽| 国产av高清二区三区| 国产av精品一区二区三区久久| 亚洲全国精品女人久久久| 亭亭五月天在线观看| 亚洲永远av在线播放| 国产熟女五十路一区二区三区| 黄色片黄色片黄色片黄色片黄色| 得得爱在线视频观看| 在宿舍强奷两个清纯校花| 国产精品乱码高清在线观看h| 久久人人爽人人爽人人av东京热| 欧美日韩国产在线中文字幕| 国产91免费在线观看| 在线观看中文字幕视频成人| 午夜国产成人精品视频观看| 欧美日本在线免费视频| 欧美猛少妇色ⅹⅹⅹⅹⅹ猛叫| 成人黄色录像在线观看| 深夜福利免费观看在线看| 亚洲av日韩久久网站| 日韩免费黄色片在线观看| 国产天堂av不卡网| 天天干夜夜爽狠狠操| 国产激情免费在线视频| 最新久久这里只有精品| 熟女一区二区视频在线| 欧美精品乱码99久久蜜桃免费| 九色porny91国产| av在线免费在线观看| 91色乱一区二区三区| 午夜情色一区二区三区| 欧洲成熟女人色惰片| 久久久亚洲熟女一区二区| 69精品人妻久久久久久久久久久| 不卡一二三区别视频| 中文字幕观看中文字幕免费| 亚洲av三级电影在线观看| 岛国av成人午夜高清| 核xp工厂精品久久亚洲| 美女欧美视频在线观看免费| 青娱乐这里只有精品| 亚洲国产日韩a在线欧美| 亚洲国产日韩欧美一区二区三区,| 亚洲图片另类综合小说| 高清av在线婷一区二区色日韩| 婷婷六月天在线视频| 1区3区4区产品乱入视频| 亚洲一级熟妇丰满的女人| 欧美极品少妇高潮喷水| 福利视频免费在线播放| 人人妻人人狠人人爽| 亚洲午夜高清在线观看| 新亚洲天堂男子av| 九色porny91国产| 夜夜操夜夜爱夜夜摸| 精品不卡一区二区三区| 国产极品气质外围av| 美女妩媚午夜诱惑网站| 不卡一二三区别视频| 免费在线观看视频啪啪| 一区二区三区四区影片| 日本老熟妇av老熟妇| 亚洲av手机免费在线| 高清国产美女a一级毛片| 欧美日韩一区二区三区成人影院| 92麻豆一区二区三区| 亚洲乱码av一区二区蜜桃av| 亚洲综合熟女乱中文| alisontyler和黑人| 日本一道中文字幕99| lutu玩弄人妻短视频| 天天早上头和脸出汗是怎么办| 午夜福利国产精品久久久久| 日本福利视频网站导航| 美女网站福利在线观看| 老熟女xxxⅹhd老熟女性| 精品一区二区三区喷水内射高潮| 伊人精品成人综合网| —区二区三区女厕偷拍| 久久午夜免费鲁丝片| 日韩一区二区在线播放观看| 亚洲国内精品久久久久久久| 亚洲精品乱码久久久久app| 69国产精品成人aaaaa片| 国产成人在线观看视频播放| 日本成年视频在线免费观看| 国产精品网站亚洲发布| 亚洲精品中文字幕手机在线免费看| 99精品久久精品一区二区| 精品日本少妇久久久| 一区二区九日韩美女| 最近在线中文字幕免费| 黄很色很在线免费视频网站| 日韩美精品成人一区二区三区四区 | 亚洲一区二区三区四区入口| 凹凸视频一区二区在线观看| 亚洲制服丝袜美腿在线| 亚州av嫩草av极品在线观看| 豆豆专区操逼性视频在线| 天天干天天弄天天日| 日本小视频一区二区| 美国十次了亚洲天堂网国产| 久久99久久99久久97的人| 欧美黄色性视频网站| 亚洲熟女人妻自拍在线视频 | 99久9在线视频播放| 精品人妻 色中文熟女 oo| 97视频538在线观看| 黄在线看片免费人成视频| 欧美插插插插插插| 99久久久久久久久久久久久| 亚洲综合成人精品成人精品| 亚洲欧美日韩中文视频| av在线免费在线观看| 一级做性色a爱片久久片| 十八禁黄色免费污污污亚洲| 欧美日本国产一区二区| 人妻系列在线免费视频| 国模伊人久久精品一区二区三区| 黄在线看片免费人成视频| 夜夜操天天干夜夜操| 在线 制服 中文字幕 日韩| 98热视频精品在线观看| 午夜一区二区三区视频在线观看| 日本东京热视频欧美视频| 久久久久久a女人处女| 欧洲亚洲一区二区三区四区| aa福利影视在线观看| 亚洲a区在线免费观看| 亚洲成人激情在线综合| 欧美成人性生活视频播放| 青青青在线视频免费播放| 亚洲av网站一区二区三区| 亚洲熟女一区二区三区250p| 中文字幕人妻一区二区视频系列| 99亚偷拍自图区亚洲| 夜夜爽夜夜操夜夜爱| 99久久国语露脸国产精品| 亚洲资源在线免费观看| 韩国毛片w妈妈的朋友7| 亚洲国产精品一区二区第二页| 久久无码高清免费视频| 日韩免费黄色片在线观看| 99久久国语露脸国产精品| 欧美日韩久久丝袜在线| 涩涩黄片在线免费观看| 亚洲中文字幕无线乱码人妻精品| 欧美精品999不卡| 神马不卡视频在线视频| 漂亮人妻口爆久久精品| 国产激情视频在线观看的| 国产igao激情在线视频入口| 自拍偷拍视频亚洲一区| 日本不卡视频一二三区| 网友自拍第一页99热| 97视频538在线观看| 日本免费人爱做视频在线观看不卡 | 韩日一级人添人人澡人人妻精品| 国模伊人久久精品一区二区三区| 两个奶被揉得又硬又翘怎么回事| 亚洲 综合 欧美 一区| 中文字幕日韩人妻在线三区| 制服丝袜 中文字幕 日韩| xxxx69在线观看视频| 99久久精品视频16| av在线男人的天堂亚洲| 制服丝袜 中文字幕 日韩 | 最新福利二区三区视频| 亚洲三级综合在线观看| 男人的天堂av中文字幕| 妈妈的朋友2中文字幕在线| 天天做天天日天天搞| 亚洲人精品午夜射精日韩| 川上优所有中文字幕在线| 日本欧美亚洲国产啊啊啊| 在线有码人妻自拍视频| 黑人3p日本女优中出| 360偷拍蜜桃臀69式| 丰满人妻熟女aⅴ一区| 色哟哟亚洲乱码国产乱码精品精| 91超碰九色porny| 日韩男女视频网站在线观看| 国产大桥未久一区二区| 77亚洲视频在线观看| 婷婷一区二区三区五月丁| 欧美视频亚洲视频在线| 性高潮视频在线观看日韩| 两个人在一起靠逼啊啊啊| 亚洲成人自拍图片网站 | 99精品久久一区二区| 18禁男女啪啪啪无遮挡| 成人精品动漫一区二区| 欧美色视频网址大全| 一区二区三区不卡免费视频网站| 欧美亚洲精品色图网站| 中文字幕亚洲乱码精品无限| 放荡人妻极品少妇全集| 亚洲欧美成人激情在线| 国产精品乱码高清在线观看h| 成人资源中文在线观看| av在线男人的天堂亚洲| 性感美女人妻久久久| 麻豆国产精品777777在| av成人三级高清日韩| 香港日本台湾经典三级| 91日本精产品一区二区三区| 亚洲a级视频在线播放| 五十岁熟妇高潮喷水| 欧美精品激情在线不卡| 99福利一区二区视频| 亚洲高清免费在线观看视频| 手机视频在线观看一区| 免费在线小视频你懂的| 欧美亚洲精品色图网站| 1级黄色片在线观看| 2020国产激情视频在线观看| 中国特黄色性生活片| 青青草一个释放的网站| 日本少妇精品免费视频| —区二区三区女厕偷拍| 午夜国产一区二区三区| 婷婷一区二区三区五月丁| 国产精品久久久久久成人久| 午夜国产成人精品视频观看| 免费绝清毛片a在线播放| 狠狠操深爱婷婷综合一区| 日日夜夜免费视频精品| 日本少妇人妻中文在线| 波多野结衣在线一区别| 日韩av水蜜桃一区二区三区| 精品国产无乱码一区二区三区| 超碰在线观看97资源| 大秀成年人国产精品视频| 一区二区三区国产精华液区别大吗| 七色福利视频在线观看| 亚洲人精品午夜射精日韩| 美利坚合众国av天堂| 精产国品一二三77777| 天天搞天天操天天干| 黄色av 在线观看| 中文字幕一区二区人妻视频| 中文字幕久久久国产| 最近日韩免费在线观看| 亚州av嫩草av极品在线观看| 欧美区一区二区三视频| 午夜精品秘一区二区三区| 欧美猛少妇色ⅹⅹⅹⅹⅹ猛叫| 欧美熟女xx00视频| 无码人妻丰满熟妇区五路| 天天爱天天日天天爽| 美女露阴道让男人捅| 全国熟妇精品一区二区免费视频| 成人大片男人的天堂| 黄色片免费网站在线| 久久av色噜噜ai换脸| 久久内射天天玩天天懂色| 国产夫妻视频在线观看免费| 亚洲无人区乱码中文字幕一区| 男生和女生羞羞91在线看| 亚洲 综合 欧美 一区| 91香蕉国产亚洲一二三区| 天堂一区二区三区在线等| 免费看一级高潮喷水片| 日日躁夜夜躁狠狠操| 182tv精品免费在线观看| 精品国产无乱码一区二区三区 | 日韩欧美黄色免费网站| 亚洲在线观看中文字幕av| 黑人黄色免费一级av| 91超碰九色porny| 亚洲在线观看中文字幕av| 亚洲第一成年偷拍视频| 日韩人妻中文字幕二区 | 亚洲综合成人精品成人精品| 狠狠干狠狠操免费视频| 青娱乐免费最新视频| 中文字幕精品人妻久久久久| 免费在线观看亚洲福利| 成人午夜高清福利视频| iga肾三级算严重吗| lutu玩弄人妻短视频| 欧美男女一区二区三区| 91亚洲最新蜜桃在线| 一区二区三区免费版在线| 久久中文字幕av一区二区| 看女人大BB群伦交| 中文人妻av一区二区三区| 国产中文亚洲熟女日韩| 亚洲欧美韩国日本一区二区| 天天操天天干天天谢| 亚洲欧美成人午夜一区二区| 色999日韩偷自拍拍免费| 激情九月天在线视频| 视频免费在线观看网站| 欧美成人一二三在线网| 日本久久久久久黄色| 乌克兰美女操逼高清内射视频| 亚洲最大的自拍偷拍网| 中文字幕丰满子伦无码专区| 亚洲蜜桃久久久久久| 自拍偷拍色图亚洲天堂| 日本高清激情乱一区二区三区| 东京热日韩av影片| 欧美黑人1区2区3区| 亚洲18片综合国产av| avtt中文字幕手机版| 成人十欧美亚洲综合在线| 夜夜人人干人人爱人人操| 亚洲成人自拍图片网站| 午夜福利国产精品久久久久| 美国十次了亚洲天堂网国产| 人妻系列在线免费视频| 欧美精品激情在线不卡| 日本福利视频网站导航| 99热99这里免费的精品| 99热99这里免费的精品| iga肾三级算严重吗| 新亚洲天堂男子av| 鸡巴插进美女的嫩小穴视频| 中文字幕观看中文字幕免费| 后入日韩翘臀蜜桃臀美女| av在线观看视频免费| 日本欧美国产在线一区| 久草视频在线看免费| 午夜呻吟亚洲精品中文字幕在上面| 综合久久伊人久久88| 丰满少妇人妻一区二区三区蜜桃| 高潮喷水一区二区三区| 人妻系列在线免费视频| 91九色91在线视频| 77亚洲视频在线观看| 18岁禁一二三区免费体验| 荣立三等功退休有什么待遇| 最新国产午夜激情视频| 高清国产美女a一级毛片| 久久人妻诱惑我视频| 夜夜躁婷婷av蜜桃妖| 最近日韩免费在线观看| 日本成人福利电影网| 黑人3p日本女优中出| 手机看片福利一区二区三区四区| 男女插鸡巴视频软件| 亚洲av手机免费在线| 国产精品乱码高清在线观看h| 国产精品国产三级在线高清观看| 一二三四区国产在线观看| 开心五月综合激情婷婷| 九九视频在线观看全部| 国产一级一国产一级毛片 | 中文字幕亚洲乱码精品无限| 一级做性色a爱片久久片| 天天天天天天天天干夜夜| 夜夜躁婷婷av蜜桃妖| 日本东京热视频欧美视频| 久久免费视频ww一区| 欧美日韩福利视频网| 亚洲人人爽人人澡起碰av| 懂色av之国产精品| avjpm亚洲伊人久久| 亚洲永远av在线播放| 在线 制服 中文字幕 日韩| 美女精品久久久久久久久| 久久久久久高清一区| 啊~插得好快别揉我胸了视频| 国产精品乱码高清在线观看h| 午夜3p福利视频合集| iga肾三级算严重吗| 精品国产人伦一区二区三区| 青青操天堂在线观看视频| av天堂新资源在线| 亚洲图片另类综合小说| 国产自拍偷拍在线精品| 激情久久在线免费观看视频| 最近日韩免费在线观看| 国产av高清二区三区| 亚洲一区二区精品三区视频| 免费在线观看黄色小网站| 青青操久久综合激情| 亚洲一区二区精品在线播放| 2020国产激情视频在线观看| 久久久久性感美女偷拍视频| 人妻少妇视频系列视频在线| 亚洲一区亚洲二区成人福利| 欧美熟女xx00视频| 91超碰国产在线观看| 日本一区二区高清av中文| 在线观看黄页网站视频网站| 日本一区二区三区调教性奴视频| 男女69视频在线观看免费| tobu8日本高清| 成人超碰一区二区三区| 川上优所有中文字幕在线| 亚洲熟妇在线视频观看| 日本有码精品一区二区三区| 伦理在线观看未删减中文字幕| 亚洲免费在线不卡视频| 亚洲妹妹我爱你在线观看| 92午夜免费福利视频www| 亚洲欧美精品海量播放| 熟妇精品午夜久久久久| 最新福利二区三区视频| 男生和女生羞羞91在线看| 国产av精品一区二区三区久久| 91中文字幕视频网站| 1级黄色片在线观看| 55夜色66夜色亚洲精品| 精品欧美乱码久久久| 68福利精品在线视频| 内地精品毛片在线观看| 欧美情色av在线观看| 亚洲资源在线免费观看| 天天色天天射天天日天天干| 国产美女高潮精品视频| 亚洲a区在线免费观看| 一区二区三区国产在线成人av | 亚洲成a人77777| 久久人人爽人人爽人人av东京热 | 色老头一区二区三区四区五区| 国产黄色主播网址大全在线播放 | 深夜福利免费观看在线看| 懂色av之国产精品| 激情久久在线免费观看视频| 精品国产久久久久午夜精品av| 亚洲高清免费在线观看视频| 九九九九九久久久国产| 日韩三级精品电影久久久久| 日韩女同与成人用品电影免费看| 亚洲国产日韩欧美一区二区三区,| 久久内射天天玩天天懂色| 欧美日韩一区二区三区成人影院| 亚洲男人天堂最新网址大全| av丝袜免费在线观看| 欧美精品一区二区三区观看| 无码人妻丰满熟妇区五路| 女生抠逼自慰啊啊啊啊啊啊啊下载| 一区二区欧美 国产日韩| 亚洲春色av中文字幕| 日韩精品视频一区二区三区在线 | 国产成人在线观看视频播放| 女生裸体视频免费网站| 看女人大BB群伦交| 1区3区4区产品乱入视频| jiee日本美女视频网站| 国产精品剧情在线亚洲| 亚洲欧美一级特黄大片| 岛国av成人午夜高清| 5566熟女人妻人妻| 青青青免费手机视频在线观看| avgo成人短视频| 蜜乳av中文字幕一区二区| 国产亚洲综合5388| 四虎精品久久免费最新| 黑吊操欧美极品美女| 抽插小穴啊啊啊视频| 91精品视频在线观看视频| 日本一本午夜在线播放| 在线观看免费啪啪啪| 琪琪日本福利伦理视频| 亚洲欧美激情国产综合久久久| 中文字字幕在线精品乱码| 日本午夜福利免费在线播放| 中文字幕av特黄毛片| 午夜久久久久久av五月| 操人妻人妻天天爽天天偷| 最新国产精品拍在线观看| 日韩欧美一区二区三区免费看| 成人午夜高清福利视频| 综合久久伊人久久88| 天天日天天玩天天摸| 黄色片免费国产精品| 久久sm人妻中出精品一区二区| 东京热日韩av影片| 精品视频在线观看免费99| 国产91九色视频在线观看| 欧美不卡一二三区精品| 久久久久久久岛国免费观看| 午夜亚洲国产精品中字| 麻豆出品视频在线观看| 国产女人18毛片水真多精选| 一区二区九日韩美女| 黄色片免费网站在线| 日本欧美亚洲国产啊啊啊| 日本在线免费观看国产精品| 国产av剧变态维修工虐杀美女| 夜夜骚av一二三区| 中文字幕观看中文字幕免费| 亚洲成人自拍图片网站| 91精品国产人妻麻豆| 国内精品一区二区2021在线| 亚洲欧洲无码一区2区无码| 亚洲中文字幕最新地址| 亚洲综合成人精品成人精品| 久久久久国产精品二区| 成年人免费福利在线| 午夜免费福利老司机| 久久久久久a女人处女| 51精品视频在线免费观看| 熟妇人妻丰满久久久久久久| 5d蜜桃臀女无痕裸感| 91精品资源在线观看| 黄色av网址在线播放| 在线能看视频你懂的| 日本亚洲精品视频在线观看| 360偷拍蜜桃臀69式| 日日躁夜夜躁狠狠操| 久久久视频在线播放| 天天操天天日天天碰| 天天综合久久无人区| 欧美色视频网址大全| 日本丰满熟妇浓密多毛| 久久久久久久岛国免费观看| 韩国毛片w妈妈的朋友7| 黑人巨大精品一区二区在线| 青娱乐免费视频一二三| 天天干天天操天天要| 精品精品精品精品精品污污污污| 亚洲美女黄色福利视频网站大全| 久久人妻人人草人人爽| 亚洲av手机免费在线| 国内精品一区二区2021在线 | 97精品国产91久久久| 日韩欧美中文字幕老司机三分钟| 91精品资源在线观看| 港台美女明星av天堂| 日本人妻熟妇丰满成熟HD系列 | 九色91操最新在线观看网址| 91激情四射婷婷综合| 少妇被粗大的猛进69视频| 视频免费在线观看网站| 一区二区在线观看视频网站| 精品av天堂毛片久久久| 日韩人妻一区二区三区在线观看| 秋霞成人午夜鲁丝一区二区三区| 在线免费视频999| 亚洲午夜国产末满十八岁勿进网站| 亚洲成年人精品国产| 老鸭窝在线毛片观看免费播放| 嗯~嗯~啊啊啊~高潮了软件| 天天干天天操天天要| 中文字幕av特黄毛片| 夜夜躁婷婷av蜜桃妖| 国产精品性感美女视频| 交换的一天中文字幕在线视频| 亚洲成人动漫av在线| 日韩黄色在线观看网站上| 大香焦一道本一区二区三区| 日本一区二区三区调教性奴视频 | 人人妻人人爽人人爽欧美一区 | 60路70路日本熟妇| 女人的天堂av在线网| 国产精品久久人人添| 熟妇精品午夜久久久久| 丝袜美女诱惑佐佐三上| 久久中文字幕av一区二区 | 亚洲国产精品自产拍在线观看| 青青在线视频看看| 99女福利女女视频在线播放| 久99久视频免费观看中文字幕| 不卡在线一区二区三区| yy4080黄色片| 国产男女无套?免费网站下载 | 亚洲成人av在线一区二区| 91超碰国产在线观看| caopeng97在线观看视频| 亚洲免费在线不卡视频| 午夜久久久久欠久久久久| 国产青青青青草免费在线视频| 国产av嗯嗯啊啊av| 99久9在线视频播放| 日本丰满熟妇浓密多毛| 最新国产午夜激情视频| 91污污在线观看视频| 亚洲综合熟女乱中文| 69精品人妻久久久久久久久久久 | 嗯~嗯~啊啊啊~高潮了软件| 一区二区在线观看视频网站| 69精品互换人妻4p| 国产高清视频www夜色资源| 2018中文字字幕人妻| 午夜夫妻性生活视频| 最新国产精品综合网高清| 久久人妻诱惑我视频| 五月天色婷婷狠狠爱| 91久久久精品成人国产| 亚洲熟女人妻自拍在线视频| 国产 少妇 一区二区| 99久久国语露脸国产精品| 欧美插插插插插插| 抽插小穴啊啊啊视频| 亚洲成人动漫av在线| 69精品人妻久久久久久久久久久| 男女啪啪啪啪91av日韩| 一区二区三区不卡免费视频网站| 99在线视频精品观看高| 欧美久久一区二区伊人| 四季av人妻一区二区三区| 黄色av网址在线播放| 天天看片天天摸天天操| 亚洲综合熟女乱中文| 日韩av熟妇在线观看| 色欲AV亚洲AV无码精品| 韩国一级片最火爆中文字幕| 天堂av在线最新地址| 日韩欧美国产一区二区在线观看 | 成人午夜高清福利视频| 日本久久久久久黄色| 熟妇高潮久久久久久久| 91九色尤物无套内射| 综合久久伊人久久88| 亚av一二三在线观看| 亚洲女人自熨在线视频| 在线观看中文字幕精品av| 欧美成人少妇人妻精品| 青青青在线观看国产| 男人资源站中文字幕| 天天操天天日天天碰| 女同性恋av在线播放| 日韩一区二区在线播放观看| 青娱乐免费视频一二三| 午夜美女福利视频在线| 日本午夜福利免费在线播放| 天天在线播放日韩av| 成人大片男人的天堂| 久久国产半精品99精品国产| 不用付费特黄特色亚洲特级黄色片| 18禁男女啪啪啪无遮挡| 制服丝袜中文字幕熟女人妻| 亚洲午夜高清在线观看| www国产亚洲精品久久久| 国产做A爱免费视频在线观看| 免费中文三级在线观看| 后入日韩翘臀蜜桃臀美女| 欧美第一激情综合网欧美激情 | 欧美熟女xx00视频| a级片特黄免费看| 成年人免费黄色av| 老鸭窝在线毛片观看免费播放| 欧美第一激情综合网欧美激情 | 自拍偷拍亚洲综合第一页| 裸露视频免费在线观看| 日韩精品视频一区二区三区在线| 国产主播诱惑毛片av| 最新激情中文字幕视频| 国产乱码有码一区二区三区| 亚洲综合第一区二区| 妈妈的朋友中字在线免费观看| 成年人免费福利在线| 欧美精品一区二区三区观看| 亚洲精品国产99999| 青青青在线视频观看97| 中文字幕在线免费观看成人| 熟女俱乐部jukujoclub| 91性高湖久久久久久久久久| av成人三级高清日韩| lutu玩弄人妻短视频| 妈妈的朋友2中文字幕在线| 公侵犯人妻中文字幕巨| 国产精品 亚洲欧美 自拍偷拍| 91在线九色porny| 国产福利三级在线观看| 91日本精产品一区二区三区| 在线观看免费啪啪啪| 久久99精品热在线观看| 男人资源站中文字幕| 99久久国语露脸国产精品| 五月天男人的天堂中文字幕| 人妻女侠被擒受辱记| 久久精品国产亚洲av热软件| 久久久久久免费观看av| 欧美插插插插插插| 日韩成人精品久久久免费看| 一区二区三区国产精华液区别大吗| 黄色av日韩在线观看| 99在线视频精品观看高| 91人妻人人爽色啊啊啊| 国产中年夫妇激情高潮| 最新福利二区三区视频| 十八禁黄色免费污污污亚洲| 欧美日本亚欧在线观看| 最新日韩中文字幕啪啪啪| 九十九步都是爱最后一步是尊严 | 欧美亚洲愉拍一区二区三区| 人妻色综合aaaaaa网| 啊不行啊操逼好爽大鸡吧视频| 日本久久久久久黄色| 国产福利三级在线观看| 区一区二区三免费观看视频| 日韩欧美黄色免费网站| 51精品视频在线免费观看| 亚洲欧美小说中文字幕| 国产精品久久久久精品三级18| 港台美女明星av天堂| 亚洲AV无码久久精品国产一区老| 国产精品美女免费视频观看 | 日韩精品欧美一区二区| 亚洲国产精品一区二区第二页| 国产精美视频精品视频精品| 天天做天天日天天搞| 夜色17s精品人妻熟女av| 91精品91久久久久| 日本一区二区三区调教性奴视频 | 亚洲经典av中文字幕| 欧美丝袜亚洲国产日韩| 五月天天堂视频在线| 大成色亚洲一二三区| 18禁网站在线点击观看| 中出小骚货在线观看| 亚洲成人 国产精品| 在线 制服 中文字幕 日韩| 天天想要天天操天天干| a级片特黄免费看| 免费在线观看黄色小网站| 欧美在线视频不卡一区| 亚洲三级综合在线观看| 操死你美女在线视频| 91精品久久久久久久久99蜜臀| 天天想要天天操天天干| 大屁股熟女一区二区视频 | 91青青青国产免费高清| 骚穴被阴茎插免费视频| 放荡人妻极品少妇全集| 天天搞天天操天天干| 欧美黑人性猛交小矮人| 熟女人妻精品视频一区| 真人一进一出抽搐大尺度视频| 一区二区三区四区影片| 久久久久久a女人处女| 亚洲gay视频在线观看| 97精品久久久久久无码人妻| 日韩加勒比精品在线看| 久久免费视频ww一区| 人妻系列中文字幕大乳丰满人妻| 亚洲一区二区在线视频观看免费 | 97精品久久久久久无码人妻| 亚洲欧美激情久久久| 九九九九九久久久国产 | 99女福利女女视频在线播放| 日韩人妻中文字幕区| 岳母的诱惑电影在线观看| 日韩av电影中文在线免费观看| lutu玩弄人妻短视频| 操操操操操操操操操网| 激情九月天在线视频| 极品少妇高潮喷水日出白浆| 国产91精品福利系列| 午夜偷拍的视频久久久免费大全| 搞乱在线在线观看视频| 国产白丝一区二区三区av| 农村大炕有肉大屁股熟妇| 婷婷综合缴情亚洲五月伊人| 国产激情一区二区视频| 天天操天天日天天碰| 人妻少妇精品二三区| 日本少妇精品免费视频| xxoo福利视频导航| 人妻超清中文字幕在线乱码| 视频免费在线观看网站| 无人区一码二码三码区别在哪| 亚洲国产日韩欧美一区二区三区,| 亚洲精品1卡2卡3卡| 91色老久久精品偷偷蜜臀| av在线中文字幕在线| 国产又粗又长又大视频| 夜夜骚av一二三区| 日产国产欧美精品另类| 女生裸体视频免费网站| 2021国产剧情麻豆| 国产精品国产三级在线高清观看| 97视频人人爱麻豆| 欧美插插插插插插| 亚洲制服丝袜资源网| 快色视频在线观看免费| julia人妻av一区二区三区| 国产免费久久精品99re丫丫 | av 一区二区三区 熟女| 亚洲情色777中文字幕| 91污污在线观看视频| 中文字幕熟女人妻一区| 中文字幕福利视频在线一区| 2020年亚洲男人天堂网| 亚洲中文字幕在线视频观看二区| 九一精品人妻一区二区三区| 日本少妇三级交换做爰做| 亚洲女人自熨在线视频| 国产美女主播av在线| 日本久久久久久黄色| 天天操,天天射,天天爽| 97精品久久久久久无码人妻| 色哟哟亚洲乱码国产乱码精品精| 亚洲妹妹我爱你在线观看| 九九六视频,这里只有精品| 青青青在线观看国产| 18禁男女啪啪啪无遮挡| 国产熟女五十路一区二区三区 | 交换的一天中文字幕在线视频| 久久久精品人妻无码专区不卡| 伊人网在线观看 视频一区| 手机看片福利一区二区三区四区| 国产激情一区二区视频| 上床啪啪啪免费视频| 日本有码精品一区二区三区| 国产资源网站在线播放| 国产在线观看av一区| 大陆中文字幕视频在线| 久久久亚洲熟女一区二区| 国产农村乱子伦精精品视频| 午夜福利在线不卡视频| 人妻少妇精品二三区| 又爽又粗又猛又色又黄视频| 琪琪日本福利伦理视频| 亚洲中文字幕无线乱码人妻精品 | 国产大桥未久一区二区| 亚洲 自拍 激情 另类| 亚洲欧美精品海量播放| 18禁男女啪啪啪无遮挡| 中文字幕亚洲乱码精品无限| 日本一区二区三区调教性奴视频 | 91精品麻豆91夜夜骚| 日本亚洲午夜福利一区二区三区 | 老牛影视在线一区二区三区| a级片特黄免费看| 男女爱爱好爽视频免费看| 欧洲成熟女人色惰片| av里面的动作是真进去吗| 国产福利三级在线观看| 亚洲最大的自拍偷拍网| 东京热日韩av影片| 大香蕉伊人97在线| 久久久亚洲熟女一区二区| 色欲AV蜜桃一区二区三| 91精品资源在线观看| 网友自拍第一页99热| 国产美女主播av在线| 男生和女生羞羞91在线看|