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

記一次訂單號的重復(fù)事故

共 5647字,需瀏覽 12分鐘

 ·

2020-09-26 16:22


點擊上方藍色“程序猿DD”,選擇“設(shè)為星標(biāo)”
回復(fù)“資源”獲取獨家整理的學(xué)習(xí)資料!
作者 |?funnyZpC
來源 |?cnblogs.com/funnyzpc/p/13541713.html
去年年底的時候,我們線上出了一次事故,這個事故的表象是這樣的:
系統(tǒng)出現(xiàn)了兩個一模一樣的訂單號,訂單的內(nèi)容卻不是不一樣的,而且系統(tǒng)在按照 訂單號查詢的時候一直拋錯,也沒法正常回調(diào),而且事情發(fā)生的不止一次,所以 這次系統(tǒng)升級一定要解決掉。
經(jīng)手的同事之前也改過幾次,不過效果始終不好:總會出現(xiàn)訂單號重復(fù)的問題, 所以趁著這次問題我好好的理了一下我同事寫的代碼。
這里簡要展示下當(dāng)時的代碼:
??????/**
????*?OD單號生成
????*?訂單號生成規(guī)則:OD + yyMMddHHmmssSSS + 5位數(shù)(商戶ID3位+隨機數(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ù)的隨機數(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);
??????}
可以看到,這段代碼寫的其實不怎么好,代碼部分暫且不議,代碼中使訂單號不重復(fù)的主要因素點是隨機數(shù)和毫秒,可是這里的隨機數(shù)只有兩位
在高并發(fā)環(huán)境下極容易出現(xiàn)重復(fù)問題,同時毫秒這一選擇也不是很好,在多核CPU多線程下,一定時間內(nèi)(極小的)這個毫秒可以說是固定不變的(測試驗證過),所以這里我先以100個并發(fā)測試下這個訂單號生成,測試代碼如下:
????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("過濾重復(fù)后訂單數(shù):"+filterOrderNos.size());
????????System.out.println("重復(fù)訂單數(shù):"+(orderNos.size()-filterOrderNos.size()));
????}
果然,測試的結(jié)果如下:
生成訂單數(shù):100
過濾重復(fù)后訂單數(shù):87
重復(fù)訂單數(shù):13
當(dāng)時我就震驚?了,一百個并發(fā)里面竟然有13個重復(fù)的!??!,我趕緊讓同事先不要發(fā)版,這活兒我接了!
對這一燙手的山竽拿到手里沒有一個清晰的解決方案可是不行的,我大概花了6+分鐘和同事商量了下業(yè)務(wù)場景,決定做如下更改:
  • 去掉商戶ID的傳入(按同事的說法,傳入商戶ID也是為了防止重復(fù)訂單的,事實證明并沒有叼用)
  • 毫秒僅保留三位(縮減長度同時保證應(yīng)用切換不存在重復(fù)的可能)
  • 使用線程安全的計數(shù)器做數(shù)字遞增(三位數(shù)最低保證并發(fā)800不重復(fù),代碼中我給了4位)
  • 更換日期轉(zhuǎn)換為java8的日期類以格式化(線程安全及代碼簡潔性考量)
經(jīng)過以上思考后我的最終代碼是:
????/**?訂單號生成(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)然代碼寫完成了可不能這么隨隨便便結(jié)束了,現(xiàn)在得走一個測試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("過濾重復(fù)后訂單數(shù):"+filterOrderNos.size());
????????System.out.println("重復(fù)訂單數(shù):"+(orderNos.size()-filterOrderNos.size()));
????}
????
????/**
????????測試結(jié)果:?
????????生成訂單數(shù):8000
????????過濾重復(fù)后訂單數(shù):8000
????????重復(fù)訂單數(shù):0
????**/

真好,一次就成功了,可以直接上線了。。。
然而,我回過頭來看以上代碼,雖然最大程度解決了并發(fā)單號重復(fù)的問題,不過對于我們的系統(tǒng)架構(gòu)還是有一個潛在的隱患:如果當(dāng)前應(yīng)用有多個實例(集群)難道就沒有重復(fù)的可能了?
鑒于此問題就必然需要一個有效的解決方案,所以這時我就思考:多個實例應(yīng)用訂單號如何區(qū)分開呢?以下為我思考的大致方向:
  • 使用UUID(在第一次生成訂單號時初始化一個)

  • 使用redis記錄一個增長ID

  • 使用數(shù)據(jù)庫表維護一個增長ID

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

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

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

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

在此我想了下,我們的應(yīng)用是跑在docker里面,而且每個docker容器內(nèi)的應(yīng)用端口都一樣,不過網(wǎng)路IP不會存在重復(fù)的問題,至于進程也有存在重復(fù)的可能,對于UUID的方式之前吃過虧,總之吧,redis或DB也算是一種比較好的方式,不過獨立性較差。。。
同時還有一個因素也很重要,就是所有涉及到訂單號生成的應(yīng)用都是在同一臺宿主機(linux實體服務(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?{

????/**?訂單號生成?**/
????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("過濾重復(fù)后訂單數(shù):"+filterOrderNos.size());
????????System.out.println("重復(fù)訂單數(shù):"+(orderNos.size()-filterOrderNos.size()));
????}
}

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

最后

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

往期推薦

這個需求很簡單,明天上線沒問題吧?要不要懟回去?

最最最全面的Java異常面試及解答

GitHub上最勵志的計算機自學(xué)教程

Spring Boot 多版本更新,緊急修復(fù) RFD 安全漏洞

推薦一個生成后端模擬數(shù)據(jù)的懶人工具:lazy-mock

Java 15 轉(zhuǎn)正了,國內(nèi)幾大互聯(lián)網(wǎng)公司均有貢獻,其中騰訊最為突出!


我們在星球聊了很多深度話題,你不來看看?
我的星球是否適合你?
點擊閱讀原文看看我們都聊過啥?
瀏覽 61
點贊
評論
收藏
分享

手機掃一掃分享

分享
舉報
評論
圖片
表情
推薦
點贊
評論
收藏
分享

手機掃一掃分享

分享
舉報

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

国产秋霞理论久久久电影-婷婷色九月综合激情丁香-欧美在线观看乱妇视频-精品国avA久久久久久久-国产乱码精品一区二区三区亚洲人-欧美熟妇一区二区三区蜜桃视频 香蕉91视频| 日韩一级黄色电影| 国产爱搞| 国精品伦一区一区三区有限公司| 天天操夜操| 亚洲大片免费看| 人人人人人人人人操| 日韩1234区| 日本成人免费电影| 日本麻豆| 久久伊人中文字幕| 免费看日韩视频| 中文字幕AV在线播放| 特级特黄AAAAAAAA片| 国产一区二区三区免费视频| 九九操逼| 国产av一级片| 欧美老熟女18| 亚洲黄色一区| 中国一级黄色毛片| 欧美日韩性爱网站| 精品视频在线观看免费| 3D动漫精品一区二区在线播放免费 | 亚洲色热| 欧美黄色片网站| 亚洲少妇免费| 欧美特级视频| 竹菊传媒一区二区三区| 中文字幕av一区| 91人人妻人人澡人人爽人人精品 | 久久久无码精品亚洲| 久久久久久久久免费看无码| 亚洲无码大全| 日本爱爱免费| 91网站免费在线观看| 无码探花| av天天看| 免费黄片视频在线观看| 亚洲中文免费视频| 深夜福利18| 国产精品蜜| 婷婷精品国产一区二区三区日韩| 一区二区三区四区免费看| 无码内射在线播放| 激情婷婷综合| 国产AV小电影| 一区二区三区无码高清| 桃色五月天| 久久久久无码精品国产91福利 | AV网站在线免费观看| 只有精品| 亚洲无码手机在线观看| 日韩黄片免费看| 亚洲偷拍网| 国产V在线观看| 91丨九色丨老农村| 四虎av在线| 婷婷五月天综合| 亚洲欧洲成人在线| 国产性爱网址| 偷拍第一页| 嫩草在线观看| 九九成人网站| 欧美亚韩一区二区三区| 大香蕉福利导航| 国产拍拍拍| 91视频在线看| 成人精东影业JDAV3密友| 小草久久95| 欧美欧美欧美| 免费一级欧美片在线观看| 黄总av| 尤物av在线| 国产精品亚洲一区| 亚洲熟妇在线观看| 成人视频A片| 精品成人AV| 国产成人精品777777| 午夜天堂精品久久久久9| 成人福利在线观看| 神马午夜秋霞不卡| 秋霞中文字幕| 伊人久色| 国产无遮挡又黄又爽免费网站 | 北条麻妃A片在线播放| 2017天天干天天射| 一级免费爱爱| 性福利导航| 免费看黄的网站在线观看| 欧美综合第一页| 亚洲黄色影视| 97人妻一区二区三区| 一本色道久久综合亚洲精品久久| 久久精品视频免费| 久久久婷婷| 在线一级A片| 黄网91| 黄片网站入口| 国产A级毛片久久久久久| 国产成人精品777777| 亚洲秘av无码一区二区| 黄色毛片一级| 免费看黄片,在线观看| 国产www在线观看| 成人A片免费视频| 亚洲av中文| 香蕉久久网| 在线观看黄网| 最好看的MV中文字幕国语电影| 河南熟妇搡BBBB搡BBBB| 精品日韩在线视频| 在线观看中文字幕视频| 中文字幕婷婷五月天| 亚洲在线观看免费| 夜色88V精品国产亚洲| 成人精品秘免费波多野结衣| 午夜福利成人网站| AV中文字幕在线播放| 欧美动态视频| 国产成人精品一区二区三区在线| 一级免费视频| 国产一区二区三区18| 亚洲图片激情乱伦小说| 亚洲va欧美va天堂v国产综合 | 日韩三级在线免费观看| 狼友视频免费观看| 小黄片免费看| 精品一区二区三区四| 日韩一级片免费| 国产三级片在线观看视频| 成人黄色av| 国产精品视频福利| 水蜜桃网址| 黄色国产| 韩国日本久久| 中文字幕自拍偷拍| 操人在线观看| 免费自拍视频| 亚洲欧美成人网站| 免费91视频| 天天插夜夜操| 日韩三级毛片| 少妇三区| 女女女女女女BBBBBB手| 日批无码| 囯产精品久久久久久久久免费无码| 中文字幕无码日韩| 狠狠草视频| AV在线免费播放| 婷婷丁香五月激情一区综合网| 免费操逼网址| 亚欧黄色| 国产成人精品久久| 国产男女无套免费视频| 黄色影片在线观看| 嫩BBB嫩BBB嫩BBB| 免费岛国av大片| 91久久性奴调教| 一区二区三区四区无码在线| 三级片亚洲无码| 日本熟妇高潮BBwBBwBBw| 天天色色综合| 国产色情性黄片Av网站| 色婷婷视频一区二区| 亚洲天堂高清无码| 操B久久| 欧美色噜噜| 亚洲一区AV| 黄色片网站| 性A免费在线播放| 欧美黄片在线免费看| 国产xxxx视频| 9热精品| 中文字幕日韩av| 狠狠干网| av字幕网| 熟女视频网| 国产午夜激情视频| 欧美三级大片| 操中国老女人| 国产粉嫩小泬白浆18p| h成人在线| 婷婷色五月激情| 国产日韩欧美在线播放| 国产高清无码自拍| aaa少妇| 无码日批| 无码成人在线| 日本中文字幕在线播放| 电影91久久久| 日韩性AV| 亚洲.www| 豆花av在线| 九九热精品视频在线观看| 亚州精品无码| 大鸡吧大香蕉| 日日干AV| 婷婷五月久久| 色色色综合| 国产三级高清无码| 中文字幕精品视频在线| 91人妻人人澡人人澡人人精品| www.偷拍| 超碰老熟女| 538在线观看| 亚洲免费观看高清完整版| 9i看片成人免费视频| 国产精品电影大全| 欧美日韩中文字幕无码| 四虎在线观看视频| 国产亲子乱婬一级A片借种| 又大又黄又爽| 91精品国产乱码久久久竹菊| 水多多成人网站A片| 亚洲成人在线免费| 色欲无码| 亚洲中文字幕第一页| 91香蕉国产成人App| 婷婷五月中文| 水蜜桃视频免费观看| 国产成人久久| 五月天婷婷在线观看视频| 日韩日韩日韩日韩| 日韩高清中文字幕| AV在线不卡中文| 亚洲精品aaa| 蜜臀99久久精品久久久懂爱| 亚洲免费视频在线播放| 国产精品探花熟女AV| 国产乱论视频| 色婷婷色99国产综合精品| 欧美mv日韩mv国产网站| 久艹在线视频| 中文字幕久热| 精品91| 久久久久国产精品视频| 91人妻人人澡人人爽人人爽| 国产理论视频| 四虎影院中文字幕| 青青草免费在线观看| 无码不卡在线观看| 日本三级片视频不卡| 天天日天天操天天爽| 东北女人操逼视频| 国产成人久久| 国产91在线拍揄自揄拍无码九色| 日日操日日| 色婷婷久久综合久色| 四库影库| 福利国产在线| 免费看欧美成人A片无码| 国产成人AA| 波多野结衣无码在线视频| 91精品丝袜久久久久久久久久粉嫩| 亚洲激情性爱| 午夜视频免费| 三级在线视频| 操逼网站在线| NP玩烂了公用爽灌满视频播放| 免费无码一区二区三区| 日屄免费视频| 午夜精品人妻无码| 欧美日韩激情| 人人操天天干| 欧美日韩毛片| 国产精品123区| 精品国产AV无码一区二区三区| 欧美在线黄片| 少妇精品无码一区二区免费视频| 国产成人精品a视频一区| AV天堂无码| 一级A片免费黄色视频| 一区二区三区四区| 亚洲精品无码久久久| 中文字幕韩日| Av毛片| 欧美激情综合色综合啪啪五月| 波多野结衣99| 操人视频在线观看| www.日韩| 操BBB操BBB| 69式荫蒂被添全过程频| 在线免费小黄片| 91鲁| 黄色片网站| 欧美日韩人妻高清中文| 91在线无精精品秘白丝| 欧美精品久久久久久久久爆乳 | 精品国产va久久久久久| 大香蕉75在线| 日本午夜视频| 久久久久99| 一级一级一级做a免费一级做a| 三级丁香在线| 亚洲秘无码一区二区三区| 91性视频| 日韩AV成人无码久久电影| 欧美性性生交XXXXX无码| 在线观看欧美日韩视频| 好男人WWW社区在线视频夜恋| 久久国产精品网站| 欧美一级成人片| 3344在线观看免费下载视频| 国产欧美一区二区三区视频| 青草无码| 中文字幕无码在线视频| 少妇搡BBBB搡BBB搡18禁| 国产精品国产精品国产专区不| 国产A片精品| 人人干日日干| 午夜A片| 99欧美精品| 久久久久久亚洲AV无码专区| 无码日韩电影| 一本色道久久综合狠狠躁的推荐| 日本一区二区三区免费看| 俺来俺也去| 久久国产乱子伦精品免费女,网站| 成人自拍视频在线| 亚洲乱淫| 亚洲午夜福利视频在线观看 | 大香蕉综合| 波多野结衣在线观看一区二区| 成人啪啪视频| 337p粉嫩噜噜噜| 亚洲综合免费观看高清完整版| 午夜成人一区二区| 国产成人a亚洲精品无码| 91牛视频| 亚洲精品乱码久久久久久| 天天色免费视频| 国产又爽又黄免费网站在| 无码一区二区三区四区五区| 国产精品码ls字幕影视| 精品人妻一区二区| 91在线无码精品秘入口电车| 翔田千里一区二区| 亚洲砖区免费| 亚洲第一页在线观看| 亚洲AV无码高清| 欧美一級黃色A片免費看| 夜夜爽夜夜爽| 99日韩| 五月天激情网址| 精品视频无码| 亚洲一二期视频| 99热网| 怡春院日韩| 九九热国产视频| 欧美一区电影| 无码人妻中文字幕| 91久久久久久久久久久| 日本特级黄A片免费观看| 影音先锋乱伦电影| 国内自拍一区| 91国产免费视频| 亚洲小说区图片区| 亚洲AV永久无码国产精品久久| 国产精品午夜成人免费| Www.黄色| 99久久婷婷国产综合精品电影 | av免费网址| 国产精品秘精东影业| 毛片91| 91亚色视频| 久久久久久久久免费看无码| 大香蕉伊人手机在线| 欧美一级婬片免费视频华泰老添妇| 亚洲天堂高清无码| 一本色道久久综合亚洲二区三区| 欧美v在线观看| 97无码人妻| 青青草黄色视频| 91在线精品秘一区二区黄瓜| 日韩三级片在线视频| 2025精品精品视频| 免费欧美A片| 亚洲V在线观看| 中文字幕无码亚| 国产特级毛片AAAAAA| 51毛片| 无码国产99精品久久久久网站| 口爆在线观看| 动漫精品一区二区| 国产精品的电影| 日韩人妻av| av在线影院| 一区二区三区精品视频| 人人操人人妻人人| 国产TS丝袜人妖系列视频| 91大奶熟女| 成人在线视频观看| 国产一区二区电影| 视频在线a| 欧美日韩免费一区二区三区| 性爱av在线观看| 亚洲无码视频免费看| 中文无码观看| 五月天青青草超碰免费公开在线观看 | 西西444WWW无码大胆在线观看 | 丁香五月亭亭| 在线色片| 91在线成人电影| 亚洲女人天堂| 97少妇| 爆菊花综合网| a片网| 69国产精品视频免费观看| 丁香花在线小说免费全文| 久草福利网| 秋霞网一区二区| 91香蕉国产| 日韩高清成人无码| 欧美色性乐汇操日本娘们| 尤物com| 三级视频网址| 一区二区三区在线观看视频| 黄a在线| 午夜成人福利在线观看| 18国产免费视频在线观看| 美女91小视频| 强开小嫩苞一区二区三区视频| 色色色亚洲| 黑人粗大无码| 中文毛片| 91青青草在线| 91人妻一区二区三区无不码超满| 成人黄色一级片| 日韩av第一页| 嫩草视频在线观看免费网站| 黄色视频在线免费播放| 日一区二区| 高清无码在线视频| 免费无码在线| 国产精品一区二区三区不卡| 国产三级毛片| 青青草91视频| 伊人网导航| 国产女人在线| 亚洲欧美成人在线观看| 操B视频在线| 97超碰在线播放| 亚洲国产成人91精品| 女人的天堂网| 久久人妻熟女中文字幕av蜜芽| 成人aV无码精品国产一区二区 | 18禁黄网| 性爱AV天堂| 国产精品日韩欧美| 日韩久久网| 中文字幕无码网站| 精品精品视频| 久草福利在线观看| 一区二区三区久久久久〖网:.〗 | 自拍三级| 国产高清做爱免费在线视频| 92丨九色丨偷拍老熟女| 69国产精品视频免费观看| 久久成人综合网| 欧美福利| 亚洲综合在线播放| 99热在线观看精品| 亚洲精品秘一区二区三区蜜桃久| av在线免费观看网站| 伊人色综合网| 亚洲视频在线播放| 91女人18片女毛片60分钟| 欧美午夜激情视频| 欧美不卡在线视频| 青春草在线| 美女极度色诱图片www视频| 思思精品在线| 91精品无码| 国产玖玖| 日韩AV电影网站| 亚洲日韩中文无码| 国产黄色影院| 午夜精品视频在线观看| 欧美一区二区三区系列电影 | 在线视频日本| 欧美日在线观看| 国产精品乱码毛片在线人与| 91久久婷婷| 热久久伊人| 丁香六月婷| 中文字幕++中文字幕明步| 在线中文无码| 91无码人妻一区二区成人aⅴ| 亚洲国产av电影| 中文无码AV| 亚洲欧洲成人在线| 91麻豆视频在线观看| 亚洲精品在| 国产va| 国产不卡一区| 亚洲免费一级片| 91国产视频网站| AV无码在线观看| 东京热无码免费视频| 黄色动漫在线免费观看| 在线观看亚州| 99视频在线免费观看| 免费黄色视频观看| 理论片无码| 黄色不卡视频| 久久夜色视频网| 亚洲www.| 熟妇人妻丰满久久久久久久无码| 国产一级自拍| 国产精品夜夜爽3000| 伊人毛片| 中文字幕乱码中文字乱码影响大吗| 日韩一区二区不卡| 欧美XX888做受| 欧美综合亚洲图片综合区| 精品国产三级| 亚洲激情视频在线观看| 性生活无码视频| 亚洲午夜影院在线| 亚洲AV在线人妻| jizz在线免费观看| 西西人体大胆裸体A片| 成人免费网站在线观看| 做爱视频91| 日韩成人精品| 欧美性猛交XXXX乱大交蜜桃 | 69成人网| 欧美日比视频| 亚洲色图片区| 九七在线视频| 欧美在线观看一区二区| 丁香五月婷婷五月| 国产成人AV网站| 久久久久久久麻豆| 亚洲第一色| 婷婷五月亚洲精品AAA片在| 最近中文字幕2022在线观看A | 国产高清毛片| 日本不卡三区| 黄色视频亚洲| 国产精品久久无码| 亚洲AV无码秘翔田| 黄色av网| 一本久久A精品一合区久久久 | 五月天在线观看| 高清视频无码| 狠狠干B| 天天天天色| 另类老妇奶性BBWBBw| 日韩精品成人电影| 成人精品水蜜桃| 中文字幕亚洲视频在线观看| 波多野结衣在线无码视频| 精品人妻一区二区乱码一区二区| 91视频网站| 五月天婷婷在线观看| 亚洲国产成人电影| 国产TS变态重口人妖| 欧美午夜激情视频| 日韩精品一区二区三区在线观看免费| 影音先锋人妻资源| 人妻一区二区三区| 免费69视频| 欧美一级A片免费看| 国产无码AV在线| 成人动漫| 91丨熟女丨露脸| 澳门簧片| 韩国午夜激情| 麻豆乱伦| 水蜜桃网址| 色婷婷Av| 国产精品911| 欧美艹逼视频| 风流老熟女一区二区三区| 超碰人人搞| 久久久精品999| 老司机精品在线观看| 91香蕉视频| 国产免费视频| 人人摸人人射| 天天夜夜人人| 亚洲最大黄色视频| 国产精品无码中文在线| 逼逼视频| 亚洲婷婷在线观看| 午夜视频免费在线观看| 粉嫩一区二区三区四区| 日韩精品高清中文| 欧美一区二区无码视频| 91拍真实国产伦偷精品| 丝袜足交视频| 午夜性爱网站| 亚洲无套内射| 亚洲一区二区三区在线视频| 超碰人| 亚洲男人av| 国产suv精品一区二区6精华液| 欧美一级片免费看| 亚洲性爱AV网站| 中文字幕免费| 亚洲一区二区无码| 五月天丁香社区| 欧美一级片在线| 亚洲成人免费在线观看| 国产日韩欧美在线播放| 五月婷婷六月丁香综合| 另类欧美色图| 国产又爽又黄免费| 大香蕉75在线| 国产精品成人在线视频| 操逼激情视频| 无码观看视频| 夜夜躁狠狠躁| 91人妻一区二区三区无不码超满| 婷婷九月色| 在线日韩中文字幕| 色色色色色色色色欧美| 麻豆一区| 黄片网站免费观看| 操老女人逼| 国产美女操逼| 中国老女人操逼| 另类图片亚洲色图| 7777av| 亚洲成人视频免费观看| 色五月婷婷综合| 免费视频一区二区三区四区| 男女拍拍免费视频| 国产在线精品观看| 97人人精品| 日韩精品在线观看免费| 激情六月丁香| 欧美大骚逼| 超碰成人AV| 午夜黄色大片| 国产成人亚洲综合AV婷婷| 亚洲视频,中文字幕| 九九九欧美| 成人日韩在线| 亚洲第一综合| 台湾无码片| 黄片无码视频| 欧美热热| 麻豆AV在线播放| 亚洲日韩三级| 色欲欲www成人网站| 国产AV无| 欧美日韩性爱网站| 国产精品污www在线观看| 欧美大香蕉伊人| 日韩精品免费在线观看| www.91com| 无码福利导航| 成人A片免费观看| 影音av资源| 一级成人毛片| 黄色电影一级片| 白嫩外女BBwBBwBBw| 久久不卡视频| 69网站| 黄色三级毛片| 亚洲无码99| 97成人在线| 伊人91| 精品一区在线| 精品视频在线免费观看| 国产97视频| 午夜激情网站| 青春草视频| 美国一级A片草草视频| 小草久久95| 91丨牛牛丨国产人妻| 国产精品色婷婷99久久精品| 97综合久久| 大香蕉啪啪啪啪| 无码国产精品一区二区性色AV| 国产有码在线观看| 91在线观看网站| 色视频免费在线观看| 91麻花| 日韩久久中文字幕| 91蜜桃在线观看| 尤物com| 人人操人人干人人爽| seseav| 91综合视频| 午夜成人福利电影| www久久| 日韩无任何视频在线观看| 日韩一级电影在线| 国产精品无码乱伦| 黄色视频大全免费看| 国产精品乱伦片| 精品视频日韩| 国产精品久久久久久无码人妻 | 91福利资源| 国产天堂av| 高清无码一级片| 特级西西人体444www高清| 天天爽夜夜| 91叉叉叉| 国产精品无码7777777| 91在线无码精品秘| 亚洲综合免费观看| 亚洲日韩中文字幕在线观看| 天天爱天天操| 欧洲三级片网站| 久久久久亚洲AV成人片乱码| 超碰人人搞| 91极品视觉盛宴| 精品无码人妻一区二区媚黑| 日韩亚洲欧美在线| 天天色影| 亚洲AV无码成人精品区国产| 黄色三级片网站| 国产96在线亚洲| 西西www444无码大胆| 大香蕉电影网站| 男女91视频| 天天干人人干| 逼特逼视频在线| 黄色亚洲视频| 91伊人网| 日韩无码高清视频| 日本黄A级A片国产免费| 麻豆传媒一区| 探花一区二区| 国产成人无码精品| 日本免费不卡| 国产精品午夜福利| 影音先锋aV成人无码电影| 高清无码免费| 无码小黄片| 扒开让我91看片在线看| 丰满人妻一区二区三区四区53 | 久久av网站| 一级黄色片网站| 天天干天| 四川乱子伦95视频国产| 婷婷五月花| 国产非洲欧美在线| 欧美大胆a| 中文字幕+乱码+中文乱码视频在线观看| 尤物网站在线播放| 欧美丰满人妻| 免费看黃色AAAAAA片| 色婷婷丁香五月| 国产麻豆精品ThePorn| 国产内射久久| 欧一美一婬一伦一区二区三区黑人-亚 | 亚洲中文幕| 黄色网址在线免费观看| 蜜桃av秘无码一区二区三区| 色青草影院久久综合| 伊人婷婷久久| 国产A片大全| 久草手机视频在线观看| 亚洲国产成人综合| 国产无码自拍| 少妇高潮av久久久久久| 霸道总裁雷总各种姿势白浆爱情岛论坛 | 无码人妻av黄色一区二区三区| 91超碰在线观看| 美国高清无码| 四虎综合网| 超碰成人97| 中文字幕一区二区6页| 91久久爽久久爽爽久久片| 精品中文字幕在线播放| 我要看黄色一级片| 婷婷狠狠爱| 国产四区| 女人的天堂AV| 成人无码视频在线| 黄色小视频在线| av中文无码| 中出在线| 男女av| 91免费在线视频观看| 嫩BBB搡BBBB搡BBBB-百度| 欧美日日干| 国产传媒在线| 日韩中文字幕在线观看| 91精品国产一区二区三区四区大 | 京东热av| 五月丁香婷中文| 欧美一级二级三级| 精品国产午夜福利| 成熟的国模冰莲[2]| 四虎永久在线精品| 亚洲性爱在线观看| 国产成人精品无码片区在线观91 | 男女一区| 北条麻妃波多波多野结衣| 亚洲国产色情| 91无码精品久久久一区第1集| 日韩不卡高清在线观看视频| 亚洲娱乐在线| 色色视频在线观看| 久久精品福利视频| 亚洲精品色色| 十八禁网站在线播放| 精品久久久国产| 午夜国产码网站码| 精产国品一区二区| 夜夜爽7777精品国产三级| 国产综合网站| 伊人操| 久久久无码精品亚洲日韩男男 | 亚洲国产成人综合| 超碰91在线| 欧美日韩免费观看视频| 五月婷婷激情五月| 国产成人精品一区二区三区| 无码秘蜜桃一区二区| 三级日韩视频| 国产老女人操逼| 亚洲av资源| 国产一级操逼| 日韩小视频+国产| aaa无码| 日韩婷婷| 国产成人精品国内自产拍免费看 | 国产在线观看av| 懂色中文字幕| 高清无码视频免费版本在线观看 | 国产高清在线观看| 亚洲国产av电影| 国产在线观看不卡| 偷拍第一页| 韩国三级AV| 日韩在线网址| 久久黑人| 无码一级| 国产第七页| 嫩草视频在线观看| 爽好紧别夹喷水无码| 欧洲无码一区二区三区| 欧美AAA在线观看| 日韩一区无码| 99精品视频北条麻妃国产版| 中文字幕乱码无码人妻系列蜜桃| 猛男大粗猛爽H男人味| 日韩中文字幕在线观看| 啪啪网站免费看| 国产美女全裸网站| 国产成人免费| www.蜜桃av| 三级av无码| 久久久成人网| 青娱乐亚洲视频在线| 亚洲精品秘一区二区三小| 午夜激情在线观看| 婷婷五月激情小说| 日韩黄色免费电影| 日韩性爱网| 日本一级片中文字幕| 免费欧美性爱| 伊人大香蕉综合| 高清无码一区二区在线| 国产黄色无码| 在线观看国产视频| 特级爱爱视频| 西西444WWW无码精品| 91视频亚洲| 91亚洲日韩| 澳门免费毛片| 无码三级| 无码人妻久久一区二区三区蜜桃| 超碰天天| 午夜性爽视频男人的天堂| 男人天堂视频在线| 免费看一区二区三区| 伊人三区| 国产成人69免费看| 丁香欧美| 特级丰满少妇一级AAAA爱毛片| 亚洲三级黄片| 操骚屄视频| 亚洲人气无码AV| 美女网站黄色| 岛国精品在线播放| 男女啪啪啪| 亚洲日韩精品在线观看| 国产精品视频播放| 91精品国产乱码久久| 91在线无码精品秘入口三人| 大香蕉伊人网| 午夜免费小视频| 国产AⅤ爽aV久久久久成人| 俺来俺去www色婷婷| 在线观看老湿视频福利| 国产成人在线免费观看| 伊人三级片| jizz在线观看| 日都一级A片| 三级成人在线| 98色色| 中文字幕东京热|