數據庫連接的控制方法和裝置的制造方法

            文檔序號:10580187閱讀:194來源:國知局
            數據庫連接的控制方法和裝置的制造方法
            【專利摘要】本申請公開了一種數據庫連接的控制方法和裝置。所述方法的一【具體實施方式】包括:接收終端發送的對數據庫的訪問請求;判斷數據庫連接池中是否存在用于所述數據庫的空閑的數據庫連接;響應于所述數據庫連接池中存在用于所述數據庫的空閑的數據庫連接,選擇空閑的數據庫連接進行復用,以便利用復用的數據庫連接來連接所述終端和所述數據庫;響應于所述數據庫連接池中不存在用于所述數據庫的空閑的數據庫連接,建立新的數據庫連接,以便利用所述新的數據庫連接來連接所述終端和所述數據庫。該實施方式高效地利用了較少的數據庫連接來支撐數據庫訪問請求。
            【專利說明】
            數據庫連接的控制方法和裝置
            技術領域
            [0001]本申請涉及計算機技術領域,尤其涉及數據庫應用開發領域,具體涉及一種數據庫連接的控制方法和裝置。
            【背景技術】
            [0002]隨著互聯網數據的爆炸性增長,數據庫作為互聯網數據的存儲介質,承擔了越來越多的數據以及終端對數據的訪問。數據庫連接是終端和數據庫的交互通道,現有的數據庫連接的控制方法中,通常將數據庫連接和服務器的工作線程綁定,使得數據庫花費大量的成本來維護綁定的數據庫連接,從而導致數據庫的吞吐量下降。
            [0003]因此,如何利用較少的數據庫連接高效穩定地支撐大量的數據庫訪問請求成為待解決的技術問題。

            【發明內容】

            [0004]本申請的目的在于提出一種數據庫連接的控制方法和裝置,來解決以上【背景技術】部分提到的技術問題。
            [0005]第一方面,本申請提供了一種數據庫連接的控制方法,所述方法包括:接收終端發送的對數據庫的訪問請求;判斷數據庫連接池中是否存在用于所述數據庫的空閑的數據庫連接;響應于所述數據庫連接池中存在用于所述數據庫的空閑的數據庫連接,選擇空閑的數據庫連接進行復用,以便利用復用的數據庫連接來連接所述終端和所述數據庫;響應于所述數據庫連接池中不存在用于所述數據庫的空閑的數據庫連接,建立新的數據庫連接,以便利用所述新的數據庫連接來連接所述終端和所述數據庫。
            [0006]在一些實施例中,所述響應于所述數據庫連接池中存在用于所述數據庫的空閑的數據庫連接,選擇空閑的數據庫連接進行復用,以便利用復用的數據庫連接來連接所述終端和所述數據庫,包括:將所述終端和所述復用的數據庫連接之間的連接屬性與所述復用的數據庫連接和所述數據庫之間的連接屬性進行比較,確定二者的差異部分;向所述數據庫發送包括所述差異部分的屬性修改請求,以供所述數據庫修改所述復用的數據庫連接和所述數據庫之間的連接屬性。
            [0007]在一些實施例中,所述響應于所述數據庫連接池中不存在用于所述數據庫的空閑的數據庫連接,建立新的數據庫連接,以便利用新的數據庫連接來連接所述終端和所述數據庫,包括:向所述數據庫發送建立連接請求;將正在建立連接過程中的數據庫連接加入預設的數組中;在接收到所述數據庫返回的應答消息時,從所述預設的數組中查找所述應答消息對應的數據庫連接;利用所述應答消息對應的數據庫連接來連接所述終端和所述數據庫。
            [0008]在一些實施例中,所述方法還包括:根據預設的數據庫連接控制規則,控制用于所述數據庫的數據庫連接的數量。
            [0009]在一些實施例中,所述根據預設的數據庫連接控制規則,控制用于所述數據庫的數據庫連接的數量,包括:當接收的訪問請求的數量小于或等于第一預設值時,復用空閑的數據庫連接以及釋放超時的數據庫連接;當接收的訪問請求的數量大于所述第一預設值且小于或等于第二預設值且用于所述數據庫的非空閑的數據庫連接的數量大于預設的數據庫連接池的最大連接數量時,復用空閑的數據庫連接以及釋放空閑的數據庫連接;當接收的訪問請求的數量大于所述第二預設值時,建立新的數據庫連接、復用空閑的數據庫連接以及釋放空閑的數據庫連接。
            [0010]在一些實施例中,所述響應于所述數據庫連接池中不存在用于所述數據庫的空閑的數據庫連接,建立新的數據庫連接,以便利用新的數據庫連接來連接所述終端和所述數據庫,包括:響應于所述數據庫連接池中不存在用于所述數據庫的空閑的數據庫連接,在所述數據庫的各從數據庫中選取一個作為目標數據庫;建立新的到所述目標數據庫的數據庫連接。
            [0011]在一些實施例中,所述在所述數據庫的各從數據庫中選取一個作為目標數據庫,包括:對于每個從數據庫,確定該從數據庫的非空閑的數據庫連接的數量與該從數據庫的權重的比值;將所述比值的最小值對應的從數據庫作為目標數據庫。
            [0012]在一些實施例中,所述在所述數據庫的各從數據庫中選取一個作為目標數據庫,包括:利用隨機算法,在所述數據庫的各從數據庫中選取一個作為目標數據庫。
            [0013]在一些實施例中,所述方法還包括:檢測各從數據庫是否發生故障;屏蔽發生故障的從數據庫;間隔預設時間探查所述發生故障的從數據庫;解除屏蔽故障解除的從數據庫。
            [0014]第二方面,本申請提供一種數據庫連接的控制裝置,所述裝置包括:接收單元,用于接收終端發送的對數據庫的訪問請求;判斷單元,用于判斷數據庫連接池中是否存在用于所述數據庫的空閑的數據庫連接;復用單元,用于響應于所述數據庫連接池中存在用于所述數據庫的空閑的數據庫連接,選擇空閑的數據庫連接進行復用,以便利用復用的數據庫連接來連接所述終端和所述數據庫;建連單元,用于響應于所述數據庫連接池中不存在用于所述數據庫的空閑的數據庫連接,建立新的數據庫連接,以便利用所述新的數據庫連接來連接所述終端和所述數據庫。
            [0015]在一些實施例中,所述復用單元包括:屬性比較模塊,用于將所述終端和所述復用的數據庫連接之間的連接屬性與所述復用的數據庫連接和所述數據庫之間的連接屬性進行比較,確定二者的差異部分;屬性修改模塊,用于向所述數據庫發送包括所述差異部分的屬性修改請求,以供所述數據庫修改所述復用的數據庫連接和所述數據庫之間的連接屬性。
            [0016]在一些實施例中,所述建連單元包括:發送模塊,用于向所述數據庫發送建立連接請求;加入模塊,用于將正在建立連接過程中的數據庫連接加入預設的數組中;查找模塊,用于在接收到所述數據庫返回的應答消息時,從所述預設的數組中查找所述應答消息對應的數據庫連接;連接模塊,用于利用所述應答消息對應的數據庫連接來連接所述終端和所述數據庫。
            [0017]在一些實施例中,所述裝置還包括:控制單元,用于根據預設的數據庫連接控制規則,控制用于所述數據庫的數據庫連接的數量。
            [0018]在一些實施例中,所述控制單元包括:第一控制模塊,用于當接收的訪問請求的數量小于或等于第一預設值時,復用空閑的數據庫連接以及釋放超時的數據庫連接;第二控制模塊,用于當接收的訪問請求的數量大于所述第一預設值且小于或等于第二預設值且用于所述數據庫的非空閑的數據庫連接的數量大于預設的數據庫連接池的最大連接數量時,復用空閑的數據庫連接以及釋放空閑的數據庫連接;第三控制模塊,用于當接收的訪問請求的數量大于所述第二預設值時,建立新的數據庫連接、復用空閑的數據庫連接以及釋放空閑的數據庫連接。
            [0019]在一些實施例中,所述建連單元包括:選取模塊,用于響應于所述數據庫連接池中不存在用于所述數據庫的空閑的數據庫連接,在所述數據庫的各從數據庫中選取一個作為目標數據庫;建連模塊,用于建立新的到所述目標數據庫的數據庫連接。
            [0020]在一些實施例中,所述選取模塊進一步用于:對于每個從數據庫,確定該從數據庫的非空閑的數據庫連接的數量與該從數據庫的權重的比值;將所述比值的最小值對應的從數據庫作為目標數據庫。
            [0021]在一些實施例中,所述選取模塊進一步用于:利用隨機算法,在所述數據庫的各從數據庫中選取一個作為目標數據庫。
            [0022]在一些實施例中,所述裝置還包括:故障檢測單元,用于檢測各從數據庫是否發生故障;屏蔽單元,用于屏蔽發生故障的從數據庫;探查單元,用于間隔預設時間探查所述發生故障的從數據庫;解除屏蔽單元,用于解除屏蔽故障解除的從數據庫。
            [0023]本申請提供的數據庫連接的控制方法和裝置,在接收到終端發送的對數據庫的訪問請求后,首先判斷數據庫連接池中是否存在空閑的數據庫連接,在存在空閑的數據庫連接時,則復用空閑的連接,在不存在空閑的數據庫連接時,向數據庫發送建立連接請求,建立數據庫連接,實現了高效地利用了較少的數據庫連接來支撐數據庫訪問請求。
            【附圖說明】
            [0024]通過閱讀參照以下附圖所作的對非限制性實施例所作的詳細描述,本申請的其它特征、目的和優點將會變得更明顯:
            [0025]圖1是本申請可以應用于其中的示例性系統架構圖;
            [0026]圖2是根據本申請的數據庫連接的控制方法的一個實施例的流程圖;
            [0027]圖3是根據本申請的數據庫連接的控制方法的又一個實施例的流程圖;
            [0028]圖4是根據本申請的數據庫連接的控制方法的數據庫連接控制規則的工作示意圖;
            [0029]圖5是根據本申請的數據庫連接的控制裝置的一個實施例的結構示意圖;
            [0030]圖6是適于用來實現本申請實施例的服務器的計算機系統的結構示意圖。
            【具體實施方式】
            [0031]下面結合附圖和實施例對本申請作進一步的詳細說明。可以理解的是,此處所描述的具體實施例僅僅用于解釋相關發明,而非對該發明的限定。另外還需要說明的是,為了便于描述,附圖中僅示出了與有關發明相關的部分。
            [0032]需要說明的是,在不沖突的情況下,本申請中的實施例及實施例中的特征可以相互組合。下面將參考附圖并結合實施例來詳細說明本申請。
            [0033]圖1示出了可以應用本申請的數據庫連接的控制方法或數據庫連接的控制裝置的實施例的示例性系統架構100。
            [0034]如圖1所示,系統架構100可以包括終端設備101、102、103,網絡104,服務器105以及數據庫106、107。網絡104用以在終端設備101、102、103和服務器105之間以及服務器105和數據庫106、107之間提供通信鏈路的介質。網絡104可以包括各種連接類型,例如有線、無線通信鏈路或者光纖電纜等等。
            [0035]終端設備101、102、103上的應用軟件可以通過網絡104與服務器105交互,同樣,月艮務器105可以通過網絡104與第一數據庫106、第二數據庫107交互,以接收或發送消息等。終端設備101、102、103上可以安裝有各種需要訪問數據庫的應用,例如網頁瀏覽器應用、購物類應用、搜索類應用、即時通信工具、郵箱客戶端、社交平臺軟件等。
            [0036]終端設備101、102、103可以是具有顯示屏的各種電子設備,包括但不限于智能手機、平板電腦、電子書閱讀器、膝上型便攜計算機和臺式計算機等等。
            [0037]服務器105可以是提供各種服務的服務器,例如對終端設備101、102、103上安裝的應用程序訪問數據庫提供支持的數據庫連接服務器。數據庫連接服務器可以包括數據庫連接池,并對數據庫連接池中的數據庫連接進行維護和管理,其還可以對接收到的數據庫訪問請求等數據進行分析等處理,也可以根據接收到的數據庫訪問請求以及數據庫連接的數量,向數據庫發送請求。并接收從數據庫返回的消息,將終端設備的數據庫訪問請求對應的處理結果(例如連接數據庫成功)反饋給終端設備。
            [0038]數據庫106、107可以是存儲各種類型的數據的數據庫,例如存儲有終端設備101、102、103上安裝的應用程序所需的數據,通過數據庫連接與終端設備101、102、103連接后,允許上述終端設備訪問數據庫。數據庫106、107可以接收服務器105發送的請求,并對上述請求進行分析等處理,并將處理結果返回給服務器。
            [0039]需要說明的是,本申請實施例所提供的數據庫連接的控制方法一般由服務器105執行,相應地,數據庫連接的控制裝置一般設置于服務器105中。
            [0040]應該理解,圖1中的終端設備、網絡、服務器和數據庫的數目僅僅是示意性的。根據實現需要,可以具有任意數目的終端設備、網絡、服務器和數據庫。
            [0041]繼續參考圖2,示出了根據本申請的數據庫連接的控制方法的一個應用場景的流程圖200。本實施例的數據庫連接的控制方法,包括以下步驟:
            [0042]步驟201,接收終端發送的對數據庫的訪問請求。
            [0043]本實施例中,數據庫連接的控制方法運行于其上的電子設備(例如圖1中所示的服務器)可以通過有線連接或者無線連接方式從應用程序安裝的終端(例如圖1中所示的終端設備)接收對數據庫的訪問請求。可以理解的是,上述對數據庫的訪問請求中,包含訪問的文件路徑。需要指出的是,上述無線連接方式可以包括但不限于3G/4G連接、WiFi連接、藍牙連接、WiMAX連接、Zigbee連接、UWB(ultra wideband)連接、以及其他現在已知或將來開發的無線連接方式。
            [0044]步驟202,判斷數據庫連接池中是否存在用于上述數據庫的空閑的數據庫連接。
            [0045]本實施例中,基于接收到的終端發送的對數據庫的訪問請求,上述電子設備(如圖1所示的服務器)首先判斷數據庫連接池中是否存在用于上述數據庫的空閑的數據庫連接。其中,數據庫連接池是負責分配、管理和釋放數據庫連接的結構,它允許終端上安裝的應用程序重復使用一個現有的數據庫連接,而不是再重新建立一個。當一個數據庫連接未連接終端設備時,可以認為此數據庫連接是空閑的。
            [0046]步驟203,響應于上述數據庫連接池中存在用于上述數據庫的空閑的數據庫連接,選擇空閑的數據庫連接進行復用,以便利用復用的數據庫連接來連接終端和上述數據庫。
            [0047]當上述數據庫連接池中存在上述終端訪問的數據庫的空閑的數據庫連接時,選擇空閑的數據庫連接進行復用。本實施例中,終端上的應用程序通過數據庫連接訪問或者使用數據庫結束后,被使用的數據庫連接會被釋放。復用數據庫連接可以理解為重新利用被釋放的數據庫連接,以連接終端和上述數據庫,從而使得終端上的應用程序通過上述數據庫連接訪問或者使用數據庫。
            [0048]步驟204,響應于上述數據庫連接池中不存在用于上述數據庫的空閑的數據庫連接,建立新的數據庫連接,以便利用新的數據庫連接來連接終端和上述數據庫。
            [0049]當上述數據庫連接池中不存在上述終端訪問的數據庫的空閑的數據庫連接時,需要建立新的數據庫連接,連接終端和上述數據庫。
            [0050]在本實施例的一些可選的實現方式中,上述步驟204可以包括圖2中未示出的以下子步驟:
            [0051]響應于數據庫連接池中不存在用于上述數據庫的空閑的數據庫連接,在上述數據庫的各從數據庫中選取一個作為目標數據庫;建立新的到所述目標數據庫的數據庫連接。
            [0052]數據庫連接池中不存在用于上述數據庫的空閑的數據庫連接時,需要向數據庫發送建立連接請求。但在實踐中,由于數據庫的吞吐量巨大,客戶端會與多個從數據庫進行訪問請求的交互,這樣可能造成不同的從數據庫負載不同的情況。
            [0053]為了保證各從數據庫之間的負載均衡,需要從上述數據庫的各從數據庫中選取一個作為目標數據庫,并建立新的到選取的目標數據庫的數據庫連接。這樣可以避免某個從數據庫的負載過高,而其它從數據庫負載過少的現象。
            [0054]在本實施例的一些可選的實現方式中,上述子步驟還可以包括圖2中未示出的以下步驟:
            [0055]對于每個從數據庫,確定該從數據庫的權重與該從數據庫的非空閑的數據庫連接的數量的比值;將比值的最小值對應的從數據庫作為目標數據庫。
            [0056]由于不同的從數據庫的硬件、網絡連接狀況都可能不完全一樣,造成不同從數據庫的穩定性不同。通過為每個從數據庫設置權重來體現各從數據庫的穩定性。可以理解的是,不同的從數據庫的非空閑的數據庫連接的數量也不同,此處,非空閑的數據庫連接是指正在連接終端和從數據庫的數據庫連接。
            [0057]確定每個從數據庫的非空閑的數據庫連接的數量和其權重的比值,可以幫助選擇性能較好的從數據庫。舉例來說,兩個從數據庫的權重相同時,第一個從數據庫的非空閑的數據庫連接的數量小于第二個從數據庫的非空閑的數據庫連接的數量,這種情況下,第一個從數據庫是較優的選擇。因此,選擇比值的最小值對應的從數據庫為目標數據庫。
            [0058]可以理解的是,本實施例的上述實現方式,尤其適用于系統結構中只有一個服務器的情況。
            [0059]在本實施例的一些可選的實現方式中,上述子步驟還可以包括圖2中未示出的以下步驟:
            [0060]利用隨機算法,在上述數據庫的各從數據庫中選取一個作為目標數據庫。
            [0061]本實施例中,隨機算法可以是算法本身包含了隨機數生成器的算法。本實施例的實現方式,尤其適用于系統結構中存在多個服務器的情況。可以理解的是,本實施例的上述實現方式尤其適用于系統結構中每個服務器在每次啟動時采用。由于各服務器的配置文件一致,且各服務器通過環回的方式遍歷從數據庫時,由于各服務器環回遍歷的起點從數據庫相同,容易導致各服務器選擇的從數據庫相同,從而導致某個從數據庫的負載明顯高于其它從數據庫。在服務器啟動時采用隨機算法選取起點從數據庫,在后續接收到終端設備的數據庫訪問請求時,也可以根據每個從數據庫的非空閑數據庫的數量與該從數據庫的權重來選擇目標數據庫。
            [0062]本實施例中,通過隨機算法使得各服務器隨機選擇不同的起點從數據庫,從而避免了某個從數據庫的負載明顯高于其它從數據庫的現象,實現了從數據庫的負載均衡。
            [0063]在本實施例的一些可選的實現方式中,上述方法還包括圖2中未示出的以下步驟:檢測各從數據庫是否發生故障;屏蔽發生故障的從數據庫;間隔預設時間探查所述發生故障的從數據庫;解除屏蔽故障解除的從數據庫。
            [0064]當由于網絡原因或者其它可能的原因導致某個從數據庫發生故障,無法提供正常服務時,服務器會通過臨時隔離手段屏蔽上述發生故障的從數據庫。在實踐中,臨時隔離手段可以是設置一個正常工作的數據庫列表,當檢測到某個從數據庫不發生故障時,則將發生故障的從數據庫從列表中刪除,則向數據庫發送建立連接請求時,不會發送至發生故障的從數據庫中。
            [0065]本實施例中,還對上述發生故障的從數據庫進行定時探查,判斷上述發生故障的從數據庫是否恢復正常,能夠提供正常的服務。當故障解除后,對上述從數據庫解除屏蔽。在實踐中,當從數據庫恢復正常后,可再將上述從數據庫重新加入正常工作的數據庫列表中。
            [0066]本申請的上述實施例提供的數據庫連接的控制方法,在接收到終端發送的對數據庫的訪問請求后,首先判斷數據庫連接池中是否存在空閑的數據庫連接,在存在空閑的數據庫連接時,則復用空閑的連接,在不存在空閑的數據庫連接時,向數據庫發送建立連接請求,建立數據庫連接,實現了高效地利用了較少的數據庫連接來支撐數據庫訪問請求。
            [0067]繼續參考圖3,示出了根據本申請的數據庫連接的控制方法的又一個實施例的流程圖300。本實施例的數據庫連接的控制方法包括以下步驟:
            [0068]步驟301,接收終端發送的對數據庫的訪問請求。
            [0069]本實施例中,終端可以是圖1所示的終端設備101、102、103,數據庫可以是圖1所示的數據庫106、107。終端上安裝的應用程序在需要訪問數據庫時,通過終端向服務器發送對數據庫的訪問請求。
            [0070]步驟302,判斷數據庫連接池中是否存在用于上述數據庫的空閑的數據庫連接。
            [0071]為了充分高效地利用現有的數據庫連接,首先要判斷連接池中是否存在空閑的數據庫連接,存在空閑的數據庫連接時,對上述空閑的數據庫連接進行復用,即執行步驟303;在不存在空閑的數據庫連接時,再建立新的數據庫連接,即執行步驟304。
            [0072]步驟303,響應于上述數據庫連接池中存在用于上述數據庫的空閑的數據庫連接,選擇空閑的數據庫連接進行復用,以便利用復用的數據庫連接來連接終端和上述數據庫。
            [0073]上述步驟303具體包括子步驟3031和子步驟3032。
            [0074]子步驟3031,將終端和復用的數據庫連接之間的連接屬性與復用的數據庫連接和數據庫之間的連接屬性進行比較,確定二者的差異部分。
            [0075]子步驟3032,向上述數據庫發送包括差異部分的屬性修改請求,以供上述數據庫修改復用的數據庫連接和上述數據庫之間的連接屬性。
            [0076]由于不同的終端上安裝的應用程序本身具備不同的屬性,這導致不同的終端和數據庫連接之間的連接屬性不同。同理,不同的數據庫連接和數據庫之間的連接屬性也不相同。但是終端通過數據庫連接與上述數據庫連接時,要求終端和數據庫連接之間的連接屬性與不同的數據庫連接和數據庫之間的連接屬性保持一致。否則只能將終端和數據庫連接之間的連接與不同的數據庫連接和數據庫之間的連接綁定,這種綁定造成數據庫連接的復用率極低。
            [0077]本實施例中,通過比較終端和數據庫連接之間的連接屬性與不同的數據庫連接和數據庫之間的連接屬性之間的差異部分,并將上述差異部分包裝在屬性修改請求中發送給數據庫,數據庫在接收到上述屬性修改請求后,會修改數據庫連接和數據庫之間的連接屬性,從而使得終端和數據庫連接之間的連接屬性與不同的數據庫連接和數據庫之間的連接屬性保持一致。
            [0078]通過這種比較連接屬性間的差異部分,并對數據庫連接和數據庫之間的連接屬性的差異部分進行修改,可以有效地提高數據庫連接的復用率,從而減少了維護數據庫連接的成本。
            [0079]步驟304,響應于所述數據庫連接池中不存在用于所述數據庫的空閑的數據庫連接,建立新的數據庫連接,以便利用所述新的數據庫連接來連接所述終端和所述數據庫。
            [0080]上述步驟304具體包括以下子步驟:
            [0081 ]子步驟3041,向所述數據庫發送建立連接請求。
            [0082]要建立新的數據庫連接,首先向數據庫發送建立連接請求,以使得數據庫在接收到上述建立連接請求后,建立一個新的數據庫連接。
            [0083]子步驟3042,將正在建立連接過程中的數據庫連接加入預設的數組中。
            [0084]本實施例中,正在建立連接過程中的數據庫連接可以理解為已經向數據庫發送了建立連接請求,但未連接到數據庫的數據庫連接。在實踐中,預設的數組可以是特定的hash桶,其中,hash桶是哈希表內元素的虛擬子群組,可以讓大部分集合中的搜尋和獲取工作更容易、更快速。
            [0085]子步驟3043,在接收到上述數據庫返回的應答消息時,從預設的數組中查找應答消息對應的數據庫連接。
            [0086]本實施例中,將正在建立在建立連接過程中的數據庫連接加入預設的數組后,接收到數據庫返回的應答消息時,再去處理應答消息對應的數據庫連接。這樣,服務器可以并行處理其他業務邏輯,不會因為要等待數據庫的應答而不能進行其他的操作,即采用異步方式建立新的數據庫連接。
            [0087]子步驟3044,利用所述應答消息對應的數據庫連接來連接終端和數據庫。
            [0088]可以理解的是,上述應答消息是數據庫連接建立成功的消息。在數據庫連接建立成功后,連接終端和數據庫。
            [0089]由于現有的建立數據庫連接采用同步方式,正常情況下,服務器在向數據庫發送建立連接請求后,會阻塞等待一個RTT(Round-Trip Time,往返延遲)的時間。如果出現網絡異常情況或者要訪問的數據庫達到性能瓶頸時,會阻塞等待一個超時時間(1ms級別)。再加上失敗重連的耗時,客戶端的阻塞等待時間有可能達到10ms級別,會極大的影響服務器的吞吐。
            [0090]本實施例中,通過采用異步的方式建立新的數據庫連接,使得服務器可以同步處理其他的業務操作,實現提高服務器吞吐的效果。
            [0091]步驟305,根據預設的數據庫連接控制規則,控制用于上述數據庫的數據庫連接的數量。
            [0092]由于終端中安裝的應用程序對數據庫的訪問或使用存在高峰期和低谷期。在高峰期時,需要通過大量的數據庫連接來支撐訪問或使用;在低谷期,可以用盡量少的數據庫連接支撐訪問或使用。因此,對數據庫的數據庫連接的數量進行控制,能夠有效地減少維護數據庫連接的成本,充分利用現有的數據庫連接。
            [0093]在本實施例的一些可選的實現方式中,步驟305具體包括圖3中未示出的以下子步驟:
            [0094]子步驟一,當接收的訪問請求的數量小于或等于第一預設值時,復用空閑的數據庫連接以及釋放超時的數據庫連接。
            [0095]本實施例中,第一預設值是根據數據庫連接池中的數據庫連接進行設定的一個值。當接收的訪問請求的數量小于或等于第一預設值時,可以認為處于低谷期,采用復用空閑的數據庫連接以及釋放超時的數據庫連接的方式來控制數據庫連接的數量。
            [0096]其中,釋放超時的數據庫連接可以理解為:數據庫連接池之外的數據庫連接處于空閑狀態,且其存在時間超過預設的一個時間值,為了減少維護數據庫連接的成本,將這種數據庫連接釋放掉。
            [0097]子步驟二,當接收的訪問請求的數量大于所述第一預設值且小于或等于第二預設值且用于所述數據庫的非空閑的數據庫連接的數量大于預設的數據庫連接池的最大連接數量時,復用空閑的數據庫連接以及釋放空閑的數據庫連接。
            [0098]本實施例中,數據庫連接池的最大連接數量是根據數據庫的硬件及網絡情況預設的一個值。
            [0099]當接收的訪問請求的數量大于所述第一預設值且小于或等于第二預設值時,可以認為此時的訪問數據庫數量處于高峰期和低谷期之間,此時采用復用空閑的數據庫連接的方式來控制數據庫連接的數量。
            [0100]當接收的訪問請求的數量大于所述第一預設值且小于或等于第二預設值且用于所述數據庫的非空閑的數據庫連接的數量大于預設的數據庫連接池的最大連接數量時,可以認為此時的訪問數據庫數量處于高峰期過后的回落期,此時采用復用空閑的數據庫連接以及釋放空閑的數據庫連接的方式來控制數據庫連接的數量。此處,釋放空閑的數據庫連接是指將超出數據庫連接池的最大連接數量部分的數據庫連接及時釋放,防止由于維護已建立的數據庫連接,造成服務器的吞吐下降。
            [0101]子步驟三,當接收的訪問請求的數量大于所述第二預設值時,建立新的數據庫連接、復用空閑的數據庫連接以及釋放空閑的數據庫連接。
            [0102]本實施例中,當接收的訪問請求的數量大于所述第二預設值時,可以認為此時的訪問數據庫數量處于高峰期,采用建立新的數據庫連接、復用空閑的數據庫連接以及釋放空閑的數據庫連接的方式來控制數據庫連接的數量。因為處于高峰期,所以要建立新的數據庫連接來滿足訪問請求的要求。同時要及時釋放空閑的數據庫連接,避免由于維護空閑的數據庫連接,造成數據庫處理其他業務的能力下降。采用本實施例的方式,可以動態的維持數據庫連接的數量在比較高的位置。
            [0103]圖4示出了本實施例的上述實現方式中的預設的數據庫連接控制規則的具體工作示意圖400。其中,401為復用空閑的數據庫連接,402為釋放超時的數據庫連接,403為釋放空閑的數據庫連接,404為建立新的數據庫連接。
            [0104]在本實施例中,第一預設值可以小于數據庫連接池的最大連接數量,第二預設值可以大于數據庫連接池的最大連接數量,并且小于數據庫連接數量的最大值。其中,數據庫連接數量的最大值是由數據庫的硬件和網絡等情況來確定的,表示數據庫能夠支撐的數據庫連接數量的最大值。當對數據庫的訪問請求數量小于第一預設值時,為低谷期;當對數據庫的訪問請求數量大于或等于第一預設值且小于第二預設值時,為低谷期與高峰期之間的過渡期;當對數據庫的訪問請求數量大于或等于第二預設值時,為高峰期。
            [0105]在低谷期,采用401和402控制數據庫連接的數量;在過渡期,采用401和403控制數據庫連接的數量;在高峰期,采用401、403和404控制數據庫連接的數量。
            [0106]本申請的上述實施例提供的數據庫連接的控制方法,通過對數據庫連接和終端之間的連接屬性以及數據庫連接與數據庫之間的連接屬性進行比較,并向數據庫發送包含二者差異部分的屬性修改請求,使得數據庫修改數據庫連接與數據庫之間的連接屬性,有效地提高了數據庫連接的復用效率;通過異步的方式建立數據庫連接,有效地避免了服務器在建立數據庫連接過程堵塞的現象,提高了數據庫的吞吐;通過對數據庫連接數量的有效控制,有效地降低了數據庫維護數據庫連接的成本,提高了穩定性,實現了高效地支撐終端的海量訪問請求。
            [0107]繼續參考圖5,示出了根據本申請的數據庫連接的控制裝置的結構示意圖500。本實施例的數據庫連接的控制裝置包括:接收單元501、判斷單元502、復用單元503和建連單元504。
            [0108]其中,接收單元501,用于接收終端發送的對數據庫的訪問請求;判斷單元502,用于判斷數據庫連接池中是否存在用于上述數據庫的空閑的數據庫連接;復用單元503,用于響應于數據庫連接池中存在用于上述數據庫的空閑的數據庫連接,選擇空閑的數據庫連接進行復用,以便利用復用的數據庫連接來連接終端和上述數據庫;建連單元504,用于響應于數據庫連接池中不存在用于上述數據庫的空閑的數據庫連接,建立新的數據庫連接,以便利用新的數據庫連接來連接終端和上述數據庫。
            [0109]本實施例中,接收單元501用于接收終端發送的對數據庫的訪問請求。判斷單元502判斷數據庫連接池中是否還存在空閑的數據庫連接,如果存在,就調用復用單元503復用空閑的數據庫連接;如果不存在,則調用建連單元504建立一個新的數據庫連接。
            [0110]在本實施例的一個可選的實現方式中,上述復用單元503包括圖5中未示出的屬性比較模塊和屬性修改模塊。
            [0111]其中,屬性比較模塊,用于將終端和復用的數據庫連接之間的連接屬性與復用的數據庫連接和數據庫之間的連接屬性進行比較,確定二者的差異部分;屬性修改模塊,用于向數據庫發送包括差異部分的屬性修改請求,以供數據庫修改復用的數據庫連接和數據庫之間的連接屬性。
            [0112]本實施例中,屬性比較模塊,用于比較終端和復用的數據庫連接之間的連接屬性與復用的數據庫連接和數據庫之間的連接屬性,確定二者之間的差異部分,并將上述差異部分發送給屬性修改模塊,屬性修改模塊將上述差異部分打包在屬性修改請求內發送給上述數據庫,數據庫根據上述差異部分,修改復用的數據庫連接和數據庫之間的連接屬性。這樣,快速地實現了終端與數據庫之間的連接。
            [0113]在本實施例的一個可選的實現方式中,建連單元504包括圖5中未示出的以下模塊:發送模塊、加入模塊、查找模塊和連接模塊。
            [0114]其中,發送模塊,用于向上述數據庫發送建立連接請求;加入模塊,用于將正在建立連接過程中的數據庫連接加入預設的數組中;查找模塊,用于在接收到上述數據庫返回的應答消息時,從預設的數組中查找應答消息對應的數據庫連接;連接模塊,用于利用應答消息對應的數據庫連接來連接終端和上述數據庫。
            [0115]本實施例中,在建立新的數據庫連接時,首先通過發送模塊向數據庫發送建立連接請求,隨后加入模塊將正在建立連接過程中的數據庫連接加入預設的數組中,查找模塊在接收到數據庫返回的應答消息時,從預設的數組中查找對應的數據庫連接,連接模塊利用此數據庫連接來連接終端和上述數據庫。上述異步的建立連接方式,避免了傳統的同步建立連接方式造成的服務器堵塞現象。
            [0116]在本實施例的一些可選的實現方式中,上述裝置還包括圖5中未示出的控制單元,用于根據預設的數據庫連接控制規則,控制用于數據庫的數據庫連接的數量。
            [0117]對數據庫的數據庫連接的數量進行規律的控制,可以有效地減少數據庫用于維護數據庫連接的成本。
            [0118]在本實施例的一些可選的實現方式中,控制單元還包括以下控制模塊:第一控制模塊、第二控制模塊以及第三控制模塊。
            [0119]其中,第一控制模塊,用于當接收的訪問請求的數量小于或等于第一預設值時,復用空閑的數據庫連接以及釋放超時的數據庫連接;第二控制模塊,用于當接收的訪問請求的數量大于所述第一預設值且小于或等于第二預設值且用于所述數據庫的非空閑的數據庫連接的數量大于預設的數據庫連接池的最大連接數量時,復用空閑的數據庫連接以及釋放空閑的數據庫連接;第三控制模塊,用于當接收的訪問請求的數量大于所述第二預設值時,建立新的數據庫連接、復用空閑的數據庫連接以及釋放空閑的數據庫連接。
            [0120]根據接收的對數據庫的訪問請求數量,分為低谷期、高峰期以及位于低谷期和高峰期之間的過渡期,對三個時期采用不同的數據庫連接管理方式對數據庫連接的數量進行管理,有效地控制了數據庫用于維護數據庫連接的成本,提高了數據庫運行的穩定性。
            [0121]在本實施例的一些可選的實現方式中,上述建連單元504還包括圖5中未示出的選取模塊和建連模塊。
            [0122]其中,選取模塊,用于響應于數據庫連接池中不存在用于上述數據庫的空閑的數據庫連接,在所述數據庫的各從數據庫中選取一個作為目標數據庫;建連模塊,用于建立新的到目標數據庫的數據庫連接。
            [0123]由于在實踐中,考慮到數據庫的高吞吐量,客戶端會與多個從數據庫進行交互。因此,選取模塊在多個從數據庫中選擇一個作為目標數據庫,建連模塊建立到目標數據庫的數據庫連接。
            [0124]在本實施例的一些可選的實現方式中,上述選取模塊進一步用于:對于每個從數據庫,確定該從數據庫的非空閑的數據庫連接的數量與該從數據庫的權重的比值;將比值的最小值對應的從數據庫作為目標數據庫。
            [0125]選取模塊可以根據每個從數據庫的非空閑的數據庫連接的數量和該從數據庫的權重,來確定目標數據庫。本實施例中,選取模塊可以選擇非空閑的數據庫連接的數量與權重比值最小的從數據庫作為目標數據庫。
            [0126]在本實施例的一些可選的實現方式中,上述選取模塊進一步用于:利用隨機算法,在所述數據庫的各從數據庫中選取一個作為目標數據庫。
            [0127]本實施例中,隨機算法可以是算法本身包含了隨機數生成器的算法。本實施例的實現方式,尤其適用于系統結構中存在多個服務器的情況。
            [0128]在本實施例的一些可選的實現方式中,上述裝置還包括圖5中未示出的以下部分:故障檢測單元、屏蔽單元、探查單元和解除屏蔽單元。
            [0129]故障檢測單元,用于檢測各從數據庫是否發生故障;屏蔽單元,用于屏蔽發生故障的從數據庫;探查單元,用于間隔預設時間探查所述發生故障的從數據庫;解除屏蔽單元,用于解除屏蔽故障解除的從數據庫。
            [0130]本實施例中,故障檢測單元能夠實時檢測出故障數據庫,并調用屏蔽單元對故障數據庫進行屏蔽,當探查單元探查到故障數據庫恢復正常時,調用解除屏蔽單元解除對故障數據庫的屏蔽。
            [0131]本申請的上述實施例提供的數據庫連接的控制裝置,能夠高效地利用數據庫連接,來滿足海量的數據庫訪問請求。
            [0132]下面參考圖6,其示出了適于用來實現本申請實施例的服務器的計算機系統600的結構示意圖。
            [0133]如圖6所示,計算機系統600包括中央處理單元(CPU)601,其可以根據存儲在只讀存儲器(R0M)602中的程序或者從存儲部分608加載到隨機訪問存儲器(RAM)603中的程序而執行各種適當的動作和處理。在RAM 603中,還存儲有系統600操作所需的各種程序和數據。CPU 60KROM 602以及RAM 603通過總線604彼此相連。輸入/輸出(I/O)接口605也連接至總線 604。
            [0134]以下部件連接至I/O接口605:包括鍵盤、鼠標等的輸入部分606 ;包括諸如陰極射線管(CRT)、液晶顯示器(LCD)等以及揚聲器等的輸出部分607;包括硬盤等的存儲部分608;以及包括諸如LAN卡、調制解調器等的網絡接口卡的通信部分609。通信部分609經由諸如因特網的網絡執行通信處理。驅動器610也根據需要連接至I/O接口 605。可拆卸介質611,諸如磁盤、光盤、磁光盤、半導體存儲器等等,根據需要安裝在驅動器610上,以便于從其上讀出的計算機程序根據需要被安裝入存儲部分608。
            [0135]特別地,根據本公開的實施例,上文參考流程圖描述的過程可以被實現為計算機軟件程序。例如,本公開的實施例包括一種計算機程序產品,其包括有形地包含在機器可讀介質上的計算機程序,所述計算機程序包含用于執行流程圖所示的方法的程序代碼。在這樣的實施例中,該計算機程序可以通過通信部分609從網絡上被下載和安裝,和/或從可拆卸介質611被安裝。在該計算機程序被中央處理單元(CPU)601執行時,執行本申請的方法中限定的上述功能。
            [0136]附圖中的流程圖和框圖,圖示了按照本申請各種實施例的系統、方法和計算機程序產品的可能實現的體系架構、功能和操作。在這點上,流程圖或框圖中的每個方框可以代表一個模塊、程序段、或代碼的一部分,所述模塊、程序段、或代碼的一部分包含一個或多個用于實現規定的邏輯功能的可執行指令。也應當注意,在有些作為替換的實現中,方框中所標注的功能也可以以不同于附圖中所標注的順序發生。例如,兩個接連地表示的方框實際上可以基本并行地執行,它們有時也可以按相反的順序執行,這依所涉及的功能而定。也要注意的是,框圖和/或流程圖中的每個方框、以及框圖和/或流程圖中的方框的組合,可以用執行規定的功能或操作的專用的基于硬件的系統來實現,或者可以用專用硬件與計算機指令的組合來實現。
            [0137]描述于本申請實施例中所涉及到的單元可以通過軟件的方式實現,也可以通過硬件的方式來實現。所描述的單元也可以設置在處理器中,例如,可以描述為:一種處理器包括接收單元、判斷單元、復用單元和建連單元。其中,這些單元的名稱在某種情況下并不構成對該單元本身的限定,例如,接收單元還可以被描述為“接收終端發送的對數據庫的訪問請求的單元”。
            [0138]作為另一方面,本申請還提供了一種非易失性計算機存儲介質,該非易失性計算機存儲介質可以是上述實施例中所述裝置中所包含的非易失性計算機存儲介質;也可以是單獨存在,未裝配入終端中的非易失性計算機存儲介質。上述非易失性計算機存儲介質存儲有一個或者多個程序,當所述一個或者多個程序被一個設備執行時,使得所述設備:接收終端發送的對數據庫的訪問請求;判斷數據庫連接池中是否存在用于所述數據庫的空閑的數據庫連接;響應于所述數據庫連接池中存在用于所述數據庫的空閑的數據庫連接,選擇空閑的數據庫連接進行復用,以便利用復用的數據庫連接來連接所述終端和所述數據庫;響應于所述數據庫連接池中不存在用于所述數據庫的空閑的數據庫連接,建立新的數據庫連接,以便利用所述新的數據庫連接來連接所述終端和所述數據庫。
            [0139]以上描述僅為本申請的較佳實施例以及對所運用技術原理的說明。本領域技術人員應當理解,本申請中所涉及的發明范圍,并不限于上述技術特征的特定組合而成的技術方案,同時也應涵蓋在不脫離所述發明構思的情況下,由上述技術特征或其等同特征進行任意組合而形成的其它技術方案。例如上述特征與本申請中公開的(但不限于)具有類似功能的技術特征進行互相替換而形成的技術方案。
            【主權項】
            1.一種數據庫連接的控制方法,其特征在于,所述方法包括: 接收終端發送的對數據庫的訪問請求; 判斷數據庫連接池中是否存在用于所述數據庫的空閑的數據庫連接; 響應于所述數據庫連接池中存在用于所述數據庫的空閑的數據庫連接,選擇空閑的數據庫連接進行復用,以便利用復用的數據庫連接來連接所述終端和所述數據庫; 響應于所述數據庫連接池中不存在用于所述數據庫的空閑的數據庫連接,建立新的數據庫連接,以便利用所述新的數據庫連接來連接所述終端和所述數據庫。2.根據權利要求1所述的方法,其特征在于,所述響應于所述數據庫連接池中存在用于所述數據庫的空閑的數據庫連接,選擇空閑的數據庫連接進行復用,以便利用復用的數據庫連接來連接所述終端和所述數據庫,包括: 將所述終端和所述復用的數據庫連接之間的連接屬性與所述復用的數據庫連接和所述數據庫之間的連接屬性進行比較,確定二者的差異部分; 向所述數據庫發送包括所述差異部分的屬性修改請求,以供所述數據庫修改所述復用的數據庫連接和所述數據庫之間的連接屬性。3.根據權利要求1所述的方法,其特征在于,所述響應于所述數據庫連接池中不存在用于所述數據庫的空閑的數據庫連接,建立新的數據庫連接,以便利用新的數據庫連接來連接所述終端和所述數據庫,包括: 向所述數據庫發送建立連接請求; 將正在建立連接過程中的數據庫連接加入預設的數組中; 在接收到所述數據庫返回的應答消息時,從所述預設的數組中查找所述應答消息對應的數據庫連接; 利用所述應答消息對應的數據庫連接來連接所述終端和所述數據庫。4.根據權利要求1所述的方法,其特征在于,所述方法還包括: 根據預設的數據庫連接控制規則,控制用于所述數據庫的數據庫連接的數量。5.根據權利要求4所述的方法,其特征在于,所述根據預設的數據庫連接控制規則,控制用于所述數據庫的數據庫連接的數量,包括: 當接收的訪問請求的數量小于或等于第一預設值時,復用空閑的數據庫連接以及釋放超時的數據庫連接; 當接收的訪問請求的數量大于所述第一預設值且小于或等于第二預設值且用于所述數據庫的非空閑的數據庫連接的數量大于預設的數據庫連接池的最大連接數量時,復用空閑的數據庫連接以及釋放空閑的數據庫連接; 當接收的訪問請求的數量大于所述第二預設值時,建立新的數據庫連接、復用空閑的數據庫連接以及釋放空閑的數據庫連接。6.根據權利要求1所述的方法,其特征在于,所述響應于所述數據庫連接池中不存在用于所述數據庫的空閑的數據庫連接,建立新的數據庫連接,以便利用新的數據庫連接來連接所述終端和所述數據庫,包括: 響應于所述數據庫連接池中不存在用于所述數據庫的空閑的數據庫連接,在所述數據庫的各從數據庫中選取一個作為目標數據庫; 建立新的到所述目標數據庫的數據庫連接。7.根據權利要求6所述的方法,其特征在于,所述在所述數據庫的各從數據庫中選取一個作為目標數據庫,包括: 對于每個從數據庫,確定該從數據庫的非空閑的數據庫連接的數量與該從數據庫的權重的比值; 將所述比值的最小值對應的從數據庫作為目標數據庫。8.根據權利要求6所述的方法,其特征在于,所述在所述數據庫的各從數據庫中選取一個作為目標數據庫,包括: 利用隨機算法,在所述數據庫的各從數據庫中選取一個作為目標數據庫。9.根據權利要求6所述的方法,其特征在于,所述方法還包括: 檢測各從數據庫是否發生故障; 屏蔽發生故障的從數據庫; 間隔預設時間探查所述發生故障的從數據庫; 解除屏蔽故障解除的從數據庫。10.一種數據庫連接的控制裝置,其特征在于,所述裝置包括: 接收單元,用于接收終端發送的對數據庫的訪問請求; 判斷單元,用于判斷數據庫連接池中是否存在用于所述數據庫的空閑的數據庫連接; 復用單元,用于響應于所述數據庫連接池中存在用于所述數據庫的空閑的數據庫連接,選擇空閑的數據庫連接進行復用,以便利用復用的數據庫連接來連接所述終端和所述數據庫; 建連單元,用于響應于所述數據庫連接池中不存在用于所述數據庫的空閑的數據庫連接,建立新的數據庫連接,以便利用所述新的數據庫連接來連接所述終端和所述數據庫。11.根據權利要求10所述的裝置,其特征在于,所述復用單元包括: 屬性比較模塊,用于將所述終端和所述復用的數據庫連接之間的連接屬性與所述復用的數據庫連接和所述數據庫之間的連接屬性進行比較,確定二者的差異部分; 屬性修改模塊,用于向所述數據庫發送包括所述差異部分的屬性修改請求,以供所述數據庫修改所述復用的數據庫連接和所述數據庫之間的連接屬性。12.根據權利要求10所述的裝置,其特征在于,所述建連單元包括: 發送模塊,用于向所述數據庫發送建立連接請求; 加入模塊,用于將正在建立連接過程中的數據庫連接加入預設的數組中; 查找模塊,用于在接收到所述數據庫返回的應答消息時,從所述預設的數組中查找所述應答消息對應的數據庫連接; 連接模塊,用于利用所述應答消息對應的數據庫連接來連接所述終端和所述數據庫。13.根據權利要求10所述的裝置,其特征在于,所述裝置還包括: 控制單元,用于根據預設的數據庫連接控制規則,控制用于所述數據庫的數據庫連接的數量。14.根據權利要求13所述的裝置,其特征在于,所述控制單元包括: 第一控制模塊,用于當接收的訪問請求的數量小于或等于第一預設值時,復用空閑的數據庫連接以及釋放超時的數據庫連接; 第二控制模塊,用于當接收的訪問請求的數量大于所述第一預設值且小于或等于第二預設值且用于所述數據庫的非空閑的數據庫連接的數量大于預設的數據庫連接池的最大連接數量時,復用空閑的數據庫連接以及釋放空閑的數據庫連接; 第三控制模塊,用于當接收的訪問請求的數量大于所述第二預設值時,建立新的數據庫連接、復用空閑的數據庫連接以及釋放空閑的數據庫連接。15.根據權利要求10所述的裝置,其特征在于,所述建連單元包括: 選取模塊,用于響應于所述數據庫連接池中不存在用于所述數據庫的空閑的數據庫連接,在所述數據庫的各從數據庫中選取一個作為目標數據庫; 建連模塊,用于建立新的到所述目標數據庫的數據庫連接。16.根據權利要求15所述的裝置,其特征在于,所述選取模塊進一步用于: 對于每個從數據庫,確定該從數據庫的非空閑的數據庫連接的數量與該從數據庫的權重的比值; 將所述比值的最小值對應的從數據庫作為目標數據庫。17.根據權利要求15所述的裝置,其特征在于,所述選取模塊進一步用于: 利用隨機算法,在所述數據庫的各從數據庫中選取一個作為目標數據庫。18.根據權利要求10所述的裝置,其特征在于,所述裝置還包括: 故障檢測單元,用于檢測各從數據庫是否發生故障; 屏蔽單元,用于屏蔽發生故障的從數據庫; 探查單元,用于間隔預設時間探查所述發生故障的從數據庫; 解除屏蔽單元,用于解除屏蔽故障解除的從數據庫。
            【文檔編號】G06F17/30GK105956138SQ201610312417
            【公開日】2016年9月21日
            【申請日】2016年5月11日
            【發明人】王天宇
            【申請人】北京百度網訊科技有限公司
            網友詢問留言 已有0條留言
            • 還沒有人留言評論。精彩留言會獲得點贊!
            1
            婷婷六月激情在线综合激情,亚洲国产大片,久久中文字幕综合婷婷,精品久久久久久中文字幕,亚洲一区二区三区高清不卡,99国产精品热久久久久久夜夜嗨 ,欧美日韩亚洲综合在线一区二区,99国产精品电影,伊人精品线视天天综合,精品伊人久久久大香线蕉欧美
            亚洲精品1区 国产成人一级 91精品国产欧美一区二区 亚洲精品乱码久久久久久下载 国产精品久久久久久久伊一 九色国产 国产精品九九视频 伊人久久成人爱综合网 欧美日韩亚洲区久久综合 欧美日本一道免费一区三区 夜夜爽一区二区三区精品 欧美日韩高清一区二区三区 国产成人av在线 国产精品对白交换绿帽视频 国产视频亚洲 国产在线欧美精品 国产精品综合网 国产日韩精品欧美一区色 国产日韩精品欧美一区喷 欧美日韩在线观看区一二 国产区精品 欧美视频日韩视频 中文字幕天天躁日日躁狠狠躁97 视频一二三区 欧美高清在线精品一区二区不卡 国产精品揄拍一区二区久久 99久久综合狠狠综合久久aⅴ 亚洲乱码视频在线观看 日韩在线第二页 亚洲精品无码专区在线播放 成人亚洲网站www在线观看 欧美三级一区二区 99久久精品免费看国产高清 91麻豆国产在线观看 最新日韩欧美不卡一二三区 成人在线观看不卡 日韩国产在线 在线亚洲精品 亚洲午夜久久久久中文字幕 国产精品成人久久久久久久 精品国产一区二区在线观看 欧美精品国产一区二区三区 中文在线播放 亚洲第一页在线视频 国产午夜精品福利久久 九色国产 精品国产九九 国产永久视频 久久精品人人做人人综合试看 国产一区二区三区免费观看 亚洲精品国产电影 9999热视频 国产精品资源在线 麻豆久久婷婷国产综合五月 国产精品免费一级在线观看 亚洲国产一区二区三区青草影视 中文在线播放 国产成人综合在线 国产在线观看色 国产亚洲三级 国产片一区二区三区 久久99精品久久久久久牛牛影视 亚洲欧美日韩国产 四虎永久免费网站 国产一毛片 国产精品视频在 九九热在线精品 99精品福利视频 色婷婷色99国产综合精品 97成人精品视频在线播放 精品久久久久久中文字幕 亚洲欧美一区二区三区孕妇 亚洲欧美成人网 日韩高清在线二区 国产尤物在线观看 在线不卡一区二区 91网站在线看 韩国精品福利一区二区 欧美日韩国产成人精品 99热精品久久 国产精品免费视频一区 高清视频一区 精品九九久久 欧美日韩在线观看免费 91欧美激情一区二区三区成人 99福利视频 亚洲国产精品91 久热国产在线 精品久久久久久中文字幕女 国产精品久久久久久久久99热 成人自拍视频网 国产精品视频久久久久久 久久影院国产 国产玖玖在线观看 99精品在线免费 亚洲欧美一区二区三区导航 久久久久久久综合 国产欧美日韩精品高清二区综合区 国产精品视频自拍 亚洲一级片免费 久久久久久九九 国产欧美自拍视频 视频一区二区在线观看 欧美日韩一区二区三区久久 中文在线亚洲 伊人热人久久中文字幕 日韩欧美亚洲国产一区二区三区 欧美亚洲国产成人高清在线 欧美日韩国产码高清综合人成 国产性大片免费播放网站 亚洲午夜综合网 91精品久久一区二区三区 国产无套在线播放 国产精品视频网站 国产成人亚洲精品老王 91在线网站 国产视频97 欧美黑人欧美精品刺激 国产一区二区三区免费在线视频 久久久国产精品免费看 99re6久精品国产首页 久久精品91 国产成人一级 国产成人精品曰本亚洲 日本福利在线观看 伊人成综合网 久久综合一本 国产综合久久久久久 久久精品成人免费看 久久福利 91精品国产91久久久久久麻豆 亚洲精品成人在线 亚洲伊人久久精品 欧美日本二区 国产永久视频 国产一区二 一区二区福利 国产一毛片 亚洲精品1区 毛片一区二区三区 伊人久久大香线蕉综合影 国产欧美在线观看一区 亚洲国产欧洲综合997久久 国产一区二区免费视频 国产91精品对白露脸全集观看 久久亚洲国产伦理 欧美成人伊人久久综合网 亚洲性久久久影院 久久99国产精一区二区三区! 91精品国产欧美一区二区 欧美日韩亚洲区久久综合 日韩精品一二三区 久久久夜色精品国产噜噜 国产在线精品福利91香蕉 久久久久久久亚洲精品 97se色综合一区二区二区 91国语精品自产拍在线观看性色 91久久国产综合精品女同我 日韩中文字幕a 国产成人亚洲日本精品 久久国产精品-国产精品 久久国产经典视频 久久国产精品伦理 亚洲第一页在线视频 国产精品久久久久三级 日韩毛片网 久久免费高清视频 麻豆国产在线观看一区二区 91麻豆国产福利在线观看 国产成人精品男人的天堂538 一区二区三区中文字幕 免费在线视频一区 欧美日韩国产成人精品 国产综合网站 国产资源免费观看 亚洲精品亚洲人成在线播放 精品久久久久久中文字幕专区 亚洲人成人毛片无遮挡 国产一起色一起爱 国产香蕉精品视频在 九九热免费观看 日韩亚洲欧美一区 九九热精品在线观看 精品久久久久久中文字幕专区 亚洲欧美自拍偷拍 国产精品每日更新 久久久久国产一级毛片高清板 久久天天躁狠狠躁夜夜中文字幕 久久精品片 日韩在线毛片 国产成人精品本亚洲 国产成人精品一区二区三区 九九热在线观看 国产r级在线观看 国产欧美日韩精品高清二区综合区 韩国电影一区二区 国产精品毛片va一区二区三区 五月婷婷伊人网 久久一区二区三区免费 一本色道久久综合狠狠躁篇 亚洲综合色站 国产尤物在线观看 亚洲一区亚洲二区 免费在线视频一区 欧洲精品视频在线观看 日韩中文字幕a 中文字幕日本在线mv视频精品 91精品在线免费视频 精品国产免费人成在线观看 精品a级片 中文字幕日本在线mv视频精品 日韩在线精品视频 婷婷丁香色 91精品国产高清久久久久 国产成人精品日本亚洲直接 五月综合视频 欧美日韩在线亚洲国产人 精液呈暗黄色 亚洲乱码一区 久久精品中文字幕不卡一二区 亚洲天堂精品在线 激情婷婷综合 国产免费久久精品久久久 国产精品亚洲二区在线 久久免费播放视频 五月婷婷丁香综合 在线亚洲欧美日韩 久久免费精品高清麻豆 精品久久久久久中文字幕 亚洲一区网站 国产精品福利社 日韩中文字幕免费 亚洲综合丝袜 91精品在线播放 国产精品18 亚洲日日夜夜 伊人久久大香线蕉综合影 亚洲精品中文字幕乱码影院 亚洲一区二区黄色 亚洲第一页在线视频 一区二区在线观看视频 国产成人福利精品视频 亚洲高清二区 国内成人免费视频 精品亚洲性xxx久久久 国产精品合集一区二区三区 97av免费视频 国产一起色一起爱 国产区久久 国产资源免费观看 99精品视频免费 国产成人一级 国产精品九九免费视频 欧美91精品久久久久网免费 99热国产免费 久久精品色 98精品国产综合久久 久久精品播放 中文字幕视频免费 国产欧美日韩一区二区三区在线 精品久久蜜桃 国产小视频精品 一本色道久久综合狠狠躁篇 91在线免费观看 亚洲精品区 伊人成综合网 伊人热人久久中文字幕 伊人黄色片 99国产精品热久久久久久夜夜嗨 久久免费精品视频 亚洲一区二区三区高清不卡 久久久久国产一级毛片高清板 国产片一区二区三区 久久狠狠干 99久久婷婷国产综合精品电影 国产99区 国产精品成人久久久久 久久狠狠干 青青国产在线观看 亚洲高清国产拍精品影院 国产精品一区二区av 九九热在线免费视频 伊人久久国产 国产精品久久久久久久久久一区 在线观看免费视频一区 国产精品自在在线午夜区app 国产精品综合色区在线观看 国产毛片久久久久久国产毛片 97国产免费全部免费观看 国产精品每日更新 国产尤物视频在线 九九视频这里只有精品99 一本一道久久a久久精品综合 久久综合给会久久狠狠狠 国产成人精品男人的天堂538 欧美一区二区高清 毛片一区二区三区 国产欧美日韩在线观看一区二区三区 在线国产二区 欧美不卡网 91在线精品中文字幕 在线国产福利 国内精品91久久久久 91亚洲福利 日韩欧美国产中文字幕 91久久精品国产性色也91久久 亚洲性久久久影院 欧美精品1区 国产热re99久久6国产精品 九九热免费观看 国产精品欧美日韩 久久久久国产一级毛片高清板 久久国产经典视频 日韩欧美亚洲国产一区二区三区 欧美亚洲综合另类在线观看 国产精品自在在线午夜区app 97中文字幕在线观看 视频一二三区 精品国产一区在线观看 国产欧美日韩在线一区二区不卡 欧美一区二三区 伊人成人在线观看 国内精品91久久久久 97在线亚洲 国产在线不卡一区 久久久全免费全集一级全黄片 国产精品v欧美精品∨日韩 亚洲毛片网站 在线不卡一区二区 99re热在线视频 久久激情网 国产毛片一区二区三区精品 久久亚洲综合色 中文字幕视频免费 国产视频亚洲 婷婷伊人久久 国产一区二区免费播放 久久99国产精品成人欧美 99国产在线视频 国产成人免费视频精品一区二区 国产不卡一区二区三区免费视 国产码欧美日韩高清综合一区 久久精品国产主播一区二区 国产一区电影 久久精品国产夜色 国产精品国产三级国产 日韩一区二区三区在线 久久97久久97精品免视看 久久国产免费一区二区三区 伊人久久大香线蕉综合电影网 99re6久精品国产首页 久久激情网 亚洲成人高清在线 国产精品网址 国产成人精品男人的天堂538 香蕉国产综合久久猫咪 国产专区中文字幕 91麻豆精品国产高清在线 久久国产经典视频 国产精品成人va在线观看 国产精品爱啪在线线免费观看 日本精品久久久久久久久免费 亚洲综合一区二区三区 久久五月网 精品国产网红福利在线观看 久久综合亚洲伊人色 亚洲国产精品久久久久久网站 在线日韩国产 99国产精品热久久久久久夜夜嗨 国产综合精品在线 国产区福利 精品亚洲综合久久中文字幕 国产制服丝袜在线 毛片在线播放网站 在线观看免费视频一区 国产精品久久久精品三级 亚洲国产电影在线观看 最新日韩欧美不卡一二三区 狠狠综合久久综合鬼色 日本精品1在线区 国产日韩一区二区三区在线播放 欧美日韩精品在线播放 亚洲欧美日韩国产一区二区三区精品 久久综合久久网 婷婷六月激情在线综合激情 亚洲乱码一区 国产专区91 97av视频在线观看 精品久久久久久中文字幕 久久五月视频 国产成人福利精品视频 国产精品网址 中文字幕视频在线 精品一区二区三区免费视频 伊人手机在线视频 亚洲精品中文字幕乱码 国产在线视频www色 色噜噜国产精品视频一区二区 精品亚洲成a人在线观看 国产香蕉尹人综合在线 成人免费一区二区三区在线观看 国产不卡一区二区三区免费视 欧美精品久久天天躁 国产专区中文字幕 久久精品国产免费中文 久久精品国产免费一区 久久无码精品一区二区三区 国产欧美另类久久久精品免费 欧美精品久久天天躁 亚洲精品在线视频 国产视频91在线 91精品福利一区二区三区野战 日韩中文字幕免费 国产精品99一区二区三区 欧美成人高清性色生活 国产精品系列在线观看 亚洲国产福利精品一区二区 国产成人在线小视频 国产精品久久久久免费 99re热在线视频 久久久久久久综合 一区二区国产在线播放 成人国产在线视频 亚洲精品乱码久久久久 欧美日韩一区二区综合 精品久久久久免费极品大片 中文字幕视频二区 激情粉嫩精品国产尤物 国产成人精品一区二区视频 久久精品中文字幕首页 亚洲高清在线 国产精品亚洲一区二区三区 伊人久久艹 中文在线亚洲 国产精品一区二区在线播放 国产精品九九免费视频 亚洲二区在线播放 亚洲狠狠婷婷综合久久久久网站 亚洲欧美日韩网站 日韩成人精品 亚洲国产一区二区三区青草影视 91精品国产福利在线观看 国产精品久久久久久久久99热 国产一区二区精品尤物 久碰香蕉精品视频在线观看 亚洲日日夜夜 在线不卡一区二区 国产午夜亚洲精品 九九热在线视频观看这里只有精品 伊人手机在线视频 91免费国产精品 日韩欧美中字 91精品国产91久久久久 国产全黄三级播放 视频一区二区三区免费观看 国产开裆丝袜高跟在线观看 国产成人欧美 激情综合丝袜美女一区二区 国产成人亚洲综合无 欧美精品一区二区三区免费观看 欧美亚洲国产日韩 日韩亚州 国产欧美日韩精品高清二区综合区 亚洲午夜国产片在线观看 精品久久久久久中文字幕 欧美精品1区 久久伊人久久亚洲综合 亚洲欧美日韩精品 国产成人精品久久亚洲高清不卡 久久福利影视 国产精品99精品久久免费 久久久久免费精品视频 国产日产亚洲精品 亚洲国产午夜电影在线入口 精品无码一区在线观看 午夜国产精品视频 亚洲一级片免费 伊人久久大香线蕉综合影 国产精品久久影院 久碰香蕉精品视频在线观看 www.欧美精品 在线小视频国产 亚洲国产天堂久久综合图区 欧美一区二区三区不卡 日韩美女福利视频 九九精品免视频国产成人 不卡国产00高中生在线视频 亚洲第一页在线视频 欧美日韩在线播放成人 99re视频这里只有精品 国产精品91在线 精品乱码一区二区三区在线 国产区久久 91麻豆精品国产自产在线观看一区 日韩精品成人在线 九九热在线观看 国产精品久久不卡日韩美女 欧美一区二区三区综合色视频 欧美精品免费一区欧美久久优播 国产精品网址 国产专区中文字幕 国产精品欧美亚洲韩国日本久久 日韩美香港a一级毛片 久久精品123 欧美一区二区三区免费看 99r在线视频 亚洲精品国产字幕久久vr 国产综合激情在线亚洲第一页 91免费国产精品 日韩免费小视频 亚洲国产精品综合一区在线 国产亚洲第一伦理第一区 在线亚洲精品 国产精品一区二区制服丝袜 国产在线成人精品 九九精品免视频国产成人 亚洲国产网 欧美日韩亚洲一区二区三区在线观看 在线亚洲精品 欧美一区二区三区高清视频 国产成人精品男人的天堂538 欧美日韩在线观看区一二 亚洲欧美一区二区久久 久久精品中文字幕首页 日本高清www午夜视频 久久精品国产免费 久久999精品 亚洲国产精品欧美综合 88国产精品视频一区二区三区 91久久偷偷做嫩草影院免费看 国产精品夜色视频一区二区 欧美日韩导航 国产成人啪精品午夜在线播放 一区二区视频在线免费观看 99久久精品国产自免费 精液呈暗黄色 久久99国产精品 日本精品久久久久久久久免费 精品国产97在线观看 99re视频这里只有精品 国产视频91在线 999av视频 亚洲美女视频一区二区三区 久久97久久97精品免视看 亚洲国产成人久久三区 99久久亚洲国产高清观看 日韩毛片在线视频 综合激情在线 91福利一区二区在线观看 一区二区视频在线免费观看 激情粉嫩精品国产尤物 国产成人精品曰本亚洲78 国产成人精品本亚洲 国产精品成人免费视频 国产成人啪精品视频免费软件 久久精品国产亚洲妲己影院 国产精品成人久久久久久久 久久大香线蕉综合爱 欧美一区二区三区高清视频 99热国产免费 在线观看欧美国产 91精品视频在线播放 国产精品福利社 欧美精品一区二区三区免费观看 国产一区二区免费视频 国产午夜精品一区二区 精品视频在线观看97 91精品福利久久久 国产一区福利 国产综合激情在线亚洲第一页 国产精品久久久久久久久久久不卡 九色国产 在线日韩国产 黄网在线观看 亚洲一区小说区中文字幕 中文字幕丝袜 日本二区在线观看 日本国产一区在线观看 欧美日韩一区二区三区久久 欧美精品亚洲精品日韩专 国产日产亚洲精品 久久综合九色综合欧美播 亚洲国产欧美无圣光一区 欧美视频区 亚洲乱码视频在线观看 久久无码精品一区二区三区 九九热精品免费视频 久久99精品久久久久久牛牛影视 国产精品成久久久久三级 国产一区福利 午夜国产精品视频 日本二区在线观看 99久久网站 国产亚洲天堂 精品国产一区二区三区不卡 亚洲国产日韩在线一区 国产成人综合在线观看网站 久久免费高清视频 欧美在线导航 午夜精品久久久久久99热7777 欧美久久综合网 国产小视频精品 国产尤物在线观看 亚洲国产精品综合一区在线 欧美一区二区三区不卡视频 欧美黑人欧美精品刺激 日本福利在线观看 久久国产偷 国产手机精品一区二区 国产热re99久久6国产精品 国产高清啪啪 欧美亚洲国产成人高清在线 国产在线第三页 亚洲综合一区二区三区 99r在线视频 99精品久久久久久久婷婷 国产精品乱码免费一区二区 国产在线精品福利91香蕉 国产尤物视频在线 五月婷婷亚洲 中文字幕久久综合伊人 亚洲精品一级毛片 99国产精品电影 在线视频第一页 久久99国产精品成人欧美 国产白白视频在线观看2 成人精品一区二区www 亚洲成人网在线观看 麻豆91在线视频 色综合合久久天天综合绕视看 久久精品国产免费高清 国产不卡一区二区三区免费视 欧美国产中文 99精品欧美 九九在线精品 国产中文字幕在线免费观看 国产一区中文字幕在线观看 国产成人一级 国产精品一区二区制服丝袜 国产一起色一起爱 亚洲精品成人在线 亚洲欧美精品在线 国产欧美自拍视频 99精品久久久久久久婷婷 久99视频 国产热re99久久6国产精品 视频一区亚洲 国产精品视频分类 国产精品成在线观看 99re6久精品国产首页 亚洲在成人网在线看 亚洲国产日韩在线一区 久久国产三级 日韩国产欧美 欧美在线一区二区三区 国产精品美女一级在线观看 成人午夜免费福利视频 亚洲天堂精品在线 91精品国产手机 欧美日韩视频在线播放 狠狠综合久久综合鬼色 九一色视频 青青视频国产 亚洲欧美自拍一区 中文字幕天天躁日日躁狠狠躁97 日韩免费大片 996热视频 伊人成综合网 亚洲天堂欧美 日韩精品亚洲人成在线观看 久久综合给会久久狠狠狠 日韩精品亚洲人成在线观看 日韩国产欧美 亚洲成aⅴ人片在线影院八 亚洲精品1区 99久久精品免费 国产精品高清在线观看 国产精品久久久免费视频 在线亚洲欧美日韩 91在线看视频 国产精品96久久久久久久 欧美日韩国产成人精品 91在线亚洲 热久久亚洲 国产精品美女免费视频观看 日韩在线毛片 亚洲永久免费视频 九九免费在线视频 亚洲一区网站 日本高清二区视频久二区 精品国产美女福利在线 伊人久久艹 国产精品久久久久三级 欧美成人精品第一区二区三区 99久久精品国产自免费 在线观看日韩一区 国产中文字幕一区 成人免费午夜视频 欧美日韩另类在线 久久99国产精品成人欧美 色婷婷中文网 久久天天躁夜夜躁狠狠躁2020 欧美成人伊人久久综合网 国产精品福利资源在线 国产伦精品一区二区三区高清 国产精品亚洲综合色区韩国 亚洲一区欧美日韩 色综合视频 国语自产精品视频在线区 国产高清a 成人国内精品久久久久影 国产在线精品香蕉综合网一区 国产不卡在线看 国产成人精品精品欧美 国产欧美日韩综合精品一区二区三区 韩国电影一区二区 国产在线视频www色 91中文字幕在线一区 国产人成午夜免视频网站 亚洲综合一区二区三区 色综合视频一区二区观看 久久五月网 九九热精品在线观看 国产一区二区三区国产精品 99久热re在线精品996热视频 亚洲国产网 在线视频亚洲一区 日韩字幕一中文在线综合 国产高清一级毛片在线不卡 精品国产色在线 国产高清视频一区二区 精品日本久久久久久久久久 亚洲国产午夜精品乱码 成人免费国产gav视频在线 日韩欧美一区二区在线观看 欧美曰批人成在线观看 韩国电影一区二区 99re这里只有精品6 日韩精品一区二区三区视频 99re6久精品国产首页 亚洲欧美一区二区三区导航 欧美色图一区二区三区 午夜精品视频在线观看 欧美激情在线观看一区二区三区 亚洲热在线 成人国产精品一区二区网站 亚洲一级毛片在线播放 亚洲一区小说区中文字幕 亚洲午夜久久久久影院 国产自产v一区二区三区c 国产精品视频免费 久久调教视频 国产成人91激情在线播放 国产精品欧美亚洲韩国日本久久 久久亚洲日本不卡一区二区 91中文字幕网 成人国产在线视频 国产视频91在线 欧美成人精品第一区二区三区 国产精品福利在线 久久综合九色综合精品 欧美一区二区三区精品 久久国产综合尤物免费观看 久久99青青久久99久久 日韩精品免费 久久国产精品999 91亚洲视频在线观看 国产精品igao视频 色综合区 在线亚洲欧国产精品专区 国产一区二区三区在线观看视频 亚洲精品成人在线 一区二区国产在线播放 中文在线亚洲 亚洲精品第一国产综合野 国产一区二区精品久久 一区二区三区四区精品视频 99热精品久久 中文字幕视频二区 国产成人精品男人的天堂538 99精品影视 美女福利视频一区二区 久久午夜夜伦伦鲁鲁片 综合久久久久久久综合网 国产精品国产欧美综合一区 国产99视频在线观看 国产亚洲女在线精品 婷婷影院在线综合免费视频 国产亚洲3p一区二区三区 91成人爽a毛片一区二区 亚洲一区二区高清 国产欧美亚洲精品第二区首页 欧美日韩导航 亚洲高清二区 欧美激情观看一区二区久久 日韩毛片在线播放 亚洲欧美日韩高清中文在线 亚洲日本在线播放 国产精品一区二区制服丝袜 精品国产一区二区三区不卡 国产不卡在线看 国产欧美网站 四虎永久在线观看视频精品 国产黄色片在线观看 夜夜综合 一本色道久久综合狠狠躁篇 欧美亚洲综合另类在线观看 国产91在线看 伊人久久国产 欧美一区二区在线观看免费网站 国产精品久久久久三级 久久福利 日韩中文字幕a 亚洲午夜久久久久影院 91在线高清视频 国产亚洲一区二区三区啪 久久人精品 国产精品亚洲午夜一区二区三区 综合久久久久久 久久伊人一区二区三区四区 国产综合久久久久久 日韩一区精品视频在线看 国产精品日韩欧美制服 日本精品1在线区 99re视频 无码av免费一区二区三区试看 国产视频1区 日韩欧美中文字幕一区 日本高清中文字幕一区二区三区a 亚洲国产欧美无圣光一区 国产在线视频一区二区三区 欧美国产第一页 在线亚洲欧美日韩 日韩中文字幕第一页 在线不卡一区二区 伊人久久青青 国产精品一区二区在线播放 www.五月婷婷 麻豆久久婷婷国产综合五月 亚洲精品区 久久国产欧美另类久久久 99在线视频免费 伊人久久中文字幕久久cm 久久精品成人免费看 久久这里只有精品首页 88国产精品视频一区二区三区 中文字幕日本在线mv视频精品 国产在线精品成人一区二区三区 伊人精品线视天天综合 亚洲一区二区黄色 国产尤物视频在线 亚洲精品99久久久久中文字幕 国产一区二区三区免费观看 伊人久久大香线蕉综合电影网 国产成人精品区在线观看 日本精品一区二区三区视频 日韩高清在线二区 久久免费播放视频 一区二区成人国产精品 国产精品免费精品自在线观看 亚洲精品视频二区 麻豆国产精品有码在线观看 精品日本一区二区 亚洲欧洲久久 久久中文字幕综合婷婷 中文字幕视频在线 国产成人精品综合在线观看 91精品国产91久久久久福利 精液呈暗黄色 香蕉国产综合久久猫咪 国产专区精品 亚洲精品无码不卡 国产永久视频 亚洲成a人片在线播放观看国产 一区二区国产在线播放 亚洲一区二区黄色 欧美日韩在线观看视频 亚洲精品另类 久久国产综合尤物免费观看 国产一区二区三区国产精品 高清视频一区 国产精品igao视频 国产精品资源在线 久久综合精品国产一区二区三区 www.五月婷婷 精品色综合 99热国产免费 麻豆福利影院 亚洲伊人久久大香线蕉苏妲己 久久电影院久久国产 久久精品伊人 在线日韩理论午夜中文电影 亚洲国产欧洲综合997久久 伊人国产精品 久草国产精品 欧美一区精品二区三区 亚洲成人高清在线 91免费国产精品 日韩精品福利在线 国产一线在线观看 国产不卡在线看 久久99青青久久99久久 亚洲精品亚洲人成在线播放 99久久免费看国产精品 国产日本在线观看 青草国产在线视频 麻豆久久婷婷国产综合五月 国产中文字幕一区 91久久精品国产性色也91久久 国产一区a 国产欧美日韩成人 国产亚洲女在线精品 一区二区美女 中文字幕在线2021一区 在线小视频国产 久久这里只有精品首页 国产在线第三页 欧美日韩中文字幕 在线亚洲+欧美+日本专区 精品国产一区二区三区不卡 久久这里精品 欧美在线va在线播放 精液呈暗黄色 91精品国产手机 91在线免费播放 欧美视频亚洲色图 欧美国产日韩精品 日韩高清不卡在线 精品视频免费观看 欧美日韩一区二区三区四区 国产欧美亚洲精品第二区首页 亚洲韩精品欧美一区二区三区 国产精品视频免费 在线精品小视频 久久午夜夜伦伦鲁鲁片 国产无套在线播放 久热这里只精品99re8久 欧美久久久久 久久香蕉国产线看观看精品蕉 国产成人精品男人的天堂538 亚洲人成网站色7799在线观看 日韩在线第二页 一本色道久久综合狠狠躁篇 国产一区二区三区不卡在线观看 亚洲乱码在线 在线观看欧美国产 久久福利青草精品资源站免费 国产玖玖在线观看 在线亚洲精品 亚洲成aⅴ人在线观看 精品91在线 欧美一区二三区 日韩中文字幕视频在线 日本成人一区二区 日韩免费专区 国内精品在线观看视频 久久国产综合尤物免费观看 国产精品系列在线观看 一本一道久久a久久精品综合 亚洲免费播放 久久精品国产免费 久久人精品 亚洲毛片网站 亚洲成a人一区二区三区 韩国福利一区二区三区高清视频 亚洲精品天堂在线 一区二区三区中文字幕 亚洲国产色婷婷精品综合在线观看 亚洲国产成人久久笫一页 999国产视频 国产精品香港三级在线电影 欧美日韩一区二区三区四区 日韩国产欧美 国产精品99一区二区三区 午夜国产精品理论片久久影院 亚洲精品中文字幕麻豆 亚洲国产高清视频 久久免费手机视频 日韩a在线观看 五月婷婷亚洲 亚洲精品中文字幕麻豆 中文字幕丝袜 www国产精品 亚洲天堂精品在线 亚洲乱码一区 国产日韩欧美三级 久久999精品 伊人热人久久中文字幕 久热国产在线视频 国产欧美日韩在线观看一区二区三区 国产一二三区在线 日韩国产欧美 91精品国产91久久久久 亚洲一区小说区中文字幕 精品一区二区免费视频 国产精品视频免费 国产精品亚洲综合色区韩国 亚洲国产精品成人午夜在线观看 欧美国产日韩精品 中文字幕精品一区二区精品