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

陳皓:由12306.cn談談網站性能技術

開發 前端
12306.cn網站掛了,被全國人民罵了。我這兩天也在思考這個事,我想以這個事來粗略地和大家討論一下網站性能的問題。因為倉促,而且完全基于本人有限的經驗和了解,所以,如果有什么問題還請大家一起討論和指正。

12306.cn網站掛了,被全國人民罵了。我這兩天也在思考這個事,我想以這個事來粗略地和大家討論一下網站性能的問題。因為倉促,而且完全基于本人有限的經驗和了解,所以,如果有什么問題還請大家一起討論和指正。(這又是一篇長文,只討論性能問題,不討論那些UI,用戶體驗,或是是否把支付和購票下單環節分開的功能性的東西)

業務

任何技術都離不開業務需求,所以,要說明性能問題,首先還是想先說說業務問題。

其一,有人可能把這個東西和QQ或是網游相比。但我覺得這兩者是不一樣的,網游和QQ在線或是登錄時訪問的更多的是用戶自己的數據,而訂票系統訪問的是中心的票量數據,這是不一樣的。不要覺得網游或是QQ能行你就以為這是一樣的。網游和QQ 的后端負載相對于電子商務的系統還是簡單。

其二,有人說春節期間訂火車的這個事好像網站的秒殺活動。的確很相似,但是如果你的思考不在表面的話,你會發現這也有些不一樣。火車票這個事,還有很多查詢操作,查時間,查座位,查鋪位,一個車次不 行,又查另一個車次,其伴隨著大量的查詢操作,下單的時候需要對數據庫操作。而秒殺,直接殺就好了。另外,關于秒殺,完全可以做成只接受前N個用戶的請求(完全不操作后端的任何數據, 僅僅只是對用戶的下單操作log),這種業務,只要把各個服務器的時間精確同步了就可以了,無需在當時操作任何數據庫。可以訂單數夠后,停止秒殺,然后批量寫數據庫。火車票這個豈止是秒殺那么簡單。能不能買到票得當時告訴用戶啊。

其三,有人拿這個系統和奧運會的票務系統比較。我覺得還是不一樣。雖然奧運會的票務系統當年也一上線就廢了。但是奧運會用的是抽獎的方式,也就是說不存在先來先得的搶的方式,而且,是事后抽獎,事前只需要收信息,事前不需要保證數據一致性,沒有鎖,很容易水平擴展。

其四,訂票系統應該和電子商務的訂單系統很相似,都是需要對庫存進行:1)占住庫存,2)支付(可選),3)扣除庫存的操作。這個是需要有一致性的檢查的,也就是在并發時需要對數據加鎖的。B2C的電商基本上都會把這個事干成異步的,也就是說,你下的訂單并不是馬上處理的,而是延時處理的,只有成功處理了,系統才會給你一封確認郵件說是訂單成功。我相信有很多朋友都收到認單不成功的郵件。這就是說,數據一致性在并發下是一個瓶頸。

其五,鐵路的票務業務很變態,其采用的是突然放票,而有的票又遠遠不夠大家分,所以,大家才會有搶票這種有中國特色的業務的做法。于是當票放出來的時候,就會有幾百萬人甚至上千萬人殺上去,查詢,下單。幾十分鐘內,一個網站能接受幾千萬的訪問量,這個是很恐怖的事情。據說12306的高峰訪問是10億PV,集中在早8點到10點,每秒PV在高峰時上千萬。

多說幾句:

庫存是B2C的惡夢,庫存管理相當的復雜。不信,你可以問問所有傳統和電務零售業的企業,看看他們管理庫存是多么難的一件事。不然,就不會有那么多人在問凡客的庫存問題了。(你還可以看看《喬布斯傳》,你就知道為什么Tim會接任Apple的CEO了,因為他搞定了蘋果的庫存問題)

對于一個網站來說,瀏覽網頁的高負載很容易搞定,查詢的負載有一定的難度去處理,不過還是可以通過緩存查詢結果來搞定,最難的就是下單的負載。因為要訪問庫存啊,對于下單,基本上是用異步來搞定的。去年雙11節,淘寶的每小時的訂單數大約在60萬左右,京東一天也才能支持40萬(居然比12306還差),亞馬遜5年前一小時可支持70萬訂單量。可見,下訂單的操作并沒有我們相像的那么性能高。

淘寶要比B2C的網站要簡單得多,因為沒有倉庫,所以,不存在像B2C這樣有N個倉庫對同一商品庫存更新和查詢的操作。下單的時候,B2C的 網站要去找一個倉庫,又要離用戶近,又要有庫存,這需要很多計算。試想,你在北京買了一本書,北京的倉庫沒貨了,就要從周邊的倉庫調,那就要去看看沈陽或 是西安的倉庫有沒有貨,如果沒有,又得看看江蘇的倉庫,等等。淘寶的就沒有那么多事了,每個商戶有自己的庫存,庫存分到商戶頭上了,反而有利于性能。

數據一致性才是真正的性能瓶頸。有 人說nginx可以搞定每秒10萬的靜態請求,我不懷疑。但這只是靜態請求,理論值,只要帶寬、I/O夠強,服務器計算能力夠,并支持的并發連接數頂得住10萬TCP鏈接的建立 的話,那沒有問題。但在數據一致性面前,這10萬就完完全全成了一個可望不可及的理論值了。

我說那么多,我只是想從業務上告訴大家,我們需要從業務上真正了解春運鐵路訂票這樣業務的變態之處。

前端性能優化技術

要解決性能的問題,有很多種常用的方法,我在下面列舉一下,我相信12306這個網站使用下面的這些技術會讓其性能有質的飛躍。

一、前端負載均衡

通過DNS的負載均衡器(一般在路由器上根據路由的負載重定向)可以把用戶的訪問均勻地分散在多個Web服務器上。這樣可以減少Web服務器的請求負載。因為http的請求都是短作業,所以,可以通過很簡單的負載均衡器來完成這一功能。最好是有CDN網絡讓用戶連接與其最近的服務器(CDN通常伴隨著分布式存儲)。(關于負載均衡更為詳細的說明見“后端的負載均衡”)

二、減少前端鏈接數

我看了一下12306.cn,打開主頁需要建60多個HTTP連接,車票預訂頁面則有70多個HTTP請求,現在的瀏覽器都是并發請求的。所以,只要有100萬個用戶,就會有6000萬個鏈接,太多了。一個登錄查詢頁面就好了。把js打成一個文件,把css也打成一個文件,把圖標也打成一個文件,用css分塊展示。把鏈接數減到最低。

三、減少網頁大小增加帶寬

這個世界不是哪個公司都敢做圖片服務的,因為圖片太耗帶寬了。現在寬帶時代很難有人能體會到當撥號時代做個圖頁都不敢用圖片的情形(現在在手機端瀏覽也是這個情形)。我查看了一下12306首頁的需要下載的總文件大小大約在900KB左右,如果你訪問過了,瀏覽器會幫你緩存很多,只需下載10K左右的文件。但是我們可以想像一個極端一點的案例,1百萬用戶同時訪問,且都是第一次訪問,每人下載量需要1M,如果需要在120秒內返回,那么就需要,1M * 1M /120 * 8 = 66Gbps的帶寬。很驚人吧。所以,我估計在當天,12306的阻塞基本上應該是網絡帶寬,所以,你可能看到的是沒有響應。后面隨著瀏覽器的緩存幫助12306減少很多帶寬占用,于是負載一下就到了后端,后端的數據處理瓶頸一下就出來。于是你會看到很多http 500之類的錯誤。這說明服務器垮了。

四、前端頁面靜態化

靜態化一些不覺變的頁面和數據,并gzip一下。還有一個并態的方法是把這些靜態頁面放在/dev/shm下,這個目錄就是內存,直接從內存中把文件讀出來返回,這樣可以減少昂貴的磁盤I/O。

五、優化查詢

很多人查詢都是在查一樣的,完全可以用反向代理合并這些并發的相同的查詢。這樣的技術主要用查詢結果緩存來實現,第一次查詢走數據庫獲得數據,并把數據放到緩存,后面的查詢統統直接訪問高速緩存。為每個查詢做Hash,使用NoSQL的技術可以完成這個優化。(這個技術也可以用做靜態頁面)

對于火車票量的查詢,個人覺得不要顯示數字,就顯示一個“有”或“無”就好了,這樣可以大大簡化系統復雜度,并提升性能。

六、緩存的問題

緩存可以用來緩存動態頁面,也可以用來緩存查詢的數據。緩存通常有那么幾個問題:

1)緩存的更新。也叫緩存和數據庫的同步。有這么幾種方法,一是緩存time out,讓緩存失效,重查,二是,由后端通知更新,一量后端發生變化,通知前端更新。前者實現起來比較簡單,但實時性不高,后者實現起來比較復雜 ,但實時性高。

2)緩存的換頁。內存可能不夠,所以,需要把一些不活躍的數據換出內存,這個和操作系統的內存換頁和交換內存很相似。FIFO、LRU、LFU都是比較經典的換頁算法。相關內容參看Wikipeida的緩存算法。

3)緩存的重建和持久化。緩存在內存,系統總要維護,所以,緩存就會丟失,如果緩存沒了,就需要重建,如果數據量很大,緩存重建的過程會很慢,這會影響生產環境,所以,緩存的持久化也是需要考慮的。

諸多強大的NoSQL都很好支持了上述三大緩存的問題。

后端性能優化技術

前面討論了前端性能的優化技術,于是前端可能就不是瓶頸問題了。那么性能問題就會到后端數據上來了。下面說幾個后端常見的性能優化技術。

一、數據冗余

關于數據冗余,也就是說,把我們的數據庫的數據冗余處理,也就是減少表連接這樣的開銷比較大的操作,但這樣會犧牲數據的一致性。風險比較大。很多人把NoSQL用做數據,快是快了,因為數據冗余了,但這對數據一致性有大的風險。這需要根據不同的業務進行分析和處理。(注意:用關系型數據庫很容易移植到NoSQL上,但是反過來從NoSQL到關系型就難了)

二、數據鏡像

幾乎所有主流的數據庫都支持鏡像,也就是replication。數據庫的鏡像帶來的好處就是可以做負載均衡。把一臺數據庫的負載均分到多臺上,同時又保證了數據一致性(Oracle的SCN)。最重要的是,這樣還可以有高可用性,一臺廢了,還有另一臺在服務。

數據鏡像的數據一致性可能是個復雜的問題,所以我們要在單條數據上進行數據分區,也就是說,把一個暢銷商品的庫存均分到不同的服務器上,如,一個暢銷商品有1萬的庫存,我們可以設置10臺服務器,每臺服務器上有1000個庫存,這就好像B2C的倉庫一樣。

三、數據分區

數據鏡像不能解決的一個問題就是數據表里的記錄太多,導致數據庫操作太慢。所以,把數據分區。數據分區有很多種做法,一般來說有下面這幾種:

1)把數據把某種邏輯來分類。比如火車票的訂票系統可以按各鐵路局來分,可按各種車型分,可以按始發站分,可以按目的地分……,反正就是把一張表拆成多張有一樣的字段但是不同種類的表,這樣,這些表就可以存在不同的機器上以達到分擔負載的目的。

2)把數據按字段分,也就是堅著分表。比如把一些不經常改的數據放在一個表里,經常改的數據放在另外多個表里。把一張表變成1對1的關系,這樣,你可以減少表的字段個數,同樣可以提升一定的性能。另外,字段多會造成一條記錄的存儲會被放到不同的頁表里,這對于讀寫性能都有問題。但這樣一來會有很多復雜的控制。

3)平均分表。因為第一種方法是并不一定平均分均,可能某個種類的數據還是很多。所以,也有采用平均分配的方式,通過主鍵ID的范圍來分表。

4)同一數據分區。這個在上面數據鏡像提過。也就是把同一商品的庫存值分到不同的服務器上,比如有10000個庫存,可以分到10臺服務器上,一臺上有1000個庫存。然后負載均衡。

這三種分區都有好有壞。最常用的還是第一種。數據一旦分區,你就需要有一個或是多個調度來讓你的前端程序知道去哪里找數據。把火車票的數據分區,并放在各個省市,會對12306這個系統有非常有意義的質的性能的提高。

四、后端系統負載均衡

前面說了數據分區,數據分區可以在一定程度上減輕負載,但是無法減輕熱銷商品的負載,對于火車票來說,可以認為是大城市的某些主干線上的車票。這就需要使用數據鏡像來減輕負載。使用數據鏡像,你必然要使用負載均衡,在后端,我們可能很難使用像路由器上的負載均衡器,因為那是均衡流量的,因為流量并不代表服務器的繁忙程序。因此,我們需要一個任務分配系統,其還能監控各個服務器的負載情況。

任務分配服務器有一些難點:

負載情況比較復雜。什么叫忙?是CPU高?還是磁盤I/O高?還是內存使用高?還是并發高?你可能需要全部都要考慮。這些信息要發送給那個任務分配器上,由任務分配器挑選一臺負載最輕的服務器來處理。

任務分配服務器上需要對任務隊列,不能丟任務啊,所以還需要持久化。并且可以以批量的方式把任務分配給計算服務器。

任務分配服務器死了怎么辦?這里需要一些如Live-Standby或是failover等高可用性的技術。我們還需要注意那些持久化了的任務的隊列如果轉移到別的服務器上的問題。

我看到有很多系統都用靜態的方式來分配,有的用hash,有的就簡單地輪流分析。這些都不夠好,一個是不能完美地負載均衡,另一個靜態的方法的致命缺陷是,如果有一臺計算服務器死機了,或是我們需要加入新的服務器,對于我們的分配器來說,都需要知道。

還有一種方法是使用搶占式的方式進行負載均衡,由下游的計算服務器去任務服務器上拿任務。讓這些計算服務器自己決定自己是否要任務。這樣的好處是可以簡化系統的復雜度,而且還可以任意實時地減少或增加計算服務器。但是唯一不好的就是,如果有一些任務只能在某種服務器上處理,這可能會引入一些復雜度。不過總體來說,這種方法可能是比較好的負載均衡。

五、異步、 throttle 和 批量處理

異步、throttle(節流閥) 和批量處理都需要對并發請求數做隊列處理的。

異步在業務上一般來說就是收集請求,然后延時處理。在技術上就是可以把各個處理程序做成并行的,也就可以水平擴展了。但是異步的技術問題大概有這些,a)被調用方的結果返回,會涉及進程線程間通信的問題。b)如果程序需要回滾,回滾會有點復雜。c)異步通常都會伴隨多線程多進程,并發的控制也相對麻煩一些。d)很多異步系統都用消息機制,消息的丟失和亂序也會是比較復雜的問題。

throttle 技術其實并不提升性能,這個技術主要是防止系統被超過自己不能處理的流量給搞垮了,這其實是個保護機制。使用throttle技術一般來說是對于一些自己無法控制的系統,比如,和你網站對接的銀行系統。

批量處理的技術,是把一堆基本相同的請求批量處理。比如,大家同時購買同一個商品,沒有必要你買一個我就寫一次數據庫,完全可以收集到一定數量的請求,一次操作。這個技術可以用作很多方面。比如節省網絡帶寬,我們都知道網絡上的MTU(最大傳輸單元),以態網是1500字節,光纖可以達到4000多個字節,如果你的一個網絡包沒有放滿這個MTU,那就是在浪費網絡帶寬,因為網卡的驅動程序只有一塊一塊地讀效率才會高。因此,網絡發包時,我們需要收集到足夠多的信息后再做網絡I/O,這也是一種批量處理的方式。批量處理的敵人是流量低,所以,批量處理的系統一般都會設置上兩個閥值,一個是作業量,另一個是timeout,只要有一個條件滿足,就會開始提交處理。

所以,只要是異步,一般都會有throttle機制,一般都會有隊列來排隊,有隊列,就會有持久化,而系統一般都會使用批量的方式來處理。

云風同學設計的“排隊系統” 就是這個技術。這和電子商務的訂單系統很相似,就是說,我的系統收到了你的購票下單請求,但是我還沒有真正處理,我的系統會跟據我自己的處理能力來throttle住這些大量的請求,并一點一點地處理。一旦處理完成,我就可以發郵件或短信告訴用戶你來可以真正購票了。

在這里,我想通過業務和用戶需求方面討論一下云風同學的這個排隊系統,因為其從技術上看似解決了這個問題,但是從業務和用戶需求上來說可能還是有一些值得我們去深入思考的地方:

1)隊列的DoS攻擊。首先,我們思考一下,這個隊是個單純地排隊的嗎?這樣做還不夠好,因為這樣我們不能杜絕黃牛,而且單純的ticket_id很容易發生DoS攻擊,比如,我發起N個 ticket_id,進入購票流程后,我不買,我就耗你半個小時,很容易我就可以讓想買票的人幾天都買不到票。有人說,用戶應該要用身份證來排隊, 這樣在購買里就必需要用這個身份證來買,但這也還不能杜絕黃牛排隊或是號販子。因為他們可以注冊N個帳號來排隊,但就是不買。黃牛這些人這個時候只需要干一個事,把網站搞得正常不能訪問,讓用戶只能通過他們來買。

2)對列的一致性?對這個隊列的操作是不是需要鎖?只要有鎖,性能一定上不去。試想,100萬個人同時要求你來分配位置號,這個隊列將會成為性能瓶頸。你一定沒有數據庫實現得性能好,所以,可能比現在還差

3)隊列的等待時間。購票時間半小時夠不夠?多不多?要是那時用戶正好不能上網呢?如果時間短了,用戶也會抱怨,如果時間長了,后面在排隊的那些人也會抱怨。這個方法可能在實際操作上會有很多問題。另外,半個小時太長了,這完全不現實,我們用15分鐘來舉例:有1千萬用戶,每一個時刻只能放進去1萬個,這1萬個用戶需要15分鐘完成所有操作,那么,這1千萬用戶全部處理完,需要1000*15m = 250小時,10天半,火車早開了。(我并亂說,根據鐵道部專家的說明:這幾天,平均一天下單100萬,所以,處理1000萬的用戶需要十天。這個計算可能有點簡單了,我只是想說,在這樣低負載的系統下用排隊可能都不能解決問題)

4)隊列的分分式。這個排隊系統只有一個隊列好嗎?還不足夠好。因為,如果你放進去的可以購票的人如果在買同一個車次的同樣的類型的票(比如某動車臥鋪),還是等于在搶票,也就是說系統的負載還是會有可能集中到其中某臺服務器上。因此,最好的方法是根據用戶的需求——提供出發地和目的地,來對用戶進行排隊。而這樣一來,隊列也就可以是多個,只要是多個隊列,就可以水平擴展了。

我覺得完全可以向網上購物學習。在排隊(下單)的時候,收集好用戶的信息和想要買的票,并允許用戶設置購票的優先級,比如,A車次臥鋪買 不到就買 B車次的臥鋪,如果還買不到就買硬座等等,然后用戶把所需的錢先充值好,接下來就是系統完全自動地異步處理訂單。成功不成功都發短信或郵件通知用戶。這樣,系統不僅可以省去那半個小時的用戶交互時間,自動化加快處理,還可以合并相同購票請求的人,進行批處理(減少數據庫的操作次數)。這種方法最妙的事是可以知道這些排隊用戶的需求,不但可以優化用戶的隊列,把用戶分布到不同的隊列,還可以像亞馬遜的心愿單一樣,讓鐵道部做車次統籌安排和調整(最后,排隊系統(下單系統)還是要保存在數據庫里的或做持久化,不能只放在內存中,不然機器一down,就等著被罵吧)。

小結

寫了那么多,我小結一下:

0)無論你怎么設計,你的系統一定要能容易地水平擴展。也就是說,你的整個數據流中,所有的環節都要能夠水平擴展。這樣,當你的系統有性能問題時,“加3倍的服務器”才不會被人譏笑。

1)上述的技術不是一朝一夕能搞定的,沒有長期的積累,基本無望。我們可以看到,無論你用哪種都會引發一些復雜性。

2)集中式的賣票很難搞定,使用上述的技術可以讓訂票系統能有幾佰倍的性能提升。而在各個省市建分站,分開賣票,是能讓現有系統性能有質的提升的最好方法。

3)春運前夕搶票且票量供遠小于求這種業務模式是相當變態的,讓幾千萬甚至上億的人在某個早晨的8點鐘同時登錄同時搶票的這種業務模式是變態中的變態。業務形態的變態決定了無論他們怎么辦干一定會被罵。

4)為了那么一兩個星期而搞那么大的系統,而其它時間都在閑著,有些可惜了,這也就是鐵路才干得出來這樣的事了。

原文:http://coolshell.cn/articles/6470.html 

作者:陳皓

【編輯推薦】

  1. 技術分析12306網上訂票真的就這么爛嗎?
  2. 腳本幫你從12306反復登錄和查詢中徹底解放
  3. 業內稱系統架構規劃問題為12306癱瘓主因
  4. 51CTO新聞回顧:火車訂票系統愁煞人
  5. 鐵道部訂票網站流量飆升 躋身第11大電商網站
責任編輯:陳貽新 來源: 酷客
相關推薦

2013-11-07 09:26:44

2012-01-06 10:19:27

12306.cn建議

2012-06-21 09:43:45

2014-02-24 10:45:00

2012-06-20 11:05:47

性能調優攻略

2013-07-25 10:28:46

加班工作效率職場

2012-07-16 01:20:09

代碼效率

2014-06-12 08:53:01

團隊團隊效率

2012-01-10 10:23:20

鐵路網絡接口

2012-02-02 10:35:12

C++

2012-09-03 13:51:43

測試軟件測試單元測試

2012-01-06 10:16:14

訂票網站11大電商網站

2012-07-25 10:16:59

2012-04-27 10:24:07

2012-10-25 17:56:43

陳皓云計算架構師大會

2012-10-15 16:13:29

2012年度IT博客大陳皓

2012-10-07 15:11:48

釣魚網站假冒網站360安全中心

2014-01-13 10:40:16

2014-04-15 10:13:01

2012-08-02 09:36:58

fork面試題
點贊
收藏

51CTO技術棧公眾號

激情久久五月天| 精品一区免费| 亚洲18女电影在线观看| 国产综合欧美在线看| 亚洲欧美偷拍一区| 欧美hd在线| 精品国产乱码久久| 午夜免费高清视频| 久草在线资源站资源站| 久久人人爽人人爽| 亚洲a∨日韩av高清在线观看| 韩国三级在线看| 亚洲啊v在线| 亚洲欧美影音先锋| 欧美性大战久久久久| 国产99久一区二区三区a片 | 色综合视频二区偷拍在线| 国产又大又黑又粗| 美女精品网站| 久久久久久久久亚洲| 精品国产无码在线观看| 日韩有吗在线观看| 欧美性高清videossexo| 国产午夜福利在线播放| av毛片在线免费| 欧美国产综合色视频| 国产一区二区精品在线| 99精品国产99久久久久久97| 日韩av电影免费观看高清完整版| 国产一区av在线| 尤物网站在线观看| 日韩中文字幕无砖| 欧美久久免费观看| 992kp快乐看片永久免费网址| 番号集在线观看| 成人一区二区三区在线观看| 成人黄色中文字幕| 欧美三级网站在线观看| 日韩视频不卡| 久热爱精品视频线路一| www.黄色com| 免费精品国产| 日韩成人av网址| 一级日本黄色片| av成人在线播放| 黑人巨大精品欧美一区二区免费| 六月婷婷久久| 亚洲av无码国产综合专区| 美女免费视频一区二区| 日本欧美一二三区| 日韩av电影网址| 欧美理论在线| 美日韩丰满少妇在线观看| 日本一区二区在线观看视频| 性欧美video另类hd尤物| 日本精品视频一区二区| 欧美色图另类小说| 性直播体位视频在线观看| 亚洲男女一区二区三区| 亚洲一区免费看| 91电影在线播放| 亚洲国产精品激情在线观看| 久久久久国产精品视频| 色婷婷视频在线| 高清不卡在线观看| 99re6热在线精品视频播放速度| 精品无码黑人又粗又大又长| 五月天久久久| 日韩在线观看免费| 精品无码一区二区三区蜜臀| 色天天久久综合婷婷女18| 国产一区二区三区久久精品| 一卡二卡三卡四卡| 午夜精品福利影院| 日韩国产欧美精品在线| 精品中文字幕在线播放| 亚洲成人一品| 亚洲性视频网址| 欧美老女人性生活视频| 97精品一区二区| 日韩性xxxx爱| 青青青在线免费观看| 欧美淫片网站| 国内精品久久久久久久| 黄色片视频网站| 亚洲资源av| 国产精品免费小视频| 在线观看免费观看在线| 激情五月婷婷综合| 99国内精品久久久久久久软件| 秋霞av一区二区三区| 男女男精品视频| 成人a级免费视频| 99精品人妻无码专区在线视频区| 亚洲久色影视| 欧美在线视频播放| 一区二区视频网站| 国产精品自在在线| 国产日韩一区欧美| 欧洲毛片在线| 国产精品久久久久久久岛一牛影视 | 91亚洲va在线va天堂va国| 99国产成人精品| av激情亚洲男人天堂| 日韩国产在线一区| av网站大全在线| 欧美视频13p| 色婷婷综合网站| 亚洲三区欧美一区国产二区| 日韩高清a**址| 日韩视频在线观看免费视频| 中文无码久久精品| 欧洲日韩成人av| 国产视频一二三四区| 91一区二区三区在线观看| 亚洲视频导航| 极品在线视频| 欧美一区二区三区免费视频| 精品无码国产一区二区三区51安| 国产精品高清一区二区| 亚洲高清久久网| 四虎影视一区二区| 欧美成人一区二免费视频软件| 日韩视频亚洲视频| 国产午夜精品一区二区理论影院| 欧美日本精品| 国产精品电影网站| 无码精品人妻一区二区| 日韩理论片在线| 国产天堂在线播放| 精品自拍偷拍| 久久久国产精品亚洲一区| 国产九色在线播放九色| 国产精品亚洲第一区在线暖暖韩国| 91九色视频导航| 国产在线一在线二| 天天综合天天做天天综合| www.五月天色| 精品久久影院| 91sao在线观看国产| 国产后入清纯学生妹| 国产精品狼人久久影院观看方式| 日韩妆和欧美的一区二区| 中文在线字幕免费观看| 色婷婷精品大视频在线蜜桃视频 | 欧美xxxx少妇| 5566中文字幕一区二区电影| 欧美a在线播放| 日本女优在线视频一区二区| 国外成人在线视频网站| 国产网红在线观看| 日韩欧美第一区| 欧美黄片一区二区三区| 国产一本一道久久香蕉| 中文精品一区二区三区| 欧美激情三区| 精品国产区一区二区三区在线观看| 色在线观看视频| 久久精品久久99精品久久| 日韩精品欧美专区| 亚洲日本网址| 伊人久久免费视频| 波多野结衣在线电影| 91亚洲国产成人精品一区二三| 日本一区免费在线观看| 一个人看的www视频在线免费观看| 欧美午夜精品理论片a级按摩| 中文字幕免费高清在线| 青青一区二区三区| 国产精品视频网| 国产黄色片在线播放| 欧美主播一区二区三区美女| 亚洲天堂视频一区| 美女网站一区二区| 三级在线免费观看| 日韩精品成人在线观看| 欧美极品少妇全裸体| 空姐吹箫视频大全| 精品欧美aⅴ在线网站| 人妻激情偷乱频一区二区三区| 精品大片一区二区| 国产精品伦子伦免费视频| 午夜视频在线免费观看| 欧美视频一区二| 欧美成人国产精品高潮| 国产成人免费视频网站高清观看视频 | 精品无码av在线| 国产成人精品三级| 日本香蕉视频在线观看| 欧美成a人免费观看久久| 日本伊人精品一区二区三区介绍| 国产免费高清视频| 亚洲女同一区二区| 亚洲精品乱码久久久久久蜜桃欧美| 欧美3p视频| av成人综合网| 欧美xxxx免费虐| 一本色道久久综合亚洲精品小说| 亚洲欧美激情四射在线日| 在线观看污污网站| 亚洲人成亚洲人成在线观看图片| 粗暴91大变态调教| 欧美好骚综合网| 97人人干人人| 日本不良网站在线观看| 亚洲精品永久免费精品| 91极品身材尤物theporn| 国产精品国产自产拍高清av王其| 久久久噜噜噜www成人网| 精品国产乱码久久久久久果冻传媒| 久久久久久av| 国产一区电影| 日韩精品在线一区| 无码人妻丰满熟妇精品区| 亚洲一区二区免费视频| 日本美女bbw| jvid福利写真一区二区三区| 少妇性l交大片| 欧美三级网页| 亚洲bbw性色大片| 国产一区二区三区亚洲| 国产欧美婷婷中文| 一本大道色婷婷在线| www亚洲欧美| 国产一级在线| 亚洲国产精品99| 国产又粗又长又黄| 在线精品视频一区二区三四| 久久久精品99| 国产精品不卡在线观看| free性中国hd国语露脸| 国产乱码精品一区二区三区av| 亚洲一区二区不卡视频| 一区二区三区在线资源| 国产精品视频自在线| 羞羞影院欧美| 韩剧1988免费观看全集| 超碰免费在线播放| 中文字幕日韩欧美| 狠狠v欧美ⅴ日韩v亚洲v大胸| 日韩欧美一区视频| 精品无码人妻一区二区三区 | 一本一道久久a久久综合蜜桃| 成人综合久久| 欧美黑人xxxxx| 国产精品视屏| 高清不卡日本v二区在线| 亚洲免费资源| 国产精品视频免费观看www| a日韩av网址| 91成人国产在线观看| 青青草视频在线免费直播| 久久精品一偷一偷国产| 91亚洲欧美| 一道本无吗dⅴd在线播放一区 | 欧美性生活大片免费观看网址| 日韩精品电影一区二区| 91麻豆精东视频| 亚洲国产果冻传媒av在线观看| 丝袜诱惑亚洲看片| 国产a级一级片| 伊人精品视频| 欧美精品自拍视频| 亚洲精品资源| 一卡二卡三卡视频| 国产精品久久久久久久久久妞妞| 亚洲va韩国va欧美va精四季| 国产99久久| 日韩少妇中文字幕| 成人免费av| 亚洲一区二区四区| 亚洲国产一区二区在线观看| 中文字幕日韩精品一区二区| 色综合久久一区二区三区| 久久66热这里只有精品| 精品国产91| 亚洲色图自拍| 欧美视频在线观看| 国产一区二区四区| 国产欧美精品| 国产一级特黄a大片免费| 美女视频黄频大全不卡视频在线播放| 国产在线播放观看| 国产精品综合| 国产成人无码精品久久久性色| 婷婷亚洲综合| 国产又粗又长又爽视频| 亚洲视频狠狠| 日本在线视频www| 青青草91视频| 日本特黄在线观看| 99精品桃花视频在线观看| 99久久久无码国产精品性| 国产精品久久777777| 日本美女黄色一级片| 亚洲妇女屁股眼交7| 亚洲欧美偷拍一区| 欧美日韩激情在线| 亚洲黄色在线观看视频| 亚洲毛片在线看| 麻豆网站在线免费观看| 久久久久久中文| 成人视屏在线观看| 91久久久久久久久| 欧美日韩一区二区三区不卡视频| 91九色在线免费视频| 青青草久久爱| 中文字幕一区二区三区四区五区| 神马影视一区二区| aaa免费在线观看| 国产亚洲精品v| 欧美日韩中文不卡| 成人晚上爱看视频| 99国产精品免费| 天天爽夜夜爽夜夜爽精品视频| 美女视频黄免费| 一本大道综合伊人精品热热| 亚洲AV无码乱码国产精品牛牛| 欧美日韩国产片| 天天摸夜夜添狠狠添婷婷| 色噜噜狠狠色综合网图区| 国产丝袜精品丝袜| 国产精品视频在线观看| 国产精品玖玖玖在线资源| 涩涩日韩在线| 亚洲清纯自拍| 亚洲视频 中文字幕| 亚洲欧洲成人精品av97| 国产无遮挡呻吟娇喘视频| 欧美一区二区三区视频免费播放| 99草在线视频| 一夜七次郎国产精品亚洲| jizz一区二区三区| 91网在线免费观看| 国产精品久久久久久久免费观看| 制服丝袜综合日韩欧美| 新67194成人永久网站| 亚洲最大视频网| 自拍偷拍国产精品| 这里只有精品999| 亚洲美女av电影| 日本不卡影院| 国产高清在线精品一区二区三区| 136福利精品导航| av动漫免费观看| 日韩国产精品91| 国产美女免费无遮挡| 精品久久久久人成| 亚洲精品97久久中文字幕| 一二美女精品欧洲| 男人天堂久久| 天天久久人人| 日韩av网站在线观看| 美女100%无挡| 在线免费观看成人短视频| 你懂得网站在线| 国产精品第1页| 精品国产乱码| 欧美午夜aaaaaa免费视频| 国产欧美日韩激情| 亚洲精品男人的天堂| 日韩不卡中文字幕| 成人黄色动漫| 欧美在线日韩精品| 日欧美一区二区| 亚洲第一综合网| 欧美在线免费播放| 国产美女视频一区二区三区| 国产成人精品综合久久久| 成人高清av| 日韩在线一区视频| 亚洲视频一二三区| 国产美女www爽爽爽视频| 欧美成人性色生活仑片| 911亚洲精品| 国产黄色激情视频| 久久久久久亚洲综合| 久久精品视频2| 在线视频免费一区二区| 少妇高潮一区二区三区99| 一区二区精品免费视频| 国产老妇另类xxxxx| 欧美成人精品一区二区免费看片| 天天综合色天天| 黄色小视频在线免费观看| 国产成人精品一区二区在线| 欧美理论视频| www.cao超碰| 亚洲一区二区在线免费观看视频| 最近中文字幕免费在线观看| 精品国产一区二区三区四区在线观看| 僵尸再翻生在线观看免费国语| 亚洲a∨日韩av高清在线观看| 视频一区中文| 国产毛片久久久久久| 亚洲欧美激情视频在线观看一区二区三区| 亚洲综合成人av| 蜜臀久久99精品久久久无需会员 | 992tv成人免费影院| 日韩高清一级|