国产秋霞理论久久久电影-婷婷色九月综合激情丁香-欧美在线观看乱妇视频-精品国avA久久久久久久-国产乱码精品一区二区三区亚洲人-欧美熟妇一区二区三区蜜桃视频

記一次訂單號(hào)重復(fù)的事故,快看看你的 uuid 在并發(fā)下還正確嗎?

共 5399字,需瀏覽 11分鐘

 ·

2020-09-26 00:04

作者:funnyZpC

cnblogs.com/funnyzpc/p/13541713.html

去年年底的時(shí)候,我們線上出了一次事故,這個(gè)事故的表象是這樣的:

系統(tǒng)出現(xiàn)了兩個(gè)一模一樣的訂單號(hào),訂單的內(nèi)容卻不是不一樣的,而且系統(tǒng)在按照 訂單號(hào)查詢(xún)的時(shí)候一直拋錯(cuò),也沒(méi)法正?;卣{(diào),而且事情發(fā)生的不止一次,所以 這次系統(tǒng)升級(jí)一定要解決掉。

經(jīng)手的同事之前也改過(guò)幾次,不過(guò)效果始終不好:總會(huì)出現(xiàn)訂單號(hào)重復(fù)的問(wèn)題, 所以趁著這次問(wèn)題我好好的理了一下我同事寫(xiě)的代碼。

這里簡(jiǎn)要展示下當(dāng)時(shí)的代碼:

??????/**
????*?OD單號(hào)生成
????*?訂單號(hào)生成規(guī)則:OD + yyMMddHHmmssSSS + 5位數(shù)(商戶(hù)ID3位+隨機(jī)數(shù)2位) 22位
????*/

???public?static?String?getYYMMDDHHNumber(String?merchId){
??????????StringBuffer?orderNo?=?new?StringBuffer(new?SimpleDateFormat("yyMMddHHmmssSSS").format(new?Date()));
??????????if(StringUtils.isNotBlank(merchId)){
??????????????if(merchId.length()>3){
??????????????????orderNo.append(merchId.substring(0,3));
??????????????}else?{
??????????????????orderNo.append(merchId);
??????????????}
??????????}
??????????int?orderLength?=?orderNo.toString().length();
??????????String?randomNum?=?getRandomByLength(20-orderLength);
??????????orderNo.append(randomNum);
??????????return?orderNo.toString();
???}
??
??
??????/**?生成指定位數(shù)的隨機(jī)數(shù)?**/
??????public?static?String?getRandomByLength(int?size){
??????????if(size>8?||?size<1){
??????????????return?"";
??????????}
??????????Random?ne?=?new?Random();
??????????StringBuffer?endNumStr?=?new?StringBuffer("1");
??????????StringBuffer?staNumStr?=?new?StringBuffer("9");
??????????for(int?i=1;i??????????????endNumStr.append("0");
??????????????staNumStr.append("0");
??????????}
??????????int?randomNum?=?ne.nextInt(Integer.valueOf(staNumStr.toString()))+Integer.valueOf(endNumStr.toString());
??????????return?String.valueOf(randomNum);
??????}

可以看到,這段代碼寫(xiě)的其實(shí)不怎么好,代碼部分暫且不議,代碼中使訂單號(hào)不重復(fù)的主要因素點(diǎn)是隨機(jī)數(shù)和毫秒,可是這里的隨機(jī)數(shù)只有兩位

在高并發(fā)環(huán)境下極容易出現(xiàn)重復(fù)問(wèn)題,同時(shí)毫秒這一選擇也不是很好,在多核CPU多線程下,一定時(shí)間內(nèi)(極小的)這個(gè)毫秒可以說(shuō)是固定不變的(測(cè)試驗(yàn)證過(guò)),所以這里我先以100個(gè)并發(fā)測(cè)試下這個(gè)訂單號(hào)生成,測(cè)試代碼如下:

????public?static?void?main(String[]?args)?{
????????final?String?merchId?=?"12334";
????????List?orderNos?=?Collections.synchronizedList(new?ArrayList());
????????IntStream.range(0,100).parallel().forEach(i->{
????????????orderNos.add(getYYMMDDHHNumber(merchId));
????????});

????????List?filterOrderNos?=?orderNos.stream().distinct().collect(Collectors.toList());

????????System.out.println("生成訂單數(shù):"+orderNos.size());
????????System.out.println("過(guò)濾重復(fù)后訂單數(shù):"+filterOrderNos.size());
????????System.out.println("重復(fù)訂單數(shù):"+(orderNos.size()-filterOrderNos.size()));
????}

果然,測(cè)試的結(jié)果如下:

生成訂單數(shù):100
過(guò)濾重復(fù)后訂單數(shù):87
重復(fù)訂單數(shù):13

當(dāng)時(shí)我就震驚?了,一百個(gè)并發(fā)里面竟然有13個(gè)重復(fù)的?。?!,我趕緊讓同事先不要發(fā)版,這活兒我接了!

對(duì)這一燙手的山竽拿到手里沒(méi)有一個(gè)清晰的解決方案可是不行的,我大概花了6+分鐘和同事商量了下業(yè)務(wù)場(chǎng)景,決定做如下更改:

  • 去掉商戶(hù)ID的傳入(按同事的說(shuō)法,傳入商戶(hù)ID也是為了防止重復(fù)訂單的,事實(shí)證明并沒(méi)有叼用)
  • 毫秒僅保留三位(縮減長(zhǎng)度同時(shí)保證應(yīng)用切換不存在重復(fù)的可能)
  • 使用線程安全的計(jì)數(shù)器做數(shù)字遞增(三位數(shù)最低保證并發(fā)800不重復(fù),代碼中我給了4位)
  • 更換日期轉(zhuǎn)換為java8的日期類(lèi)以格式化(線程安全及代碼簡(jiǎn)潔性考量)

經(jīng)過(guò)以上思考后我的最終代碼是:

????/**?訂單號(hào)生成(NEW)?**/
????private?static?final?AtomicInteger?SEQ?=?new?AtomicInteger(1000);
????private?static?final?DateTimeFormatter?DF_FMT_PREFIX?=?DateTimeFormatter.ofPattern("yyMMddHHmmssSS");
????private?static?ZoneId?ZONE_ID?=?ZoneId.of("Asia/Shanghai");
????public?static?String?generateOrderNo(){
????????LocalDateTime?dataTime?=?LocalDateTime.now(ZONE_ID);
????????if(SEQ.intValue()>9990){
????????????SEQ.getAndSet(1000);
????????}
????????return??dataTime.format(DF_FMT_PREFIX)+SEQ.getAndIncrement();
????}

當(dāng)然代碼寫(xiě)完成了可不能這么隨隨便便結(jié)束了,現(xiàn)在得走一個(gè)測(cè)試main函數(shù)看看:

????public?static?void?main(String[]?args)?{

????????List?orderNos?=?Collections.synchronizedList(new?ArrayList());
????????IntStream.range(0,8000).parallel().forEach(i->{
????????????orderNos.add(generateOrderNo());
????????});

????????List?filterOrderNos?=?orderNos.stream().distinct().collect(Collectors.toList());

????????System.out.println("生成訂單數(shù):"+orderNos.size());
????????System.out.println("過(guò)濾重復(fù)后訂單數(shù):"+filterOrderNos.size());
????????System.out.println("重復(fù)訂單數(shù):"+(orderNos.size()-filterOrderNos.size()));
????}
????
????/**
????????測(cè)試結(jié)果:?
????????生成訂單數(shù):8000
????????過(guò)濾重復(fù)后訂單數(shù):8000
????????重復(fù)訂單數(shù):0
????**/

真好,一次就成功了,可以直接上線了。。。

然而,我回過(guò)頭來(lái)看以上代碼,雖然最大程度解決了并發(fā)單號(hào)重復(fù)的問(wèn)題,不過(guò)對(duì)于我們的系統(tǒng)架構(gòu)還是有一個(gè)潛在的隱患:如果當(dāng)前應(yīng)用有多個(gè)實(shí)例(集群)難道就沒(méi)有重復(fù)的可能了?

鑒于此問(wèn)題就必然需要一個(gè)有效的解決方案,所以這時(shí)我就思考:多個(gè)實(shí)例應(yīng)用訂單號(hào)如何區(qū)分開(kāi)呢?以下為我思考的大致方向:

  • 使用UUID(在第一次生成訂單號(hào)時(shí)初始化一個(gè))

  • 使用redis記錄一個(gè)增長(zhǎng)ID

  • 使用數(shù)據(jù)庫(kù)表維護(hù)一個(gè)增長(zhǎng)ID

  • 應(yīng)用所在的網(wǎng)絡(luò)IP

  • 應(yīng)用所在的端口號(hào)

  • 使用第三方算法(雪花算法等等)

  • 使用進(jìn)程ID(某種程度下是一個(gè)可行的方案)

在此我想了下,我們的應(yīng)用是跑在docker里面,而且每個(gè)docker容器內(nèi)的應(yīng)用端口都一樣,不過(guò)網(wǎng)路IP不會(huì)存在重復(fù)的問(wèn)題,至于進(jìn)程也有存在重復(fù)的可能,對(duì)于UUID的方式之前吃過(guò)虧,總之吧,redis或DB也算是一種比較好的方式,不過(guò)獨(dú)立性較差。。。

同時(shí)還有一個(gè)因素也很重要,就是所有涉及到訂單號(hào)生成的應(yīng)用都是在同一臺(tái)宿主機(jī)(linux實(shí)體服務(wù)器)上, 所以就目前的系統(tǒng)架構(gòu)我選用了IP的方式。

一下是我的代碼:

import?org.apache.commons.lang3.RandomUtils;

import?java.net.InetAddress;
import?java.time.LocalDateTime;
import?java.time.ZoneId;
import?java.time.format.DateTimeFormatter;
import?java.util.ArrayList;
import?java.util.Collections;
import?java.util.List;
import?java.util.concurrent.atomic.AtomicInteger;
import?java.util.stream.Collectors;
import?java.util.stream.IntStream;

public?class?OrderGen2Test?{

????/**?訂單號(hào)生成?**/
????private?static?ZoneId?ZONE_ID?=?ZoneId.of("Asia/Shanghai");
????private?static?final?AtomicInteger?SEQ?=?new?AtomicInteger(1000);
????private?static?final?DateTimeFormatter?DF_FMT_PREFIX?=?DateTimeFormatter.ofPattern("yyMMddHHmmssSS");
????public?static?String?generateOrderNo(){
????????LocalDateTime?dataTime?=?LocalDateTime.now(ZONE_ID);
????????if(SEQ.intValue()>9990){
????????????SEQ.getAndSet(1000);
????????}
????????return??dataTime.format(DF_FMT_PREFIX)+?getLocalIpSuffix()+SEQ.getAndIncrement();
????}

????private?volatile?static?String?IP_SUFFIX?=?null;
????private?static?String?getLocalIpSuffix?(){
????????if(null?!=?IP_SUFFIX){
????????????return?IP_SUFFIX;
????????}
????????try?{
????????????synchronized?(OrderGen2Test.class){
????????????????if(null?!=?IP_SUFFIX){
????????????????????return?IP_SUFFIX;
????????????????}
????????????????InetAddress?addr?=?InetAddress.getLocalHost();
????????????????//??172.17.0.4??172.17.0.199?,
????????????????String?hostAddress?=?addr.getHostAddress();
????????????????if?(null?!=?hostAddress?&&?hostAddress.length()?>?4)?{
????????????????????String?ipSuffix?=?hostAddress.trim().split("\\.")[3];
????????????????????if?(ipSuffix.length()?==?2)?{
????????????????????????IP_SUFFIX?=?ipSuffix;
????????????????????????return?IP_SUFFIX;
????????????????????}
????????????????????ipSuffix?=?"0"?+?ipSuffix;
????????????????????IP_SUFFIX?=?ipSuffix.substring(ipSuffix.length()?-?2);
????????????????????return?IP_SUFFIX;
????????????????}
????????????????IP_SUFFIX?=?RandomUtils.nextInt(10,?20)?+?"";
????????????????return?IP_SUFFIX;
????????????}
????????}catch?(Exception?e){
????????????System.out.println("獲取IP失敗:"+e.getMessage());
????????????IP_SUFFIX?=??RandomUtils.nextInt(10,20)+"";
????????????return?IP_SUFFIX;
????????}
????}


????public?static?void?main(String[]?args)?{
????????List?orderNos?=?Collections.synchronizedList(new?ArrayList());
????????IntStream.range(0,8000).parallel().forEach(i->{
????????????orderNos.add(generateOrderNo());
????????});

????????List?filterOrderNos?=?orderNos.stream().distinct().collect(Collectors.toList());

????????System.out.println("訂單樣例:"+?orderNos.get(22));
????????System.out.println("生成訂單數(shù):"+orderNos.size());
????????System.out.println("過(guò)濾重復(fù)后訂單數(shù):"+filterOrderNos.size());
????????System.out.println("重復(fù)訂單數(shù):"+(orderNos.size()-filterOrderNos.size()));
????}
}

/**
??訂單樣例:20082115575546011022
??生成訂單數(shù):8000
??過(guò)濾重復(fù)后訂單數(shù):8000
??重復(fù)訂單數(shù):0
**/

最后

代碼說(shuō)明及幾點(diǎn)建議

  • generateOrderNo()方法內(nèi)不需要加鎖,因?yàn)锳tomicInteger內(nèi)使用的是CAS自旋轉(zhuǎn)鎖(保證可見(jiàn)性的同時(shí)也保證原子性,具體的請(qǐng)自行了解)
  • getLocalIpSuffix()方法內(nèi)不需要對(duì)不為null的邏輯加同步鎖(雙向校驗(yàn)鎖,整體是一種安全的單例模式)
  • 本人實(shí)現(xiàn)的方式并不是解決問(wèn)題的唯一方式,具體解決問(wèn)題需要視當(dāng)前系統(tǒng)架構(gòu)具體而論
  • 任何測(cè)試都是必要的,我同事在前幾次嘗試解決這個(gè)問(wèn)題后都沒(méi)有自測(cè),不測(cè)試有損開(kāi)發(fā)專(zhuān)業(yè)性!


瀏覽 45
點(diǎn)贊
評(píng)論
收藏
分享

手機(jī)掃一掃分享

分享
舉報(bào)
評(píng)論
圖片
表情
推薦
點(diǎn)贊
評(píng)論
收藏
分享

手機(jī)掃一掃分享

分享
舉報(bào)

感谢您访问我们的网站,您可能还对以下资源感兴趣:

国产秋霞理论久久久电影-婷婷色九月综合激情丁香-欧美在线观看乱妇视频-精品国avA久久久久久久-国产乱码精品一区二区三区亚洲人-欧美熟妇一区二区三区蜜桃视频 久久只有精品| 懂色一区二区三区免费| 91视频亚洲| 囯产精品宾馆在线精品酒店| 国产精品无码AV| jjzz国产| 婷婷中文网| 一级a免一级a做免费线看内祥| 久久国产精品99久久人人澡| 啊v视频在线| 亚洲精品日韩综合观看成人91| 黄色视频免费观看| 国产乱伦精品视频| 日韩成人激情| 成人精品一区二区三区视频| 久久久久久久| 色情一级A片成人片| 亚洲无码视频观看| 久久精品视频在线观看| 五月综合色| 久久久久久亚洲AV无码专区| 国产精品一区二区毛片A片婊下载| 国产成人无码在线| 日韩色道| AV中文在线观看| 国产又大又黄| 天天做天天爽| 日本国产在线观看| 亚洲69p| 婷婷99狠狠躁天天| 欧美性爱天天操| 国产精品免费观看久久久久久久久| 黃色一級片黃色一級片尖叫声-百度-百 | 肏屄视频网| 无码一区二区高清| 日本道在线视频| 成人综合在线观看| 国产一区二区不卡亚洲涩情| 中文字幕国产在线观看| 蜜臀av网| 性爱91视频| 蜜芽成人精品久久久视频| 国产色婷婷精品综合在线播放 | 男女爱爱动态图| 精品视频在线播放| 婷婷五月丁香五月| 91一区| 色男人的天堂| 不卡一区| 996热| 一区二区三区视频| 国产剧情一区二区av在线观看| 国产精品无毛五区六区| www.天天射视频| 青青草免费在线视| 黄色福利网址| www99| 欧美日韩加勒比| 日韩无码中文字| 9l蝌蚪PORNY中文| 91操操操| 精品国产香蕉| a黄色视频| 大地影视官网第三页入口| 嫩BBB搡BBB搡BBB搡| 男人在线天堂| 国产aⅴ激情无码久久久无码| 日本亚洲国产| 蜜芽成人精品久久久视频| 色婷婷亚洲色| 狠狠操夜夜操| 欧美激情久久久| 嫩BBB槡BBBB槡BBBB二一| 久久老女人| 国产三级片91| 成人无码免费毛片| 曰逼视频| 男人天堂手机在线| 成人亚洲视频| 国产av中文字幕| 人妻视频在线| 99精品视频免费观看| 免费操逼网站| 男女操逼视频网站免费| 亚洲wwwwww| 国产高潮视频在线观看| 东京热av一区二区| 精品一区三区| 国产黄色视频在线看| 久久久久无码国产精品不卡| 国产一级黄色录像| 一级黄色电影在线观看| 91视频久久| 成人超碰在线| 青青青在线| 老司机精品视频在线观看| 91精品91久久久中77777| 91精品国产乱码久久| 日韩群交视频| 色欲网址| 黄页网址在线观看| 中文字幕精品亚洲熟女| 亚洲h| 99热8| 淫乱骚穴| 国产卡一卡二在线观看| 中文字幕在线视频无码| 日韩日韩日韩| 波多野结衣亚洲视频| 成人黄色免费观看| 五月精品| 69久蜜桃人妻无码精品一区| 日韩AAA在线| 69亚洲视频| 91免费观看网站| japanese在线观看| 男人的天堂色婷婷| 伊人视频在线观看| 狠狠狠狠操| 国产精品久久777777| 亚洲猛男操逼欧美国产视频| 久久精品视频在线免费观看| 国语精品自拍| 精品视频在线观看免费| 久久久久久久精| 精品不卡| 西西444www大胆高清图片| 夜夜嗨av无码一区二区三区 | 岛国av片| 成人大香蕉视频| 一级a看片在线观看| 无码秘人妻一区二区三-百度| 成人无码视频在线观看| 成人一级A片| 无码专区在线看v| 免费看黄片视频| 日本一级特级毛片视频| 一级a免一级a做免费线看内裤的注意事项 | 91黄网站在线观看| 三级片男人的天堂| 成人动漫一区二区| 国产成人av在线播放| 青青草av| 人人草人人看人人摸| 97超碰人人摸| 超碰婷婷| 91香蕉麻豆| 男女激情网站| 色偷偷综合| 中文字幕乱在线| 韩国三级HD久久精品| av黄片| 亚洲中文AV| av一区二区三区| 一本免费视频| 91爱爱·com| 色欲综合网| 中文字幕亚洲在线观看| 国产福利视频| 蜜桃无码视频小说网站| 一级免费黄色视频| 久久99久久99精品免视看婷婷| 在线日韩视频| 天天日很很日| 午夜传媒一区二区三区| 91av免费在线观看| 性爱国产| 电影豹妹香港版| 成人做爰黄级A片免费看土方 | 99美女精品视频| 九色蝌蚪9l视频蝌蚪9l视频成人熟妇 | 日韩三区在线| 国产精品成人免费视频| 亚洲精品97久久中文字幕| 中文字幕在线观看一区| 麻豆视屏| H网站在线观看| 成人无码区免费A片久久| 人妻无码免费视频| 特级毛片AAAAAA蜜桃| 在线观看亚洲无码视频| 精品久久免费视频| 91高潮| 中文字幕不卡| 天天拍夜夜爽| 免费黄色视频在线| 熟妇自拍| 最新中文字幕视频| 欧美亚洲精品在线| 亚洲精品人妻在线| 国产精品久久久久久久久久乐趣播| 夜夜夜久久久| 人成无码| 中文字幕一区二区6页| 国产香蕉视频| 久久国产一区二区| 国产精品成人免费久久黄AV片| 99热欧美| 国产一级A片视频| 亚洲免费看黄| 三级网站大全| 详情:绿帽夫妻多人运动开淫啪-91n| 91精品国产乱码久久久久| 可以免费看的AV| 国产青青| 亚洲国产女人| 久久看片| 欧美视频在线一区| 久久视频理论| 亚洲综人网| 久久久久久久精| 欧美日韩在线免费观看| 欧美男女操逼视频| 日韩成人无码专区| 精品免费视频| 操女人的网站| A片动漫| 18禁在线| 日本久久不卡| 久激情内射婷内射蜜桃欧美一级 | 黄色一级大片| 91精品少妇| 日韩av在线电影| 国产一级二级三级| 怡红院麻豆| 精品77777| 国产成人AV在线| 5252a我爱haose01我愿| 高潮免费视频| 大香蕉中文在线| 亚洲成人电影天堂| 一起草在线视频| 精品国产乱子伦一区二区三区最新章 | 乱伦性爱视频| 国产在线观看mv免费全集电视剧大全| 色情一级AA片免费观看| 无码在线免费观看视频| 中文字幕一级片| 黄色操逼| 婷婷激情综合| 亚洲一区二区免费视频| 一区二区三区黄色| 久色无码| 国产成人av在线观看| 青青草青娱乐| 亚洲一区黄色| 精品视频第一页| 久久久一区二区| 操鸡视频在线观看| 欧美三级电影在线观看| 最美孕交vivoestv另类| 在线视频久| 日本黄色视频在线播放| 亚洲色婷婷五月| 中文字幕国产AV| 天天日综合| a免费视频在线观看| 国产女人18毛片水18精| 日本女优婷婷青青草原| 日韩免费精品视频| 日韩中文字幕AV| 国产一区二区免费在线观看| 粉嫩小泬BBBB免费看-百度| 青青草无码成人AV片| 亚洲偷拍视频| 国产视频你懂的| 成人视频高清无码| 91第一页| 强伦轩人妻一区二区三区70后| 91亚洲国产精品| 人人妻人人爽人人澡人人精品| 日韩主播在线| 日韩欧美精品18| 熟女导航| 狼友自拍| 久久久三级| 动漫人物插画动漫人物的视频软件| 免费69视频| 精品AV无码一区二区三区| 一本道综合网| 日韩无码精品视频| 中文字幕精品视频在线| 亚洲精品大片| 国产性受XXXXXYX性爽| 国产在线视频导航| 国产精品可站18| 美女操逼图| 日本a视频| 欧美日韩久久久| 在线无码免费观看| 欧美一级高清片免费一级a| 亚洲视频免费在线| 亚州AV在线| 高清无码中文字幕在线观看| 男女网站在线观看| AV黄色片| 午夜黄片| 亚洲综合在线播放| 欧美肏屄视频| 美女做爱视频网站| 天堂综合网| 人人综合网| 影音先锋三级片| 黄色成人大片| 五月婷婷中文| 91偷拍与自偷拍精品无码| 国产成人无码免费看片| 国产一级A片免费看| 午夜久久久久久久久久久久91| 日韩精品一区二区三区四在线播放 | 26uuu国产| 91乱子伦国产乱子伦| 99精品视频在线免费观看| 青草91| 欧美国产另类| 狠狠干影院| 欧美精品在线免费观看| 91丨国产丨精品丨丝袜| 91操操操| 中文字幕日韩在线视频| 日韩午夜无码| 97碰碰碰| 五月婷婷视频在线观看| 婷婷久久综合久色综| 超碰人人人人人人人人| 亚洲成人在线网站| 午夜试看120秒体验区的特点| 男人的天堂2019| 国产探花自拍| 亚洲AV第二区国产精品| 99热精品免费观看| 嫩BBB嫩BBB嫩BBB| 北条麻妃91人妻互换| 99国产在线观看| 九色PORNY国产成人| 婷婷五月丁香六月| 特级西西444WWW高清| 国产精品乱伦| 午夜AV在线免费观看| 色欲影视插综合一区二区三区| 成人爱爱免费视频| 五月伊人婷婷| 伊人九九热| 特级大毛片| AV免费在线播放| 精品国产AV色一区二区深夜久久| 精品99视频| 日本有码中文字幕| 成人性爱AV| 天堂中文在线播放| 国产在线激情| 国产伦精品一区二区三区视频女| 特黄AAAAAAAA片视频| 日本三级黄色| 在线看V片| 噜噜噜在线| 人妻久操| 大香蕉久操| 永久m3u8在线观看| 另类天堂| 日本一区二区三区在线播放| 青娱在线视频| 欧美三级欧美成人高清| 一本久久综合亚洲鲁鲁五月天| 人妻视频网| 一区二区三区www污污污网站| 免费v片| 69欧美| 日韩黄色A级片| 激情视频在线免费观看| 日韩欧美中文字幕视频| 欧美一级黄色电影| 亚洲在线中文| 69久久久久久久久久| 91成人无码看片在线观看网址 | 97精产国品久久蜜桃臀| 精品国产91| 亚洲一级黄色大片| 欧美一区| 手机看片1024旧版| AV在线大香蕉| 女人天堂AV| 日韩免费黄色视频| 欧洲肥胖BBBBBBBBBB| 日韩1区| 水蜜桃视频在线播放| 操逼网站视频| 中文字幕成人在线观看| 豆花无码视频一区二区| 国产欧美性爱| 91久久久久久久18| 丁香色综合人妻| 五月婷婷激情综合| 天天射中文| JUY-579被丈夫的上司侵犯后的第7天,我 | 好叼操| 一级特黄录像免费播放下载软件| 综合激情五月婷婷| 啪啪网站免费| 91精品久| 黑丝一区| 成人av一区| 在线播放亚洲无码| 99热在线观看| 91欧美精品| 欧美一级片免费观看| 色欲狠狠躁天天躁无码中文字幕| www.97超碰| 久久久久久黄片| 午夜福利院| 在线网址你懂的| 国产黄色一区| 在线第一页| 在线操B| 在线观看免费高清无码| 人妻无码免费视频| 午夜69成人做爱视频网站| 苏妲己一级婬片A片| 久久高清无码视频| 男人天堂久久| 中文字幕综合在线| 好叼操| 国产永久精品| 人妻体内射精| 久久人人操| 精品一区二区久久久久久久网站 | 亚洲人妻性爱| 中文字幕AV在线观看| 四虎成人电影| 吴梦梦一区二区在线观看| 国产传媒三级| 一本色道久久综合无码人妻软件 | 国产精品内射视频| 久久久精品无码| 欧美三级网| 成人免费视频一区二区| 天堂中文在线a| 91在线精品秘一区二区黄瓜| 青娱乐伊人| 国产av日韩av| 男女操逼视频网站免费观看| 人人草在线视频| 在线看片av| 日韩一区二区免费看| 麻豆乱码国产一区二区三区| 人人操人人摸人人看| 久久久久久久极品内射| 欧美成人毛片AAAAAA| 婷婷色网站| 欧美69p| 国产成人精品无码片区在线观91| 亚洲av中文| 插插插菊花综合网| 日韩AV网站在线观看| 日本中文字幕在线观看| 久久这里都是精品| 乱伦AV片| 欧美性爱无码在线| 日韩中文在线观看| 五月深爱| 国产欧美成人在线| 伊人精品大香蕉| 天堂中文字幕在线观看| 久久婷婷综合网| 亚洲高清视频在线播放| 免费无码在线看| 人妻视频网| 日韩无码性爱视频| 黄色A毛片| 超碰天天干天天摸| 麻豆免费视频| 亚洲AV性爱| 欧美操逼操| 親子亂子倫XXXX| 爱爱无码| 成人无遮挡| 免费成人视频在线观看| 亚洲午夜精品久久久久久APP| 看毛片的网站| 国产三级午夜理伦三级| 久久国产亚洲| 一本色道久久综合狠狠躁| 黄色日逼视频| 亚洲视频免费完整版在线播放| 欧美成人精品网站| 性性性性性XXXXX| 中文字幕在线观看完整av| 亲子乱AⅤ一区二区三区| av无码免费观看| 无码蜜桃一区二区| 日韩精品久| 一区二区三区在线观看| 国产精品色8| 欧美成人高清无码| 91av在线观看视频| 国产性爱一级片| 精品操逼| 丁香五月天网站| 五月婷婷色色色| 成人网站中文字幕| 黄色片久久久| 一本道无码在线观看| 国产一级a一级a免费视频| 成人无码免费看| 五月天无码免费视频| 麻豆视频在线免费观看| 亚洲午夜剧场| 中国字幕在线观看韩国电影| 国产在线毛片| 波多野结衣视频免费在线观看| 国产一区免费视频| 国产av资源| 日韩免费毛片| 亚洲AV无码成人精品区大猫| 九九韩剧网最新电视剧免费观看| 肏屄综合网| 艹b视频在线观看| 伊人激情网| 一本色道久久综合亚洲二区三区| 69久久久| 99精品视频16在线免费观看| 欧美日韩黄色极品| 在线观看2区| AV毛片| 四虎无码| 九九黄片| a级网站| 成人A片在线| 九九美女视频| 一级黄色在线观看| 亚洲日本中文字幕| 亚洲sese| 欧美精品区| 国产黄色视屏| 99黄网| 成人做爰100片免费着| 日韩高清无码免费看| 97中文字幕| 亚洲无码高清视频在线观看| 天天肏天天干| 国产亚洲久一区二区三区| V天堂| 日本久久久久| 免费无码一区二区三区四区五区| 淫荡少妇美红久久久久久久久久| 国产高清免费视频| 五月激情啪啪| 精品国产精品| 国产第一精品| 91麻豆视频在线观看| 久久99高清| 影音先锋女人资源| 2012天天夜夜| 精品久久国产| 欧美日韩精品在线观看| 7799精品| 97自拍| 黄色免费看视频| 久久久久久久久久国产精品| 亚洲男人av| 日本大香蕉在线视频| 天天干夜夜操熟女| 亚洲视频在线免费观看| 影音先锋成人网| 大香蕉久久爱| 极品人妻疯狂3p超刺激| 欧美肉大捧一进一出小说| 嫩BX区二区三区的区别| 亚洲三级电影在线观看| 人人妻日日摸狠狠躁视频| 天天干天天射天天| www.久久网| 成人AV免费| 人人色人人色| 自拍超碰| 欧美午夜福利视频| 国产精品91视频| 最近中文字幕mv第三季歌词| 西西人体444rt高清大胆模特| 国产操b视频| av超碰在线| 亚洲精品国产精品国自产网站| 日韩成人AV电影| 亚洲日韩在线视频播放| 电家庭影院午夜| 久久婷婷久久| 日日撸视频| 成人片成人网久久蜜桃臀| 五月天激情网站| 亚洲无码性爱| jizz在线观看视频| av免费在线播放| 人人妻人人爽人人精品| 丰满少妇一区二区三区| 色婷婷在线观看视频| 国内自拍无码| 麻豆AV无码| 水蜜桃视频在线| 人人干天天操| 伊人久久香蕉网| 91蝌蚪视频在线播放| 欧美亚洲精品在线| 黑人aV| av无码av天天av天天爽| 国产免费AV片在线无码| 最新激情网站| 国产一级黄色毛片| 俺也去电影| 中文字幕高清无码在线播放| 成人做爰100部片视频| 天天插在线视频| 久久久3| 色青娱乐| 成人播放视频| 免费黄色网址啊不卡| 中文字幕无码视频| 亚洲无码影视| 内射视频网站| 天天操操| 波多野结衣网站| 亚洲精品成人| 江苏妇搡BBBB搡BBBB-百度| 国产AV资源| 中文字幕日韩精品人妻| 上海熟搡BBB搡BBBB| 亚洲小电影| 搡BBB搡BBBB搡BBBB-百度| 91香蕉视频| 久久香蕉网| 一本一道久久综合狠狠躁牛牛影视| 天天做天天干| 人人爱人人摸| 日韩aaa| 久久久久久精品国产三级| 无限高潮| www.青青草视频| 性爱网站免费看| 婷婷手机在线| 中国女人如毛片| 久久久久久久久久久久久久久久久久免费精品分类视频 | 黄色电影地址| 成人日韩AV| 大肉大捧视频免费观看| 亚洲欧洲高清无码| 一区二区三区四区av| 免费无码毛片一区二区A片| 一本色道综合久久欧美日韩精品| 国内精品久久久久久久久98| 东方av在线播放| 亚洲日韩欧美中在线| 老司机视频在线视频18| 人人色人人操人人干| 3d动漫精品H区XXXXX区| 久久精品国产精品| 亚洲福利网站| 成人黄网免费观看视频| 亚洲在线视频播放| 无码一二三区| 欧美A片在线观看| 插逼网站| 欧美九九| 巨乳无码噜噜噜久久久| 亚洲天堂av在线免费观看| 裸体黄色一极大片| 日本一区二区三区四区在线观看| 在线观看一级片| 人妻人操| 久草免费福利| 国产av黄| 欧美激情片| 成人亚洲A片V一区二区三区蜜月 | 男人天堂网AV| 在线观看中文字幕无码| 免费看无码| 午夜无码三级| 亚洲人妻在线播放| 青青色在线观看| 免费乱伦视频| 猫咪AV成人永久网站| www.大鸡巴| 久操影视| 日韩午夜欧美精品一二三区| 成人性生活影视av| 一级aa视频| 国产色婷婷精品综合在线播放| 亚洲精品秘一区二区三区影| 性淫影院| 亚洲免费黄色视频| 久久黄色网址| 日韩城人免费| 91在线看| 88海外华人免费一区| 婷婷欧美色图| 内射网站在线观看| 九九九九九精品| 日日操网| 91人妻最真实刺激绿帽| 自拍偷拍一区| 中文字幕网站| 黄色视频免费在线观看| 国产无码成人电影| 国产人妻人伦精品1国产丝袜 | 老骚逼| 五月激情综合| 一本一道久久a久久精品蜜桃| 白虎高清无码大尺度免费在线观看| 天天天天天天天天干| 三级片AAAA| 91丝袜在线| 大香蕉免费在线观看| 大香蕉伊人AV| 成人黄色一级片| 91AV在线播放| 色天使色天堂| 麻酥酥在线视频| 一区二区三区水蜜桃| 欧美国产视频| 久久精品一区二区三区蜜芽的特点| 亲子乱AⅤ一区二区三区| 日本Sm/调教/捆绑/紧缚| 午夜无码在线观看视频| 超碰日日夜夜| 久久国产精品精品国产色婷婷| 狼友视频首页| 国产一级片视频| 九哥操逼视频| 日韩高清无码免费| 老熟女AV| 国产SM视频| 午夜天堂精品久久久久9| 凹凸熟女凹凸BBWBBW| www.黄色在线观看| 日本操逼网| 一级成人片在线观看| 超碰人妻人人操| 五月停亭六月,六月停亭的英语| 免费日本黄色| 淫香淫色综合网| 蜜臀久久99精品久久久巴士| 国产乱伦精品视频| 操逼999| 日韩欧美成人在线视频| 亚洲乱伦中文字幕| 涩涩99| 韩国中文字幕HD久久精品| 中文字幕无码综合| 强伦轩一区二区三区在线观看| 成人三级毛片| 一级a片在线观看| 欧美三级片网站| 爱逼爱操| 久久九九电影| 黄色大片免费在线观看| 99热自拍| 甘肃WBBBB搡wBBBB| 日韩AV一区二区在线观看| 99精品视频免费在线观看| 中文无码字幕在线| 色呦呦中文字幕| 99性爱视频| 白丝在线观看| 亚洲AV无码国产精品久久不卡| 欧美A黄| 国产熟女乱伦视频| 成人AV免费| 五月丁香婷婷在线观看| 日韩性爱A片| 五月天婷婷综合| 免费亚洲视频| 另类视频区| 无码一区视频| 日本无码免费视频| 日韩精品第一页| 久久双飞| 超碰青青青| 777视频在线观看| 大肉大捧一进一出两腿| 婷婷综合缴情亚洲另类在线 | 欧美性受XXXX黑人XYX性爽一| 午夜性爱视频| 高清无码在线观看免费| 91白浆| 91一区在线观看| 青久久久| 麻豆成人无码精品视频| 欧美亚洲天堂| 成人777777| 久久国产一区二区三区| 操人妻| 伊人成人在线| 日韩在线视频二区| 亚洲精品视频免费观看| 久久女人视频| 最新版本日本亚洲色| 伊人久久大香蕉国产| 成人日皮视频| 中文字幕乱视频| 很很日| 北条麻妃中文字幕旡码| 偷拍二区| 日日天天| 羞羞AV| 婷婷五月国产| 正在播放国产精品| 国产精品久久AV电影| 91免费观看网站| 久久一| 午夜av无码| 丰满无码| 国产操逼大片| 亚洲av电影网| 国产91视频| 国产AV电影网| 欧美激情爱爱| 日本精品人妻无码77777| 中文字幕精品久久久久人妻红杏Ⅰ| 超碰77| 少妇搡BBBB搡BBB搡视频一级| 国产婷婷久久Av免费高清| 久久久久女人精品毛片九一| 99人妻在线| 免费观看无码视频| 一级a一级a爰片免费免免在线| 坏男人内射老太太| 亚洲色欧美| 天天射夜夜骑| 韩国成人无码| 一区二区三区四区免费观看| 熊猫AⅤ| 免费一级网站| 亚洲一区在线免费观看| 日韩人妻无码精品| 青娱乐亚洲视频在线| www.狠狠爱| 日韩av在线免费观看| 嫩草A片www在线观看| 中文字幕国产AV| 91精品国产综合久久久蜜臀酒店| 精品久久久999| 高清无码日本| 国产粉嫩| 国产青草视频在线观看| 无码内射在线播放| 亚洲日韩久久| 二区三区在线观看| AAA久久| 色天堂影院| 黄页免费无码| 逼特逼视频在线| 六月丁香五月婷婷| 国产精品视频导航| 精品成人免费视频| 亚洲性爱在线| 亚洲中文字幕日韩精品| 18禁网站禁片免费观看| 亚洲日本黄色网址| 伊人久久成人| 欧美亚洲激情| 成人网一区二区| 在线免费看黄视频| 中文字幕一区二区三区四区50岁 | 久热在线资源福利站| 青娱乐在线视频精品| 中文字幕成人电影| 一起操在线视频| 欧美性夜黄A片爽爽免费视频| 国产精品黄色| 免费视频爱爱| 亚洲视频中文字幕| 国产特黄| 波多野结衣无码在线视频| 欧美a视频| 鲁鲁鲁鲁鲁鲁鲁777777| 久久久久无码精品国产91福利| 婷婷五月在线| 欧美不卡一区二区| 成人午夜视频在线观看| 日韩99热| 亚洲激情内射| 成人超碰在线| 亚洲国产精品精JIZZ老师| 日韩精品成人无码免费| 免费一级婬片AAA片毛片A级| 成人网站www污污污网站公司 | 人妻大香蕉| 操鸡视频在线观看| 中文字幕免费视频在线观看| 丁香五月天在线播放| 国产操逼图| 欧美黄片在线免费观看| 久久久WWW成人免费无遮挡大片 | 少妇久久久久久久久久| 91在线网址| 日韩一级一片内射视频4K| 国产免费内射| 久久理伦| 国产伦精品一区二区三区色大师| 熟睡侵犯の奶水授乳在线| 亚洲男人天堂| 日本免费不卡视频|