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

我們一起聊聊如何設(shè)計(jì)一個(gè)全局唯一的訂單號(hào)?

開(kāi)發(fā) 前端
UUID 是Universally Unique Indentifier的縮寫(xiě),翻譯為通用唯一識(shí)別碼,顧名思義 UUID 是一個(gè)用于記錄唯一標(biāo)識(shí)一條的數(shù)據(jù),其按照開(kāi)放軟件基金會(huì)(OSF)指定的標(biāo)準(zhǔn)進(jìn)行計(jì)算,用到了以太網(wǎng)卡地址(MAC)、納秒級(jí)時(shí)間、芯片 ID 碼和許多可能的數(shù)字。

01、背景介紹

在實(shí)際的軟件系統(tǒng)開(kāi)發(fā)過(guò)程中,由于業(yè)務(wù)的需要,我們經(jīng)常需要生成業(yè)務(wù)單號(hào),例如訂單編號(hào)、入庫(kù)單號(hào)、投訴服務(wù)單號(hào)等等,針對(duì)這個(gè)問(wèn)題也做了一些研究,有一些收獲想分享給大家!

本文主要以討論電商的訂單編號(hào)規(guī)則為案例,其他類型的服務(wù)編號(hào)設(shè)計(jì)思路其實(shí)也是相似的。

不廢話,直接干貨!

訂單命名的幾種規(guī)則總結(jié):

  • 不重復(fù):這點(diǎn)我相信大家都懂,必須全局唯一
  • 安全性:訂單號(hào)需要做到不容易被人為的猜測(cè)或者推測(cè)出來(lái),例如訂單號(hào)就是流水號(hào)的話,那么別人就很容易從訂單號(hào)推測(cè)出公司的整體運(yùn)營(yíng)情況。
  • 禁用隨機(jī)碼:很多人分析生成訂單號(hào)的時(shí)候,第一個(gè)念頭肯定是不重復(fù)唯一性,那么第二個(gè)念頭可能就是安全性,想要同時(shí)滿足前兩者,很容易想到使用隨機(jī)碼,隨機(jī)碼從一定程度來(lái)說(shuō),更安全、不重復(fù)性更高,但是可讀性差,有概率會(huì)發(fā)生重復(fù)。
  • 防止并發(fā):針對(duì)系統(tǒng)的并發(fā)業(yè)務(wù)場(chǎng)景(如秒殺),需要做到并發(fā)場(chǎng)景下,訂單編號(hào)生成快速、不重復(fù)等要求
  • 控制位數(shù):訂單號(hào)的位數(shù)盡量在 10 位 ~ 18 位之間。太短的情況下,如果交易量過(guò)大,很難做到防止重復(fù),太長(zhǎng)可讀性差、意義也不大。

02、方案實(shí)踐

上面提到了訂單編號(hào)生成的規(guī)則,那要實(shí)現(xiàn)這樣的規(guī)則,該如何實(shí)現(xiàn)會(huì)比較好呢?

下面總結(jié)幾種常見(jiàn)的處理方式,我們一一分析!

2.1、方案一:UUID

UUID 是Universally Unique Indentifier的縮寫(xiě),翻譯為通用唯一識(shí)別碼,顧名思義 UUID 是一個(gè)用于記錄唯一標(biāo)識(shí)一條的數(shù)據(jù),其按照開(kāi)放軟件基金會(huì)(OSF)指定的標(biāo)準(zhǔn)進(jìn)行計(jì)算,用到了以太網(wǎng)卡地址(MAC)、納秒級(jí)時(shí)間、芯片 ID 碼和許多可能的數(shù)字。

總的來(lái)說(shuō),UUID 碼由以下三部分組成:

  • 當(dāng)前日期和時(shí)間
  • 時(shí)鐘序列
  • 全局唯一的 IEEE 機(jī)器識(shí)別碼(如果有網(wǎng)卡從網(wǎng)卡獲得,沒(méi)有網(wǎng)卡則通過(guò)其他方式獲得)

UUID 的標(biāo)準(zhǔn)形式包含 32 個(gè) 16 進(jìn)制數(shù)字,以連字號(hào)分為五段,示例:00000191-adc6-4314-8799-5c3d737aa7de。

以java為例,通過(guò)以下方式即可生成:

String uuid = UUID.randomUUID().toString();

這種方案,雖然實(shí)現(xiàn)簡(jiǎn)單、方便;但是數(shù)據(jù)庫(kù)查詢效率非常差,而且內(nèi)容長(zhǎng),在實(shí)際的項(xiàng)目場(chǎng)景開(kāi)發(fā)中,一般用于于記錄用戶的手機(jī)設(shè)備ID等硬件信息!

因此不推薦采用 uuid 來(lái)生成訂單編號(hào)!

2.2、方案二:數(shù)據(jù)庫(kù)自增

所謂數(shù)據(jù)庫(kù)自增,意思是在數(shù)據(jù)庫(kù)中給某個(gè)列設(shè)置為自增列,并且給該列設(shè)置一個(gè)初始值,代碼層面無(wú)需任何特殊處理,以 Mysql 的用戶表 ID 列為例,可以通過(guò)如下方式在創(chuàng)建表的時(shí)候生產(chǎn)。

CREATE TABLE `tb_user` (
  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
  `name` varchar(20) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;

這種通過(guò)數(shù)據(jù)庫(kù)自增方式實(shí)現(xiàn)唯一值,在單體服務(wù)下是沒(méi)有問(wèn)題,但是在大流量分布式服務(wù)環(huán)境下,并發(fā)性能很低。

以后數(shù)量大的時(shí)候,需要對(duì) mysql 進(jìn)行分庫(kù)分表,此時(shí)訂單號(hào)會(huì)重復(fù),因此不推薦采用!

2.3、方案三:雪花算法

Snowflake(中文簡(jiǎn)稱:雪花算法) 是 Twitter 內(nèi)部的一個(gè) ID 生算法,可以通過(guò)一些簡(jiǎn)單的規(guī)則保證在大規(guī)模分布式情況下生成唯一的 ID 號(hào)碼。其內(nèi)部結(jié)構(gòu)如下:

圖片圖片

可以很清晰的看出,Snowflake 由 4個(gè)部分組成:

  • 第一部分:bit 值,為未使用的符號(hào)位
  • 第二部分:由 41 位的時(shí)間戳(毫秒)構(gòu)成,它的取值是當(dāng)前時(shí)間相對(duì)于某一時(shí)間的偏移
  • 第三部分:表示工作機(jī)器 id,由服務(wù)節(jié)點(diǎn) id 和數(shù)據(jù)中心 id 組合而成
  • 第四部分:表示每個(gè)工作機(jī)器每毫秒生成的序列號(hào) ID,同一毫秒內(nèi)最多可生成生產(chǎn) 4095 個(gè) ID。

由于在 Java 中 64bit 的整數(shù)是 long 類型,因此在 Java 中 SnowFlake 算法生成的 id 就是 long 來(lái)存儲(chǔ)的。

SnowFlake 算法可以保證:

  • 1.所有生成的 id 按時(shí)間趨勢(shì)遞增
  • 2.整個(gè)分布式系統(tǒng)內(nèi)不會(huì)產(chǎn)生重復(fù)id(因?yàn)橛蟹?wù)節(jié)點(diǎn) id 和數(shù)據(jù)中心 id 來(lái)做區(qū)分)

需要注意的是:

  • 在分布式環(huán)境中,5 個(gè) bit 位的 datacenter 和 worker 表示最多能部署 31 個(gè)數(shù)據(jù)中心,每個(gè)數(shù)據(jù)中心最多可部署 31 臺(tái)節(jié)點(diǎn)。
  • 41 位的二進(jìn)制長(zhǎng)度最多能表示2^41 -1毫秒即 69 年,所以雪花算法最多能正常使用 69 年,為了能最大限度的使用該算法,在使用的時(shí)候,應(yīng)該為其指定一個(gè)開(kāi)始時(shí)間,不然會(huì)發(fā)生重復(fù)!

在高并發(fā)的環(huán)境下,Snowflake 算法可以生成全局唯一的訂單編號(hào),但是他的長(zhǎng)度達(dá)到21位,因此不推薦采用,但是可以用它來(lái)生成主鍵 ID,是完全沒(méi)有問(wèn)題的!

2.4、方案四:分布式組件

要想在分布式環(huán)境下生成一個(gè)唯一的訂單編號(hào),我們可以通過(guò)分布式組件的方式,來(lái)幫忙我們生成全局唯一的訂單號(hào),例如我們可以采用 redis 分布式緩存組件中的incr命令,來(lái)幫我們生成一個(gè)全局自增長(zhǎng)的序列號(hào)!

實(shí)現(xiàn)邏輯如下:

// 基于某個(gè)key實(shí)現(xiàn)自增長(zhǎng)
String res = jedis.get(key);
if (StringUtils.isBlank(res)) {
    // 設(shè)置初始值,INIT_ID 是初始值
    jedisClient.set(key, INIT_ID);
    // 設(shè)置過(guò)期時(shí)間,seconds 是多少秒過(guò)期
    jedisClient.expire(key, seconds);
}
//存在就生成+1的訂單號(hào)
long orderId = jedis.incr(key);

這種方式生成的自增長(zhǎng)序列號(hào),非常的快,可以很好的滿足大流量環(huán)境下的編號(hào)要求唯一的特性!

剩下的主要工作就是我們?nèi)绾稳ピO(shè)計(jì)一個(gè)訂單號(hào)規(guī)則!

在設(shè)計(jì)規(guī)則之前,我們先來(lái)看看互聯(lián)網(wǎng)幾個(gè)大廠的訂單號(hào)格式。

京東商城訂單號(hào)格式:157444499

蘇寧易購(gòu)訂單號(hào)格式:2000839647

凡客誠(chéng)品訂單號(hào)格式:213052230059

銀泰網(wǎng)訂單號(hào)格式:10030522161715

小米訂單號(hào)格式:1111218032345170

我們先來(lái)分析一下凡客誠(chéng)品和銀泰網(wǎng)的訂單號(hào)生成規(guī)則。

凡客誠(chéng)品和銀泰網(wǎng)訂單號(hào)都含有 0522,這是因?yàn)檫@ 2 張訂單都是2013年5月22號(hào)下的訂單。

基本猜測(cè)一下,凡客的訂單規(guī)則是:業(yè)務(wù)編碼+年的后2位+月+日+訂單數(shù);泰網(wǎng)的訂單號(hào)規(guī)則:年的第三位數(shù)+業(yè)務(wù)編碼+年的后1位+月+日+訂單數(shù);而京東商城和蘇寧易購(gòu)的訂單號(hào)看不出規(guī)則。

最后我們來(lái)分析一下小米訂單號(hào)1111218032345170,可以將其分解成四個(gè)部分1——111218—03234—5170。

  • 第一部分,1 表示購(gòu)買,2 表示退貨。
  • 第二部分,表示 2011 年 12 月 18 日下的單,前面兩位省掉了。
  • 第三部分,時(shí)間戳對(duì)應(yīng)00:53:54,換算成秒是03234秒。
  • 最后一部分,表示在同一秒內(nèi)下的第 5170 單,也就是說(shuō),小米認(rèn)為,在一秒內(nèi)不會(huì)超過(guò)一萬(wàn)個(gè)訂單。

總結(jié)起來(lái),小米的訂單規(guī)則是:業(yè)務(wù)編碼+年的后 2 位+月+日+秒+訂單數(shù),固定長(zhǎng)度為16,這種訂單號(hào)規(guī)則可以保證 100 年不會(huì)重復(fù)!

同樣的,借鑒小米的訂單號(hào)規(guī)則,我們也可以生成同樣的訂單號(hào),實(shí)現(xiàn)過(guò)程如下:

//獲取當(dāng)前時(shí)間
Date currentTime  = new Date();
//格式化當(dāng)前時(shí)間為【年的后2位+月+日】
String originDateStr = new SimpleDateFormat("yyMMdd").format(currentTime );
//計(jì)算當(dāng)前時(shí)間走過(guò)的秒
Date startTime =  new SimpleDateFormat("yyyyMMdd").parse(new SimpleDateFormat("yyyyMMdd").format(originDate));
long differSecond = (currentTime.getTime() - startTime.getTime()) / 1000;
//獲取【年的后2位+月+日+秒】,秒的長(zhǎng)度不足補(bǔ)充0
String yyMMddSecond = originDateStr +  StringUtils.leftPad(String.valueOf(differSecond), 5, '0');

//獲取【業(yè)務(wù)編碼】 + 【年的后2位+月+日+秒】,作為自增key;
String prefixOrder = sourceType + "" + yyMMddSecond;
//通過(guò)key,采用redis自增函數(shù),實(shí)現(xiàn)單秒自增;不同的key,從0開(kāi)始自增,同時(shí)設(shè)置60秒過(guò)期
Long incrId = redisUtils.saveINCR(prefixComplaint, 60);
//生成訂單編號(hào)
String orderNo = prefixOrder + StringUtils.leftPad(String.valueOf(incrId), 4, '0');

此訂單編號(hào)可以保證大流量環(huán)境下全局唯一、生成速度非常的快、支持高并發(fā)環(huán)境,同時(shí)還支持按時(shí)間排序!

03、總結(jié)

通過(guò)上面的示例演示,我們可用做一個(gè)詳細(xì)的總結(jié)!

圖片圖片

綜上所述,在大流量的環(huán)境下,我們可以通過(guò) redis 的incr函數(shù)實(shí)現(xiàn)序列號(hào)自增的特性,同時(shí)搭配訂單的設(shè)計(jì)規(guī)則,從而保證高并發(fā)的環(huán)境下,訂單唯一性!

責(zé)任編輯:武曉燕 來(lái)源: 潘志的研發(fā)筆記
相關(guān)推薦

2024-10-14 12:05:56

2024-06-17 11:59:39

2024-08-02 09:49:35

Spring流程Tomcat

2022-01-04 12:08:46

設(shè)計(jì)接口

2024-10-15 08:08:13

2023-11-30 07:40:05

URLCMS

2024-10-29 11:19:23

點(diǎn)贊系統(tǒng)同步

2021-07-01 06:58:12

高并發(fā)訂單號(hào)SCM

2023-06-30 08:18:51

敏捷開(kāi)發(fā)模式

2023-08-04 08:20:56

DockerfileDocker工具

2022-05-24 08:21:16

數(shù)據(jù)安全API

2023-09-10 21:42:31

2023-08-10 08:28:46

網(wǎng)絡(luò)編程通信

2024-07-03 08:36:14

序列化算法設(shè)計(jì)模式

2022-10-08 00:00:05

SQL機(jī)制結(jié)構(gòu)

2024-02-20 21:34:16

循環(huán)GolangGo

2021-08-27 07:06:10

IOJava抽象

2024-11-27 16:07:45

2024-09-30 09:33:31

2024-02-20 13:00:00

架構(gòu)設(shè)計(jì)模塊
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

一区二区三区美女xx视频| 色综合久久88色综合天天6| 91亚洲精品久久久| 男女视频免费看| 教室别恋欧美无删减版| 在线不卡一区二区| 成人在线免费观看av| 淫片在线观看| 成人免费黄色在线| 国产精品激情自拍| 久久中文字幕在线观看| 国产一区二区亚洲| 日韩视频免费观看高清完整版 | 国产精品久久久久久久9999| 艳妇荡乳欲伦69影片| 精品深夜福利视频| 欧美日韩国产乱码电影| 国产男女免费视频| 婷婷免费在线视频| 91麻豆国产在线观看| 成人美女av在线直播| 探花视频在线观看| 欧美久久综合| 深夜福利一区二区| 国产麻豆天美果冻无码视频 | 丁香激情五月少妇| 澳门成人av| 欧美久久久久久蜜桃| 六月丁香激情网| 羞羞视频在线免费国产| 国产精品无圣光一区二区| 国产视频在线观看一区| 国产精品久久久国产盗摄| 国产精品美女| 韩国三级日本三级少妇99| 欧美风情第一页| 国产不卡一区| 精品亚洲精品福利线在观看| 肉丝美足丝袜一区二区三区四| 午夜av成人| 色综合久久综合网97色综合| 精品一二三四五区| 黄色动漫在线| 国产精品黄色在线观看| 亚洲国产精品日韩| 国产在线观看高清视频| 2023国产精品自拍| 久久亚洲午夜电影| 少妇高潮久久久| 成+人+亚洲+综合天堂| 亚洲综合一区二区不卡| 91成品人影院| 久久99国产精品免费| 国产精品旅馆在线| 成人黄色三级视频| 三级亚洲高清视频| 国产成人一区二区| 国产精品国产三级国产专区52| 好吊视频一区二区三区四区| 九九精品视频在线| 少妇久久久久久被弄高潮| 羞羞答答成人影院www| 色综合影院在线| 老司机深夜福利网站| 久久福利综合| 播播国产欧美激情| 欧美特黄一级片| 亚洲综合专区| 久久久免费av| 九九热精品视频在线| 亚洲欧美日韩国产| 国产福利精品av综合导导航| 国产99久久久久久免费看| 日韩精品一二区| 国产精品视频地址| 国产精品无码久久久久成人app| 黄色精品一二区| 97在线电影| 四季av日韩精品一区| 91蝌蚪porny成人天涯| 欧美一区免费视频| 老司机av在线免费看| 亚洲免费在线观看视频| 无码人妻少妇伦在线电影| 538在线精品| 色哦色哦哦色天天综合| 国产aⅴ爽av久久久久| 久久久久九九精品影院| 精品成人在线观看| 中国女人特级毛片| 亚洲精品在线观看91| 97免费在线视频| 97人妻一区二区精品视频| 极品少妇xxxx偷拍精品少妇| 国产 高清 精品 在线 a| 欧美成人综合在线| 亚洲欧美日韩国产中文在线| 日韩中文字幕在线免费| 亚洲成av在线| 欧美va亚洲va香蕉在线| 精品少妇一区二区三区免费观| 99精品视频在线| 欧美激情免费视频| 丰满人妻一区二区三区四区| 国产成人精品三级| 日韩精品一区二区三区丰满| 污视频网站免费在线观看| 欧美性猛交丰臀xxxxx网站| 亚洲天堂国产视频| 欧美日韩看看2015永久免费 | 久久成人免费网站| 九九九久久久| h网站久久久| 色综合天天综合狠狠| 91aaa精品| 国产成人ay| 午夜精品久久久久久99热| 中文字幕人妻一区二区三区视频 | 国产精品色网| 91人成网站www| 国产露出视频在线观看| 亚洲国产精品久久久久秋霞影院 | 最近2019中文字幕mv免费看| 国产污视频在线观看| 黑人巨大精品欧美一区| 欧洲一区二区日韩在线视频观看免费| 怡红院在线播放| 欧美性受xxxx| 97人妻精品一区二区三区免| 欧美精品一区二区三区久久久竹菊| 国产精品国产亚洲伊人久久| 特黄视频在线观看| 日韩毛片高清在线播放| 国产裸体舞一区二区三区| 大奶一区二区三区| 欧美国产日韩精品| 国产欧美日韩成人| 国产精品美女久久久久av爽李琼 | 久草网在线观看| 狠狠色狠狠色综合| 亚洲在线欧美| 国产精品久久乐| 国产一区二区三区视频免费| 国产 日韩 欧美 在线| 成人丝袜18视频在线观看| 亚洲色图都市激情| www一区二区三区| 日韩小视频在线| 亚洲专区第一页| 亚洲国产精品成人综合 | 激情综合亚洲精品| 亚洲在线视频一区二区| 成人国产精品| 最近免费中文字幕视频2019| 一级特黄aaa大片| 亚洲欧洲美洲综合色网| 中文av字幕在线观看| 天天综合国产| 91gao视频| 亚洲第一图区| 亚洲黄色有码视频| 中国一级免费毛片| 国产网红主播福利一区二区| chinese少妇国语对白| av在线不卡顿| 国产美女直播视频一区| 黄网站在线免费看| 日韩视频在线一区二区| 久久久久久蜜桃| zzijzzij亚洲日本少妇熟睡| 国产麻花豆剧传媒精品mv在线| 九一亚洲精品| 91精品国产综合久久香蕉922| 免费人成在线观看播放视频| 日韩一级免费一区| 国产超碰人人爽人人做人人爱| 久久久久久久久蜜桃| 污污视频网站免费观看| 久久久久国产精品| 国产区二精品视| 亚洲伦乱视频| 九九热精品视频国产| 五月婷婷深深爱| 91成人网在线| a级黄色片免费看| 91亚洲资源网| 亚洲小视频网站| 激情综合电影网| 欧洲一区二区在线| 香蕉免费一区二区三区在线观看 | 成人黄页在线观看| 国产熟人av一二三区| 亚洲深深色噜噜狠狠爱网站| 狠狠干一区二区| 欧美伊人亚洲伊人色综合动图| 欧美男插女视频| 国产日本在线视频| 欧美不卡一区二区| www.亚洲激情| 亚洲一区二区综合| 内射毛片内射国产夫妻| 国产不卡在线视频| 午夜免费高清视频| 激情成人亚洲| 一区二区三区四区欧美| 色综合www| 亚洲一区亚洲二区| 精品中文字幕av| av官网在线播放| 精品亚洲一区二区三区| 国产欧美日韩成人| 色乱码一区二区三区88| 欧美黄片一区二区三区| 国产亚洲精品久| 中文在线字幕观看| 久久精品国产精品青草| 人人妻人人添人人爽欧美一区| 日韩av有码| 久久精品日产第一区二区三区精品版 | 天天爱天天做天天操| 亚洲人成亚洲精品| 国产福利久久精品| 日韩免费大片| 国产精品第2页| 国产精品yjizz视频网| 欧美成人精品在线| 自拍视频在线免费观看| 亚洲欧美另类国产| 欧美熟妇另类久久久久久不卡 | 亚洲国产精品一| 欧美精品日韩精品| 国产天堂第一区| 日本久久电影网| 国内精品福利视频| 午夜欧美大尺度福利影院在线看 | 成人三级黄色免费网站| 精品亚洲aⅴ在线观看| 少妇一级淫片免费看| 日韩欧美第一区| av网站在线免费看| 欧美一区二区三区白人| 91精品国产色综合久久不8| 欧美午夜宅男影院| 国产第一页在线观看| 色狠狠色狠狠综合| 波多野结衣绝顶大高潮| 在线中文字幕一区| 日本欧美www| 欧美视频在线一区二区三区| 中文人妻熟女乱又乱精品| 在线视频一区二区三区| 亚洲欧美另类在线视频| 色综合久久综合网97色综合| 国产又粗又爽视频| 色婷婷综合久久久中文字幕| 永久免费无码av网站在线观看| 欧美日韩精品二区| 亚洲欧美另类在线视频| 91福利资源站| 91福利免费视频| 日韩一区二区在线观看视频| 成 人片 黄 色 大 片| 精品国精品国产| 天堂在线视频观看| 亚洲久久久久久久久久久| 理论在线观看| 综合网中文字幕| 日本蜜桃在线观看| 欧美老少配视频| 僵尸再翻生在线观看| 日本一区二区在线免费播放| 国产经典一区| 51蜜桃传媒精品一区二区| 超碰97久久| 日本成人三级电影网站| 91日韩免费| 日韩精品一区二区免费| 久久国产一二区| 亚洲性图一区二区| 国产乱子轮精品视频| 丰满岳乱妇一区二区 | 午夜精品久久久久99蜜桃最新版| 亚洲欧美韩国综合色| 久久网中文字幕| 色综合天天综合网天天狠天天| 在线播放国产一区| 日韩精品中文字幕在线不卡尤物| 天天色综合久久| 日韩综合中文字幕| 2019中文字幕在线电影免费| 日韩免费在线视频| 九色精品蝌蚪| 欧美精品一区二区三区久久| 99久久精品网站| 日本www在线视频| 另类的小说在线视频另类成人小视频在线 | 欧美黄色一级网站| 一本高清dvd不卡在线观看 | 亚洲缚视频在线观看| 777电影在线观看| 国语自产偷拍精品视频偷| 日韩av电影资源网| 国产精品日韩一区二区三区| 波多野结衣在线播放一区| 欧美性潮喷xxxxx免费视频看| 日本vs亚洲vs韩国一区三区 | 欧美日韩国产123| 国产精品字幕| 久久精精品视频| 午夜日本精品| 天天爽天天爽夜夜爽| 不卡一区在线观看| 91成人福利视频| 欧美日韩一区二区不卡| 凸凹人妻人人澡人人添| 久久夜色精品国产亚洲aⅴ| 欧美精品高清| 国产精品一区二区三区免费| 999国产精品999久久久久久| 黄色片一级视频| 成人免费毛片嘿嘿连载视频| 91视频青青草| 欧美亚洲一区二区在线| 午夜av免费在线观看| 欧美黑人国产人伦爽爽爽| 激情小说亚洲| 日韩国产高清一区| 国产精品日本欧美一区二区三区| 性感美女一区二区三区| 亚洲色图欧美偷拍| 亚洲一区二区人妻| 亚洲偷熟乱区亚洲香蕉av| 九色porny自拍视频在线观看| 亚洲xxx自由成熟| 99久久夜色精品国产亚洲1000部| 免费观看精品视频| 99re成人在线| 黄色片视频网站| 亚洲成人av片| 免费看电影在线| 91香蕉视频在线下载| 香蕉久久网站| 北条麻妃亚洲一区| 自拍偷拍欧美精品| 国产男男gay体育生网站| 最新日韩中文字幕| 日韩免费在线电影| 热这里只有精品| 国产一区在线观看视频| 欧美性生给视频| 欧美丰满高潮xxxx喷水动漫| 日韩精品毛片| 91欧美激情另类亚洲| 亚洲欧美在线专区| 国产老头和老头xxxx×| 一区二区三区四区视频精品免费| www.午夜激情| 久久久久久久久久av| 久久九九热re6这里有精品| 国产精品50p| 久久精品一区四区| 少妇又紧又色又爽又刺激视频 | 国产日韩一区二区三区| 99亚洲精品| 亚洲 小说 欧美 激情 另类| 日本精品一区二区三区四区的功能| 久久视频www| 国产日韩在线看片| 你懂的国产精品永久在线| 久久久久亚洲av无码专区首jn| 一区二区三区资源| 欧美视频久久久| 国产精品高精视频免费| 亚洲视频电影在线| 亚洲天堂资源在线| 欧美在线观看18| 18+激情视频在线| 久久精品国产第一区二区三区最新章节| 日韩精品色哟哟| 国产97免费视频| 精品香蕉在线观看视频一| 欧美综合影院| 久久这里只有精品18| 久久综合九色综合久久久精品综合 | 精品麻豆一区二区三区| 国产乱码精品一区二区三区卡| 免费久久99精品国产自在现线| 女同久久另类69精品国产| 精品久久久久av影院| 日韩一区二区三区在线免费观看 | 四虎亚洲精品| 欧美日韩电影一区二区三区| 极品少妇一区二区三区精品视频| 日韩欧美亚洲一区二区三区| 中文字幕自拍vr一区二区三区| 成人福利免费在线观看| 日日噜噜夜夜狠狠| 亚洲国产va精品久久久不卡综合| av在线电影播放| 精品久久中出|