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

經典系統架構設計案例分析:票務系統深度解析

開發 架構
持有該預訂的服務器向所有持有該場次等待用戶的服務器發送消息,以便這些服務器可以使所有需要的座位數多于可用座位數的等待用戶過期。

隨著信息技術和互聯網的發展,票務系統也在不斷升級,比如實現了移動支付、電子票據、實時數據分析等先進功能。此外,許多票務系統還引入了人工智能和大數據技術,用于精準營銷、個性化推薦和風險管理。

然而,票務系統也存在一些挑戰,如如何保護用戶隱私,如何防止票務欺詐,以及如何提供更好的用戶體驗等。因此,票務系統的開發和運營需要考慮到這些問題,并持續改進和升級。

項目簡介:大麥網是中國的領先在線票務平臺,提供多樣化的活動票務,如音樂會、戲劇和體育賽事等。主要功能包括活動搜索、在線購票、電子票務、實時座位選擇、退換票服務以及支付接口。其智能推薦系統可以根據用戶興趣推送相關活動,為用戶提供方便、快捷的一站式購票體驗。

類似的產品有:貓眼娛樂、永樂票務、bookmyshow.com、ticketmaster.com

難度級別:困難

1、什么是在線電影票預訂系統

電影票預訂系統為其客戶提供在線購買影院座位的能力。電子票務系統允許客戶瀏覽當前正在上映的電影,并在任何地方任何時候預訂座位。

2、系統的需求和目標

我們的票務預訂服務應滿足以下需求:

功能需求

  1. 我們的票務預訂服務應能列出其聯盟影院所在的不同城市。
  2. 用戶選擇城市后,服務應顯示該特定城市已經上映的電影。
  3. 用戶選擇電影后,服務應顯示正在放映該電影的影院及其可用的放映時間。
  4. 用戶應能選擇在特定影院的一場放映并預訂他們的票。
  5. 服務應能向用戶展示影院大廳的座位布局。用戶應能根據他們的喜好選擇多個座位。
  6. 用戶應能從已預訂的座位中區分出可用的座位。
  7. 用戶應能在付款以完成預訂之前,將座位保留五分鐘。
  8. 如果有可能座位會變得可用,例如,當其他用戶的保留到期時,用戶應能等待。
  9. 等待的客戶應以公平的、先到先得的方式服務。

非功能性需求

  • 系統需要具有高度并發性。在任何特定時間點,都會有多個對同一座位的預訂請求。服務應能優雅且公平地處理這一情況。
  • 服務的核心是票務預訂,也就意味著涉及到財務交易。這意味著系統應具有安全性,并且數據庫應遵守ACID(原子性、一致性、隔離性、持久性)原則。

3、一些設計考慮

  • 為了簡便,我們假設我們的服務不需要任何用戶認證。
  • 系統將不處理部分票務訂單。用戶要么獲得他們想要的所有票,要么一張也得不到。 系統必須公平。
  • 為了阻止系統被濫用,我們可以限制用戶一次預訂不超過十個座位。
  • 我們可以假設在熱門/備受期待的電影上映時,流量會激增,座位會很快被預訂完。
  • 系統應具有可擴展性和高可用性,以應對流量激增。

4、容量估計

流量估計:我們假設我們的服務每月有30億次頁面瀏覽,每月售出1000萬張電影票。

存儲估計:假設我們有500個城市,平均每個城市有10家影院。如果每個影院有2000個座位,平均每天有兩場放映。

我們假設每個座位預訂需要50字節(ID、NumberOfSeats、ShowID、MovieID、SeatNumbers、SeatStatus、Timestamp 等)存儲在數據庫中。我們還需要存儲關于電影和影院的信息;我們假設它會需要50字節。所以,要存儲所有城市的所有影院的所有放映的所有數據一天:

500個城市 * 10家影院 * 2000個座位 * 2場放映 * (50+50) 字節 = 2GB / 天

要存儲五年的這些數據,我們大約需要3.6TB。

5、系統API

我們可以有SOAP或REST API來公開我們服務的功能。以下可能是搜索電影放映和預訂座位的API的定義。

SearchMovies(api_dev_key, keyword, city, lat_long, radius, start_datetime, end_datetime, postal_code, includeSpellcheck, results_per_page, sorting_order)

參數

  • api_dev_key (string):注冊賬戶的API開發者密鑰。這將用于包括限制用戶基于其分配的配額等在內的事情。
  • keyword (string):要搜索的關鍵詞。
  • city (string):用于篩選電影的城市。
  • lat_long (string):用于篩選的緯度和經度。
  • radius (number):我們想要搜索活動的區域的半徑。
  • start_datetime (string):用開始日期時間篩選電影。
  • end_datetime (string):用結束日期時間篩選電影。
  • postal_code (string):用郵政編碼/郵編篩選電影。
  • includeSpellcheck (Enum: "yes" or "no"):是否在響應中包含拼寫檢查建議。
  • results_per_page (number):每頁返回的結果數。最大為30。
  • sorting_order (string):搜索結果的排序順序。一些可允許的值:'name,asc','name,desc','date,asc','date,desc','distance,asc','name,date,asc','name,date,desc','date,name,asc','date,name,desc'。

返回:(JSON) 以下是電影及其放映的示例列表:

{
    "MovieID": 1,
    "ShowID": 1,
    "Title": "Cars 2",
    "Description": "About cars",
    "Duration": 120,
    "Genre": "Animation",
    "Language": "English",
    "ReleaseDate": "8th Oct. 2014",
    "Country": USA,
    "StartTime": "14:00",
    "EndTime": "16:00",
    "Seats": 
    [
    {  
        "Type": "Regular"
        "Price": 14.99
        "Status: "Almost Full"
    },
    {  
        "Type": "Premium"
        "Price": 24.99
        "Status: "Available"
    }
    ]
},
{
    "MovieID": 1,
    "ShowID": 2,
    "Title": "Cars 2",
    "Description": "About cars",
    "Duration": 120,
    "Genre": "Animation",
    "Language": "English",
    "ReleaseDate": "8th Oct. 2014",
    "Country": USA,
    "StartTime": "16:30",
    "EndTime": "18:30",
    "Seats": 
    [
        {  
        "Type": "Regular"
        "Price": 14.99
        "Status: "Full"
    },
        {  
        "Type": "Premium"
        "Price": 24.99
        "Status: "Almost Full"
    }
    ]
}
ReserveSeats(api_dev_key, session_id, movie_id, show_id, seats_to_reserve[])

參數

  • api_dev_key (string):與上面相同
  • session_id (string):用戶的會話ID,用于跟蹤此預訂。一旦預訂時間到期,將使用此ID在服務器上刪除用戶的預訂。
  • movie_id (string):預訂的電影。
  • show_id (string):預訂的放映。
  • seats_to_reserve (number):包含要預訂的座位ID的數組。

返回:(JSON)

返回預訂的狀態,其中包括以下之一:

  • 1) "預訂成功"
  • 2) "預訂失敗 - 放映已滿",
  • 3) "預訂失敗 - 請重試,因為其他用戶正在保留預訂座位"。

6、數據庫設計

以下是我們即將存儲的數據的一些觀察:

  1. 每個城市可以有多個影院。
  2. 每個影院將有多個影廳。
  3. 每部電影將有多場放映,每場放映將有多次預訂。
  4. 一個用戶可以有多次預訂。

7、頂層設計

在頂層面上,我們的web服務器將管理用戶的會話,應用服務器將處理所有的票務管理,將數據存儲在數據庫中,以及與緩存服務器一起處理預訂。

8、組件設計

首先,我們試著建立服務,假設它是由一個單一的服務器提供的。

票務預訂流程:以下將是典型的票務預訂流程:

  1. 用戶搜索一部電影。
  2. 用戶選擇一部電影。
  3. 向用戶顯示該電影的可用場次。
  4. 用戶選擇一場放映。
  5. 用戶選擇要預訂的座位數量。
  6. 如果需要的座位數可用,用戶將看到一個劇院的地圖以選擇座位。如果不是,用戶將進入下面的“步驟8”。
  7. 一旦用戶選擇了座位,系統將嘗試預訂這些選定的座位。
  8. 如果無法預訂座位,我們有以下選項:
  • 放映已滿;向用戶顯示錯誤消息。
  • 用戶想預訂的座位已經沒有了,但是還有其他座位可用,所以用戶被帶回到劇院地圖頁面以選擇不同的座位。
  • 沒有可預訂的座位,但所有座位都還沒有被預訂,因為有些座位被其他用戶在預訂池中保留并且還沒有預訂。用戶將被帶到一個等待頁面,在那里他們可以等待直到需要的座位從預訂池中釋放。這個等待可能會導致以下選項:
  • 如果需要的座位數變得可用,用戶將被帶到劇院地圖頁面,他們可以選擇座位。
  • 在等待過程中,如果所有座位都被預訂了,或者預訂池中的座位數少于用戶打算預訂的座位數,用戶將被顯示錯誤消息。
  • 用戶取消等待,返回到電影搜索頁面。
  • 最多,用戶可以等待一個小時,之后用戶的會話將過期,用戶將被帶回到電影搜索頁面。
  1. 如果成功預訂了座位,用戶有五分鐘的時間支付預訂。付款后,預訂標記為完成。如果用戶不能在五分鐘內支付,他們所有的預訂座位都將被釋放,以供其他用戶使用。

服務器如何跟蹤所有尚未預訂的活動預訂?服務器又如何跟蹤所有等待的客戶? 我們需要兩個守護服務,一個用來跟蹤所有活動的預訂并從系統中移除任何過期的預訂;我們稱之為ActiveReservationService。另一個服務將跟蹤所有等待的用戶請求,一旦需要的座位數變得可用,它將通知(等待時間最長的)用戶選擇座位;我們稱之為WaitingUserService。

A. ActiveReservationsService(活動預訂服務)

我們可以在內存中保留一個與Linked HashMap或TreeMap相似的數據結構來存儲一場“演出”的所有預訂,除了在數據庫中保留所有數據。我們需要一種Linked HashMap類型的數據結構,它允許我們在預訂完成時跳轉到任何預訂以移除它。此外,由于我們將有與每個預訂關聯的到期時間,HashMap的頭部將始終指向最舊的預訂記錄,以便在達到超時時過期預訂。

為了存儲每場演出的每個預訂,我們可以有一個HashTable,其中'key'是'ShowID','value'是包含'BookingID'和創建'Timestamp'的Linked HashMap。

在數據庫中,我們將在'Booking'表中存儲預訂,到期時間將在Timestamp列中。'Status'字段將有一個值為'Reserved (1)'的值,一旦預訂完成,系統將更新'Status'為'Booked (2)'并從相關演出的Linked HashMap中刪除預訂記錄。當預訂過期時,我們可以從Booking表中移除它,或者將其標記為'Expired (3)',除此之外還要從內存中移除。

ActiveReservationsService也將與外部金融服務一起處理用戶支付。每當預訂完成或預訂過期時,WaitingUsersService都會收到一個信號,以便可以為任何等待的客戶提供服務。

B. WaitingUsersService(等待用戶服務)

就像ActiveReservationsService一樣,我們可以將一個演出的所有等待用戶存儲在Linked HashMap或TreeMap的內存中。我們需要一個類似于Linked HashMap的數據結構,以便我們可以在用戶取消請求時跳轉到任何用戶以從HashMap中移除他們。此外,由于我們是以先到先得的方式服務,Linked HashMap的頭部總是指向等待時間最長的用戶,因此每當座位變得可用時,我們都可以以公平的方式為用戶提供服務。

我們將有一個HashTable用來存儲每個Show的所有等待用戶。'key'將是'ShowID','value'將是包含'UserIDs'和他們的等待開始時間的Linked HashMap。

客戶端可以使用Long Polling來保持自己的預訂狀態更新。每當座位變得可用時,服務器可以使用這個請求來通知用戶。

預訂過期

在服務器上,ActiveReservationsService跟蹤活動預訂的過期時間(基于預訂時間)。由于客戶端將顯示一個計時器(用于過期時間),這可能與服務器稍微不同步,我們可以在服務器上添加五秒鐘的緩沖區以防止破碎的體驗,從而確保客戶端在服務器超時后永不超時,防止成功購買。

9、并發性

如何處理并發性,以便沒有兩個用戶能夠預訂同一座位。我們可以在SQL數據庫中使用事務來避免任何沖突。例如,如果我們使用的是SQL服務器,我們可以利用事務隔離級別來鎖定行,然后再更新它們。下面是樣本代碼:

SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;

BEGIN TRANSACTION;

    -- Suppose we intend to reserve three seats (IDs: 54, 55, 56) for ShowID=99 
    Select * From Show_Seat where ShowID=99 && ShowSeatID in (54, 55, 56) && Status=0 -- free 

    -- if the number of rows returned by the above statement is three, we can update to 
    -- return success otherwise return failure to the user.
    update Show_Seat ...
    update Booking ...

COMMIT TRANSACTION;

'Serializable' 是最高的隔離級別,可以保證免受臟讀、不可重復讀和幻讀的影響。這里要注意一點;在一個事務中,如果我們讀取了行,我們會在這些行上加寫鎖,以防止它們被任何其他人更新。

一旦上述數據庫事務成功,我們就可以開始在ActiveReservationService中跟蹤預訂情況。

10、容錯性

當ActiveReservationsService或WaitingUsersService崩潰時會發生什么? 每當ActiveReservationsService崩潰時,我們可以從‘Booking’表中讀取所有的活動預訂。請記住,直到預訂完成,我們都將“Status”列保持為“Reserved (1)”。另一個選擇是擁有主-次配置,這樣,當主服務崩潰時,次服務可以接管。我們沒有將等待的用戶存儲在數據庫中,所以,當WaitingUsersService崩潰時,除非我們有主次設置,否則我們沒有任何方式恢復那些數據。

同樣,我們會為數據庫設置主次配置,以使其具有容錯性。

11、數據分區

數據庫分區:如果我們按‘MovieID’進行分區,那么一部電影的所有場次都會在同一個服務器上。對于熱門電影來說,這可能會給那臺服務器帶來大量負載。更好的方法是根據ShowID進行分區;這樣,負載就可以分散到不同的服務器上。

ActiveReservationService和WaitingUserService分區:我們的Web服務器將管理所有活動用戶的會話,并處理與用戶的所有通信。我們可以使用一致性哈希算法來根據‘ShowID’為ActiveReservationService和WaitingUserService分配應用服務器。這樣,特定場次的所有預訂和等待用戶將由某一組服務器處理。假設為了負載平衡,我們的"一致性哈希"為任何場次分配了三個服務器,那么每當一個預訂過期時,持有該預訂的服務器將執行以下操作:

  1. 更新數據庫以移除預訂(或標記為過期)并更新‘Show_Seats’表中座位的狀態。
  2. 從Linked HashMap中移除預訂。
  3. 通知用戶他們的預訂已過期。
  4. 向所有持有該場次等待用戶的WaitingUserService服務器廣播消息,以找出等待時間最長的用戶。一致性哈希方案將告訴我們哪些服務器持有這些用戶。
  5. 如果所需的座位已經變為可用,就向持有最長等待用戶的WaitingUserService服務器發送消息以處理他們的請求。

每當一個預訂成功時,將發生以下事情:

  1. 持有該預訂的服務器向所有持有該場次等待用戶的服務器發送消息,以便這些服務器可以使所有需要的座位數多于可用座位數的等待用戶過期。
  2. 收到上述消息后,所有持有等待用戶的服務器將查詢數據庫,以查找現在有多少個空閑座位。此處的數據庫緩存將大大有助于只運行一次這個查詢。
  3. 使所有希望預訂的座位數多于可用座位數的等待用戶過期。為此,WaitingUserService必須遍歷所有等待用戶的Linked HashMap。
責任編輯:武曉燕 來源: 今日頭條
相關推薦

2023-07-02 06:47:42

LOFTER系統架構

2023-07-05 08:00:52

MetrAuto系統架構

2010-06-05 15:56:39

票務系統世博

2014-05-19 10:08:36

IM系統架構設計

2025-05-08 07:47:52

2025-06-27 09:24:38

MCP服務器系統

2021-07-07 10:00:03

深度學習系統機構

2015-10-16 14:35:05

SaaSCRM架構設計

2017-12-12 08:40:00

2023-08-16 12:34:16

同步備份異步備份

2024-08-16 14:01:00

2024-10-17 08:26:53

ELKmongodb方案

2012-05-11 10:38:15

Cloud Found

2023-07-06 00:41:03

SQLNoSQL數據庫

2018-05-17 10:10:17

架構設計優化

2010-08-10 10:10:28

系統架構

2023-07-05 00:36:38

系統架構設計

2023-07-09 15:20:00

緩存平衡性能

2015-11-13 10:25:04

京東商品搜索架構

2024-09-18 09:04:33

架構模式查詢
點贊
收藏

51CTO技術棧公眾號

国产一级一级片| 欧美裸体网站| 久久视频免费看| 久久影院资源站| 一本久久a久久精品亚洲| 色综合视频二区偷拍在线| 国产人妻精品一区二区三| 亚洲国产专区| 原创国产精品91| 永久看看免费大片| 欧美艳星kaydenkross| 国产精品久久久久久户外露出| 91成人伦理在线电影| 国产www在线| 91tv官网精品成人亚洲| 亚洲精品狠狠操| 九九精品久久久| 国产色播av在线| 欧美国产1区2区| 国产丝袜不卡| 国产精品111| 欧美高清在线| 亚洲欧美色婷婷| www.黄色网| 日韩第二十一页| 日韩欧美在线视频日韩欧美在线视频 | 国产一区二区在线电影| 91av在线播放视频| 欧美三级免费看| 成人一二三区| 亚洲男女性事视频| 四虎成人免费视频| 95精品视频| 欧美午夜精品免费| 欧美日韩中文在线视频| 波多野结衣在线播放| 最新国产の精品合集bt伙计| 欧美日韩一区二区视频在线| 日本黄色一区二区三区| 国产一区二区剧情av在线| 国产精品视频久久久| 丰满人妻老熟妇伦人精品| 伊人精品在线| 欧美高清不卡在线| 欧美日韩国产精品综合| 国产精品麻豆久久| www.久久久久| 精品国产国产综合精品| 成人高清av| 一区二区三区天堂av| 亚洲av片不卡无码久久| 另类图片第一页| 亚洲成人av中文字幕| 91精品国产高清91久久久久久| 国产精品白丝久久av网站| 欧美日韩一级视频| 天天色综合社区| 成人国产一区| 欧美高清视频www夜色资源网| 欧美日韩在线观看不卡| 精品美女一区| 欧美精品精品一区| 亚洲一区二区中文字幕在线观看| 国产精品亚洲欧美日韩一区在线| 91精品国产综合久久久蜜臀图片 | 福利一区福利二区| 国产精品v欧美精品v日韩| 丰满岳乱妇国产精品一区| 成人精品鲁一区一区二区| 国产精品区二区三区日本| 午夜精品久久久久久久96蜜桃| 国产成人免费视频网站高清观看视频| 五月婷婷中文字幕| 国产三级三级在线观看| 麻豆精品视频在线观看免费| 国产精品美女网站| 中文字幕91爱爱| 美女视频黄久久| 91在线网站视频| 性一交一乱一精一晶| 成人动漫中文字幕| 欧美精品一区三区在线观看| 国产高清在线观看| 亚洲欧洲美洲综合色网| 亚洲精品少妇一区二区| 精品众筹模特私拍视频| 天天色天天操综合| 日本www.色| 国模大尺度视频一区二区| 欧美精品一区二区三区视频| 国产人妻一区二区| 99久久99久久精品国产片桃花 | 可以看的av网址| 99香蕉久久| 亚洲午夜激情免费视频| 成人免费精品动漫网站| 亚洲大片av| 国产精品久久久久久av| 国产成人av免费看| 久久亚洲欧美国产精品乐播 | 黄色网址在线视频| 全球成人免费直播| 久久久免费电影| 中文字幕av片| 成人91在线观看| 亚洲国产高清国产精品| 91超碰在线播放| 欧美日本精品一区二区三区| 国产黑丝一区二区| 国产精品久久观看| 2019最新中文字幕| 99在线精品视频免费观看20| 国产亚洲欧美在线| 国产免费一区二区视频| 久久人体av| 亚洲精品综合精品自拍| 欧美精品一级片| 美女脱光内衣内裤视频久久影院| 国产精品一国产精品最新章节| av片在线看| 好吊成人免视频| 久久无码人妻一区二区三区| 久久美女精品| 日本久久久久久久久久久| 亚洲av无码乱码国产麻豆| 中文字幕欧美激情| 国产精品无码专区av在线播放 | 日本高清一二三区| 日韩av在线播放中文字幕| 国产精品一区二区三区在线 | 亚洲视频1区2区| 亚州精品一二三区| 九九综合在线| 69久久夜色精品国产7777| www.黄色片| 亚洲人成在线观看一区二区| 麻豆三级在线观看| 国产精品欧美在线观看| 欧美在线视频导航| 日韩一级免费视频| 香蕉成人伊视频在线观看| 国产精品99精品无码视亚| 久久精品影视| 91精品国产综合久久香蕉| a√资源在线| 欧美在线不卡一区| 国产精品一二三区在线观看| 国产一区二区精品| 激情小说综合网| 51漫画成人app入口| 精品剧情在线观看| 欧美成人三级视频| 国产成人综合在线播放| japanese在线播放| 在线视频亚洲欧美中文| 久久久伊人欧美| 亚州精品国产精品乱码不99按摩| 午夜精品久久久久久| 亚洲av无码国产精品久久| 亚洲一区网站| 日韩欧美精品在线不卡| 成人1区2区| 久久影视电视剧免费网站| 一区二区三区亚洲视频| 亚洲码国产岛国毛片在线| 在线观看免费看片| 日韩午夜黄色| 日韩高清av| 电影91久久久| 久久久久久久网站| 天堂av在线免费| 亚洲成年人网站在线观看| 人妻少妇精品视频一区二区三区| 国产欧美另类| 天天综合色天天综合色hd| 久久精品国产福利| 欧美大片免费观看| 头脑特工队2在线播放| 色噜噜狠狠色综合欧洲selulu| 高清国产在线观看| 国产一区二区三区四区五区入口| 日韩免费在线观看av| 亚洲区小说区| 成人福利网站在线观看11| 黑人另类精品××××性爽| 日韩禁在线播放| 在线视频你懂得| 亚洲一二三四久久| 色屁屁草草影院ccyy.com| 国产在线不卡一卡二卡三卡四卡| 美女扒开大腿让男人桶| 一本久久青青| 91青草视频久久| 国产99在线观看| 日韩中文字幕免费视频| 老牛影视av牛牛影视av| 欧美视频一二三区| 久久精品视频日本| 国产精品伦一区二区三级视频| 亚洲性图第一页| 男人的j进女人的j一区| www.射射射| 先锋资源久久| 欧美日韩一区二区视频在线观看| 精品中文视频| 国产va免费精品高清在线观看| av网站大全在线| 亚洲午夜未满十八勿入免费观看全集| 99视频在线观看免费| 欧美在线观看一区二区| 日韩久久精品视频| 亚洲色图另类专区| 超薄肉色丝袜一二三| 99精品欧美一区二区三区小说 | 欧美特黄aaaaaa| 一区二区三区四区乱视频| 在线免费观看视频| 99精品久久免费看蜜臀剧情介绍 | 99久久久免费精品国产一区二区| 日本黄色的视频| 久久久久网站| 我的公把我弄高潮了视频| 欧美一区二区三区久久精品茉莉花| 日韩av高清| 亚洲女娇小黑人粗硬| 国产伦精品一区二区三区高清版| 国产精品视频首页| 国产这里只有精品| 中文.日本.精品| 日本高清久久天堂| 高清视频在线观看三级| 久久久久久国产精品三级玉女聊斋 | 成人免费观看视频| 一级黄色免费毛片| 激情综合五月天| 午夜剧场在线免费观看| 日本美女视频一区二区| 波多野结衣作品集| 美女爽到呻吟久久久久| 国产成人精品视频免费看| 亚洲美女黄网| 日韩伦理在线免费观看| 亚洲精品韩国| 乱人伦xxxx国语对白| 亚洲精品一级| 久操网在线观看| 一本综合精品| 国产原创中文在线观看| 一道本一区二区| 黄色片视频在线播放| 久久久精品五月天| 久久久精品三级| 美国欧美日韩国产在线播放| 久久国产激情视频| 韩国一区二区三区| 欧美体内she精高潮| 国产成人99久久亚洲综合精品| 男人添女人荫蒂国产| 成人免费毛片a| 日韩一级视频在线观看| 国产欧美日韩不卡免费| 午夜国产福利视频| 亚洲日本一区二区| 青娱乐在线视频免费观看| 亚洲一区二区四区蜜桃| 日韩毛片在线播放| 日韩欧中文字幕| 亚洲视屏在线观看| 欧美肥胖老妇做爰| 懂色av成人一区二区三区| 日韩国产在线播放| 日韩黄色影院| 成人97在线观看视频| 天堂va在线| 欧美亚洲在线视频| 另类一区二区| 成人av电影免费| 亚洲资源网你懂的| 亚洲巨乳在线观看| 好吊日精品视频| 欧美一级黄色片视频| 国模大尺度一区二区三区| 少妇伦子伦精品无吗| www久久精品| 女同久久另类69精品国产| 亚洲国产成人91porn| 无码人妻丰满熟妇区五十路| 91精品国产综合久久精品性色| 日本黄色免费视频| 色yeye香蕉凹凸一区二区av| 欧美xxxx黑人又粗又长| 国产第一区电影| 欧美不卡在线观看| 欧美日韩在线一区二区三区| 亚洲女同中文字幕| 激情五月开心婷婷| 国产一区二区三区久久悠悠色av| 黄色录像a级片| 亚洲青青青在线视频| 久久久久久久久久久久久av| 欧美丰满少妇xxxbbb| 久久经典视频| 久久人人爽人人| 天天综合91| 日本不卡二区高清三区| 欧美日韩一视频区二区| 久草福利视频在线| 成人av在线播放网址| 永久av免费网站| 色8久久人人97超碰香蕉987| 高清乱码毛片入口| 久久精品久久久久| 国产精品专区免费| 国产三区精品| 中文字幕日韩一区二区不卡| 簧片在线免费看| 99精品视频在线观看| 免费在线观看亚洲| 欧美理论片在线| 番号集在线观看| 国产91精品久久久久久| 91国内精品白嫩初高生| 二级片在线观看| 蜜臀av性久久久久蜜臀av麻豆| 素人fc2av清纯18岁| 亚洲猫色日本管| 99久久精品免费看国产交换| 日韩亚洲精品视频| 91综合国产| 日本午夜一区二区三区| 国产日韩高清一区二区三区在线| 欧美一级片在线免费观看| 亚洲同性gay激情无套| 中文字幕人妻一区二区三区视频| 亚洲视频一区二区| 漫画在线观看av| 精品999在线观看| 亚洲日韩视频| 人妻换人妻a片爽麻豆| 亚洲综合图片区| 性一交一乱一色一视频麻豆| 蜜臀久久99精品久久久久久宅男| 亚洲伊人伊成久久人综合网| 国产高清免费在线| 国产精品一品视频| 九九视频在线免费观看| 日韩欧美不卡一区| 欧美草逼视频| 精品欧美一区二区精品久久| 亚洲黑丝一区二区| av黄色一级片| 欧美性xxxx| 国产色在线 com| 国产精品国产亚洲伊人久久| 欧美一级精品| 色婷婷一区二区三区av免费看| 中文字幕中文在线不卡住| 国产又粗又猛又爽| 欧美精品免费在线| 白白在线精品| 波多野结衣家庭教师在线| 久久伊99综合婷婷久久伊| 五月婷婷激情视频| 色妞欧美日韩在线| 免费一级欧美片在线观看网站| a级黄色小视频| 久久伊人蜜桃av一区二区| 欧美高清69hd| 美女av一区二区| 日韩成人一级| 激情五月俺来也| 一区二区三区欧美| 丝袜+亚洲+另类+欧美+变态| 国产精品国产福利国产秒拍| 91精品国产乱码久久久久久久| 亚洲精品无码一区二区| 日韩欧美精品在线观看| 毛片激情在线观看| 99re在线观看视频| 欧美综合国产| 成人一级黄色大片| 亚洲国产成人久久| 成人国产一区| 国产高清av在线播放| 欧美高清在线一区| 成人黄色免费视频| 国产激情久久久| 好看的av在线不卡观看| 人妻大战黑人白浆狂泄| 91精品国产手机| 在线黄色的网站 | 一本色道88久久加勒比精品| 国产传媒国产传媒| 日韩精品中文字幕在线不卡尤物| 欧美大片免费| 精品一二三四五区| 国产精品理论在线观看| 偷拍精品一区二区三区| 91久久久久久久久久久久久| 先锋影音久久久|