精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

欧美亚洲自偷自偷| 日韩欧美精品电影| 丁香六月久久综合狠狠色| 欧美精品手机在线| 天天躁日日躁狠狠躁av麻豆男男| 国产亚av手机在线观看| 狠狠色丁香久久婷婷综| 一区二区三区国产视频| 天天爽夜夜爽一区二区三区| 日本www在线| 国产毛片一区二区| 97视频人免费观看| 我不卡一区二区| 粉嫩一区二区三区在线观看| 亚洲线精品一区二区三区八戒| 国产一区二区中文字幕免费看| 91在线视频在线观看| 神马久久影院| 欧美精选一区二区| cao在线观看| 久久电影中文字幕| 国产一区在线视频| 性色av一区二区三区免费| 中文字幕成人动漫| 亚洲爽爆av| 欧美日韩亚洲一区二区三区| 午夜精品短视频| 亚洲xxx在线| 日韩精品91亚洲二区在线观看| 一区二区三区美女xx视频| 黄色永久免费网站| 日本大胆在线观看| 久久久精品国产免费观看同学| 7777免费精品视频| 欧美性x x x| 亚洲亚洲免费| 日韩西西人体444www| 欧美老熟妇喷水| 91小视频xxxx网站在线| 久久亚洲私人国产精品va媚药| 91免费综合在线| 中日韩黄色大片| 综合一区二区三区| 亚洲香蕉伊综合在人在线视看| 久久无码专区国产精品s| 黄色精品视频| 福利视频第一区| 激情六月天婷婷| 久草视频视频在线播放| 成人美女在线观看| 999精品视频一区二区三区| 国产乱码77777777| 国内精品久久久久久久影视蜜臀| 中文字幕亚洲一区二区三区五十路| 亚洲自拍偷拍精品| 蜜桃在线一区| 欧美狂野另类xxxxoooo| 国产成人手机视频| 成人性生交大片免费网站| 一区二区三区久久久| 一区二区三区四区欧美| 国产视频在线看| 91色porny| 99久久自偷自偷国产精品不卡| 亚洲视屏在线观看| 日本女优在线视频一区二区| 欧美最猛性xxxxx(亚洲精品)| 亚洲国产精品久| 欧美色婷婷久久99精品红桃| 亚洲乱亚洲乱妇无码| 国产麻豆剧传媒精品国产av| 91精品麻豆| 色综合久久天天综合网| 男人天堂1024| 色在线免费观看| 亚洲自拍偷拍图区| av动漫在线免费观看| 91网址在线观看| 一个色综合av| 黄网站欧美内射| 国产激情在线播放| 欧美日韩亚洲一区二| 久久久免费视频网站| 都市激情综合| 色综合天天综合狠狠| 午夜肉伦伦影院| 日日av拍夜夜添久久免费| 色噜噜狠狠色综合欧洲selulu| 国产高清精品在线观看| 亚洲伊人av| 欧美在线观看视频在线| 日本中文字幕精品—区二区| 成人在线啊v| 精品国产在天天线2019| 亚洲av无一区二区三区久久| 国产精品x8x8一区二区| 精品调教chinesegay| 国产一区二区三区四区五区六区| jiujiure精品视频播放| www亚洲欧美| 精品肉丝脚一区二区三区| 夜夜嗨一区二区三区| 国产v综合ⅴ日韩v欧美大片| 无码人妻熟妇av又粗又大| 美女在线视频一区| 97超级碰碰| 99精品视频免费看| 99视频一区二区| 欧美一区亚洲二区| www.在线视频| 色综合天天综合网天天看片| 在线观看免费不卡av| 日韩视频一二区| 国产视频亚洲精品| 欧美一区二区三区观看| 欧美成人精品| 国产成人avxxxxx在线看| 免费精品一区二区| 成人小视频在线观看| 日韩av一区二区三区在线| av在线免费观看网址| 欧美性jizz18性欧美| 日韩视频在线观看一区二区三区| 精品久久国产一区| 亚洲老头同性xxxxx| 成人午夜福利一区二区| 日本不卡高清| 97超级碰碰碰| 国产精品一级视频| 久久久精品tv| 亚洲欧洲日韩综合一区二区| 美女黄毛**国产精品啪啪| av在线中文| 亚洲精品高清视频在线观看| 国产精品裸体瑜伽视频| 四虎国产精品永久在线国在线| 亚洲国产欧美一区二区丝袜黑人| 日本精品久久久久中文| 亚洲国产高清一区二区三区| 日本久久中文字幕| 亚洲综合精品在线| 91影院在线观看| 美女av免费观看| 欧洲亚洲精品久久久久| 亚洲第一男人av| 亚洲xxxx3d动漫| 日本成人在线电影网| 久久久久久国产精品免费免费| 成人在线播放免费观看| 欧美亚洲动漫制服丝袜| www.超碰97| 亚洲一级电影| 91精品国产91久久久久青草| jizz在线观看| 欧洲在线/亚洲| 精品少妇人妻一区二区黑料社区| 亚洲午夜黄色| 成人91免费视频| 二区三区在线观看| 欧美久久一区二区| 亚洲色图100p| 美女任你摸久久| 国产精品麻豆免费版| 欧美亚洲天堂| 日韩精品一区二区三区在线| 精品一区在线观看视频| 国产精品综合一区二区三区| 中国成人亚色综合网站| 日本午夜精品久久久久| 99re热这里只有精品免费视频| 7m第一福利500精品视频| 丰满人妻一区二区三区四区53 | 精品欧美一区二区久久久伦 | 麻豆国产va免费精品高清在线| 四虎永久在线精品| 国产乱淫av一区二区三区| 婷婷精品国产一区二区三区日韩| 超碰91在线观看| 日韩av网址在线| 91av在线免费视频| 国产91精品欧美| 97久久国产亚洲精品超碰热| 亚洲日本va午夜在线电影| 日韩在线视频中文字幕| 91激情在线观看| 亚洲日韩欧美一区二区在线| 男人操女人下面视频| 欧美天堂亚洲电影院在线观看| 国产69精品久久久久9999apgf| 青草视频在线免费直播| 亚洲成**性毛茸茸| 亚洲欧美偷拍一区| 国产精品日韩成人| 日韩欧美色视频| 日韩午夜av在线| 人禽交欧美网站免费| 奇米777日韩| www.久久久久| 亚洲成人中文字幕在线| 欧美日韩精品在线| 九一在线免费观看| 国v精品久久久网| 男人日女人bb视频| 97在线精品| 国产女主播一区二区| 亚洲成人av观看| 欧美日韩成人在线视频| 免费在线国产| 欧美偷拍一区二区| 中日韩一级黄色片| 成人aa视频在线观看| 国产又粗又长又大的视频| 四虎成人精品永久免费av九九| 114国产精品久久免费观看| 国产亚av手机在线观看| 亚洲欧美激情精品一区二区| 国产第一页在线观看| 一区二区高清免费观看影视大全 | 午夜精品av| 欧美成人蜜桃| 精品国产一级| 国产精品444| 麻豆tv在线| 日韩av中文字幕在线播放| 亚洲资源在线播放| 亚洲综合免费观看高清完整版| 老熟妇一区二区| 成人精品一区二区三区中文字幕| 最近中文字幕一区二区| 激情欧美亚洲| 亚洲国产午夜伦理片大全在线观看网站 | 国产一区在线不卡| 黄色av免费在线播放| 亚洲三级视频| 久久久久欧美| 国产一区二区三区黄网站| 欧美一区二区三区免费视| а√天堂在线官网| 深夜福利日韩在线看| 日本精品久久久久| 欧美一区二区视频观看视频| 国产中文字幕视频| 亚洲国产sm捆绑调教视频| 国产又粗又猛又爽又黄的视频小说| 国产精品一区免费在线观看| 黄色a级片免费| 亚洲欧洲综合| 国产欧美久久久久| 亚洲国产一成人久久精品| 日韩电影大全在线观看| 另类在线视频| 国产欧美日韩中文字幕| 欧美日韩123区| 69久久夜色精品国产69乱青草| 蜜臀av国内免费精品久久久夜夜| 日韩视频在线免费观看| 91在线导航| 亚洲精品国产欧美| 性生活三级视频| 欧美日本在线看| 人妻中文字幕一区二区三区| 狠狠色狠狠色综合日日五| 国产成人av免费在线观看| 久久精品人人做人人综合 | 国产在线69| 日韩在线小视频| www.久久久久久| 精品欧美乱码久久久久久1区2区| 99在线观看精品视频| 欧美一区二区美女| 国产草草影院ccyycom| 日韩欧美一二三区| 国产乱叫456在线| 欧美一区二区三区小说| 国产三级伦理片| 欧美日韩午夜在线视频| 中文字幕在线观看视频一区| 欧美亚洲一区二区在线观看| 五月婷婷色丁香| 天天色综合天天| 中文字幕在线播| 在线免费观看日本一区| 成人黄色免费网| 欧美精品第一页| 朝桐光av在线一区二区三区| 欧美精品一区二| 九色视频在线观看免费播放| 正在播放欧美一区| gogo在线高清视频| 136fldh精品导航福利| 香蕉成人av| 国产精品网站大全| 成人免费一区| 99精品国产高清一区二区| 欧美日韩一区二区三区四区不卡| 欧美一区二区三区电影在线观看| 亚洲另类av| 视频一区亚洲| 国产精品88久久久久久| 中文字幕一区二区三区在线乱码 | 久久高清内射无套| 国产精品视频线看| 黄色一级片一级片| 亚洲网友自拍偷拍| 日韩少妇高潮抽搐| 在线国产亚洲欧美| 国产熟女精品视频| 日韩精品小视频| 免费网站黄在线观看| 久久久久久久亚洲精品| a屁视频一区二区三区四区| 99免费在线视频观看| 国产99久久久国产精品成人免费| 中文字幕剧情在线观看一区| 亚洲精品看片| 在线观看国产一级片| 风流少妇一区二区| 美国一级黄色录像| 午夜国产精品一区| 国内av在线播放| 精品三级在线看| av在线播放网站| 久久久视频精品| 欧美成人一二区| 久久久久久久久久久久久久一区 | 久久久久久久免费| 一区二区三区中文| 久草在在线视频| 成人午夜精品在线| 亚洲色图27p| 色综合一个色综合| 天堂av2024| 欧美成人中文字幕| 欧美美女福利视频| 欧美精品一区二区三区四区五区| 欧美成人综合| 向日葵污视频在线观看| 99国产欧美另类久久久精品| 日韩一区二区三区四区在线| 欧美亚洲综合色| 精品三级久久久久久久电影聊斋| 久久人人爽国产| 国产精品视频首页| 亚洲国产精品毛片| 视频一区二区三区在线| 白嫩情侣偷拍呻吟刺激| 亚洲女同ⅹxx女同tv| 中国女人一级一次看片| 日韩av综合中文字幕| 麻豆av在线免费观看| 91精品视频播放| 日韩综合精品| 亚洲高清免费在线观看| 不卡的av中国片| 男女做暖暖视频| 色噜噜狠狠成人网p站| 日产精品久久久久久久性色| 久久久这里只有精品视频| 精品精品视频| 国产91porn| 国产精品一级片在线观看| 欧美激情图片小说| 欧美一级久久久| 午夜小视频福利在线观看| 91在线视频导航| 香蕉av一区二区| 91精品国产三级| 亚洲乱码中文字幕| 午夜久久久久久久久久| 欧美高跟鞋交xxxxxhd| 日韩久久一区| 一区二区视频在线免费| 狠狠色丁香久久婷婷综合_中| 日韩高清dvd碟片| 日韩欧美卡一卡二| 成人女同在线观看| 精品999在线观看| 日韩视频一区二区三区在线播放免费观看| 亚洲乱妇老熟女爽到高潮的片 | 国产精品女人久久久久久| 欧美艳星介绍134位艳星| 日韩在线不卡一区| 一个色在线综合| 国产日产精品久久久久久婷婷| 国产日本欧美一区二区三区| 欧美日本二区| 亚洲精品国产精品国自产网站| 欧美精品 日韩| 韩国成人二区| 一区二区三区四区五区精品| 国产精品18久久久久久久久| 91浏览器在线观看| 色婷婷av一区二区三区在线观看| 在线一区二区三区视频| 欧美黑人经典片免费观看| 国产精品乱子久久久久| 婷婷久久久久久| 成人免费xxxxx在线观看| 亚洲视频二区| 无码人妻精品一区二区三区夜夜嗨|