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

微服務(wù)的版本號(hào)要怎么設(shè)計(jì)?

開發(fā) 架構(gòu)
使用語義化版本控制的軟件必須(MUST)定義公共 API。該 API 可以在代碼中被定義或出現(xiàn)于嚴(yán)謹(jǐn)?shù)奈臋n內(nèi)。無論何種形式都應(yīng)該力求精確且完整。

今天我們來聊一下微服務(wù)項(xiàng)目中的版本號(hào)要怎么設(shè)計(jì)。

小伙伴們平時(shí)看到的項(xiàng)目版本號(hào),基本上都是分為了三部分 X.Y.Z,版本升級(jí)的時(shí)候版本號(hào)都會(huì)變,那么版本號(hào)怎么變,這可不是拍腦門決定的,今天我們就一起來探討一下這個(gè)話題。

一、語義化版本控制規(guī)范

版本號(hào)該如何控制?其實(shí)是有一個(gè)標(biāo)準(zhǔn)規(guī)范的,規(guī)范地址:

這個(gè)規(guī)范非常友好的提供了中文版的內(nèi)容。

語義化的版本控制規(guī)范要求版本號(hào)由三部分構(gòu)成:

  • MAJOR(X):這個(gè)是主版本號(hào),一般是涉及到不兼容的 API 更改時(shí),這個(gè)會(huì)變化。
  • MINOR(Y):這個(gè)是次版本號(hào),當(dāng)我們對(duì) API 進(jìn)行向后兼容的增強(qiáng)時(shí),這個(gè)版本號(hào)會(huì)變化,換句話說,也就是有新增的功能時(shí),這里會(huì)變化。
  • PATCH(Z):這個(gè)是修訂號(hào),當(dāng)我們進(jìn)行一些 BUG 的修復(fù),然后要發(fā)版的時(shí)候,這里會(huì)發(fā)生變化。

語義化的版本控制規(guī)范主要做了如下一些要求:

  1. 使用語義化版本控制的軟件必須(MUST)定義公共 API。該 API 可以在代碼中被定義或出現(xiàn)于嚴(yán)謹(jǐn)?shù)奈臋n內(nèi)。無論何種形式都應(yīng)該力求精確且完整。
  2. 標(biāo)準(zhǔn)的版本號(hào)必須(MUST)采用 X.Y.Z 的格式,其中 X、Y 和 Z 為非負(fù)的整數(shù),且禁止(MUST NOT)在數(shù)字前方補(bǔ)零。X 是主版本號(hào)、Y 是次版本號(hào)、而 Z 為修訂號(hào)。每個(gè)元素必須(MUST)以數(shù)值來遞增。例如:1.9.1 -> 1.10.0 -> 1.11.0。
  3. 標(biāo)記版本號(hào)的軟件發(fā)行后,禁止(MUST NOT)改變?cè)摪姹拒浖膬?nèi)容。任何修改都必須(MUST)以新版本發(fā)行。有的小伙伴可能會(huì)說我們的項(xiàng)目處于快速開發(fā)階段,API 不穩(wěn)定,天天變,要是按照這個(gè)要求來得發(fā)多少個(gè)版本才夠用呀!其實(shí),一般 API 快速變化主要有兩種情況,一種是項(xiàng)目剛立項(xiàng)的時(shí)候,此時(shí)主版本號(hào)為 0,那么這個(gè)時(shí)候的 API 就不能算是穩(wěn)定的 API;另外一種情況則是下個(gè)主版本處于快速開發(fā)中,但是這種情況一般會(huì)有一個(gè)新的分支用來管理下個(gè)版本的代碼,所以和這里的要求實(shí)際上并不沖突(具體參見第 4、5 條)。
  4. 主版本號(hào)為零(0.y.z)的軟件處于開發(fā)初始階段,一切都可能隨時(shí)被改變。這樣的公共 API 不應(yīng)該被視為穩(wěn)定版。
  5. 1.0.0 的版本號(hào)用于界定公共 API 的形成。這一版本之后所有的版本號(hào)更新都基于公共 API 及其修改內(nèi)容。那么有的小伙伴可能會(huì)糾結(jié)什么時(shí)候版本號(hào)從 0.Y.Z 變?yōu)?1.Y.Z 呢?一般來說,當(dāng)你的項(xiàng)目已經(jīng)上了生產(chǎn)環(huán)境或者說有穩(wěn)定的 API 提供給別人使用的時(shí)候,基本上就可以算是 1.Y.Z 了。
  6. 修訂號(hào) Z(x.y.Z | x > 0)必須(MUST)在只做了向下兼容的修正時(shí)才遞增。這里的修正指的是針對(duì)不正確結(jié)果而進(jìn)行的內(nèi)部修改。
  7. 次版本號(hào) Y(x.Y.z | x > 0)必須(MUST)在有向下兼容的新功能出現(xiàn)時(shí)遞增。在任何公共 API 的功能被標(biāo)記為棄用時(shí)也必須(MUST)遞增。也可以(MAY)在內(nèi)部程序有大量新功能或改進(jìn)被加入時(shí)遞增,其中可以(MAY)包括修訂級(jí)別的改變。每當(dāng)次版本號(hào)遞增時(shí),修訂號(hào)必須(MUST)歸零。
  8. 主版本號(hào) X(X.y.z | X > 0)必須(MUST)在有任何不兼容的修改被加入公共 API 時(shí)遞增。其中可以(MAY)包括次版本號(hào)及修訂級(jí)別的改變。每當(dāng)主版本號(hào)遞增時(shí),次版本號(hào)和修訂號(hào)必須(MUST)歸零。
  9. 先行版本號(hào)可以(MAY)被標(biāo)注在修訂版之后,先加上一個(gè)連接號(hào)再加上一連串以句點(diǎn)分隔的標(biāo)識(shí)符來修飾。標(biāo)識(shí)符必須(MUST)由 ASCII 字母數(shù)字和連接號(hào) [0-9A-Za-z-] 組成,且禁止(MUST NOT)留白。數(shù)字型的標(biāo)識(shí)符禁止(MUST NOT)在前方補(bǔ)零。先行版的優(yōu)先級(jí)低于相關(guān)聯(lián)的標(biāo)準(zhǔn)版本。被標(biāo)上先行版本號(hào)則表示這個(gè)版本并非穩(wěn)定而且可能無法滿足預(yù)期的兼容性需求。范例:1.0.0-alpha、1.0.0-alpha.1、1.0.0-0.3.7、1.0.0-x.7.z.92。
  10. 版本編譯信息可以(MAY)被標(biāo)注在修訂版或先行版本號(hào)之后,先加上一個(gè)加號(hào)再加上一連串以句點(diǎn)分隔的標(biāo)識(shí)符來修飾。標(biāo)識(shí)符必須(MUST)由 ASCII 字母數(shù)字和連接號(hào) [0-9A-Za-z-] 組成,且禁止(MUST NOT)留白。當(dāng)判斷版本的優(yōu)先層級(jí)時(shí),版本編譯信息可(SHOULD)被忽略。因此當(dāng)兩個(gè)版本只有在版本編譯信息有差別時(shí),屬于相同的優(yōu)先層級(jí)。范例:1.0.0-alpha+001、1.0.0+20130313144700、1.0.0-beta+exp.sha.5114f85。
  11. 版本的優(yōu)先層級(jí)指的是不同版本在排序時(shí)如何比較。
  1. 只有數(shù)字的標(biāo)識(shí)符以數(shù)值高低比較。
  2. 有字母或連接號(hào)時(shí)則逐字以 ASCII 的排序來比較。
  3. 數(shù)字的標(biāo)識(shí)符比非數(shù)字的標(biāo)識(shí)符優(yōu)先層級(jí)低。
  4. 若開頭的標(biāo)識(shí)符都相同時(shí),欄位比較多的先行版本號(hào)優(yōu)先層級(jí)比較高。例如:1.0.0-alpha < 1.0.0-alpha.1 < 1.0.0-alpha.beta < 1.0.0-beta < 1.0.0-beta.2 < 1.0.0-beta.11 < 1.0.0-rc.1 < 1.0.0。
  5. 判斷優(yōu)先層級(jí)時(shí),必須(MUST)把版本依序拆分為主版本號(hào)、次版本號(hào)、修訂號(hào)及先行版本號(hào)后進(jìn)行比較(版本編譯信息不在這份比較的列表中)。
  6. 由左到右依序比較每個(gè)標(biāo)識(shí)符,第一個(gè)差異值用來決定優(yōu)先層級(jí):主版本號(hào)、次版本號(hào)及修訂號(hào)以數(shù)值比較。例如:1.0.0 < 2.0.0 < 2.1.0 < 2.1.1。
  7. 當(dāng)主版本號(hào)、次版本號(hào)及修訂號(hào)都相同時(shí),改以優(yōu)先層級(jí)比較低的先行版本號(hào)決定。例如:1.0.0-alpha < 1.0.0。
  8. 有相同主版本號(hào)、次版本號(hào)及修訂號(hào)的兩個(gè)先行版本號(hào),其優(yōu)先層級(jí)必須(MUST)透過由左到右的每個(gè)被句點(diǎn)分隔的標(biāo)識(shí)符來比較,直到找到一個(gè)差異值后決定:

二、微服務(wù)中的版本號(hào)

那么在微服務(wù)中,我們的版本號(hào)該怎么設(shè)計(jì)呢?

首先,整體上的思路,就是按照上文所說的語義化版本控制規(guī)范來。

其次,上面雖然給出了很多條條框框,然而我們實(shí)際開發(fā)中,一般只需要從以下幾個(gè)方面簡(jiǎn)單考慮即可,每次發(fā)版的時(shí)候都去翻這個(gè)規(guī)范顯然也不現(xiàn)實(shí):

  1. 理想情況下,我們應(yīng)該只進(jìn)行向后兼容的更新。

我們要為項(xiàng)目添加新功能、新特性,我們必須要考慮到項(xiàng)目的兼容性。例如接口中新加了一個(gè)參數(shù),那么為了老版本的客戶端能夠順利訪問這個(gè)接口,服務(wù)端應(yīng)該考慮為老版本客戶端缺少的請(qǐng)求參數(shù)提供一個(gè)默認(rèn)值。我們也可能為響應(yīng)添加新的屬性,或者提供了一些新的接口,當(dāng)然這些一般都不影響老客戶端。

  1. 必須進(jìn)行不兼容的升級(jí)。

有時(shí)候我們必須進(jìn)行一些不兼容的升級(jí),對(duì) API 做一些主要的修改,考慮到微服務(wù)之間的松耦合性,我們沒法強(qiáng)迫客戶端進(jìn)行立馬升級(jí),此時(shí)可能會(huì)考慮在某一個(gè)時(shí)間段內(nèi),兩個(gè)版本的 API 共存。

多個(gè) API 共存的時(shí)候,一個(gè)比較簡(jiǎn)單的辦法是在 API 設(shè)計(jì)的時(shí)候,加上版本號(hào),例如 /v1/xxx 或者 /v2/xxx,不過這種寫法有一個(gè)小小的缺陷,就是路徑中加了版本號(hào)之后,這個(gè)路徑看起來就不是一個(gè)完美的 REST 路徑了。

所以這塊還有一個(gè)方案,就是把請(qǐng)求的 API 的版本號(hào)寫到請(qǐng)求頭中。

具體的實(shí)現(xiàn)思路是這樣:

首先,在微服務(wù)中,我們所有的請(qǐng)求一般來說都會(huì)經(jīng)過網(wǎng)關(guān),我們可以在網(wǎng)關(guān)中提取出請(qǐng)求頭的 Accept 參數(shù),然后根據(jù) Accept 中的請(qǐng)求版本號(hào),做不同的請(qǐng)求轉(zhuǎn)發(fā),如果版本號(hào)是 1.0,就轉(zhuǎn)發(fā)到 1.0 的服務(wù)上去;如果版本號(hào)是 2.0,則轉(zhuǎn)發(fā)到 2.0 的服務(wù)上去。基本上就是這個(gè)樣子。

以現(xiàn)在微服務(wù)中主流的網(wǎng)關(guān) Spring Cloud Gateway 為例,我們可以做如下配置:

spring:
  application:
    name: gateway
  cloud:
    nacos:
      discovery:
        password: nacos
        username: nacos
        server-addr: a.b.c.d:8848
        namespace: public
    gateway:
      discovery:
        locator:
#          enabled: true
          lower-case-service-id: true
      routes:
        - id: v1_provider
          uri: lb://provider
          predicates:
            - Path=/p/**
            - Header=Accept,.*;?version=1\.0(|;.*)
          filters:
            - StripPrefix=1
server:
  port: 8082

大家看一下這個(gè)配置:

  1. 首先記得關(guān)閉服務(wù)自動(dòng)發(fā)現(xiàn),否則通過默認(rèn)的服務(wù)名進(jìn)行代理就不會(huì)經(jīng)過我們配置的過濾器了。
  2. 然后我們手動(dòng)配置服務(wù)轉(zhuǎn)發(fā),上面的配置基本上都是常規(guī)配置,跟版本號(hào)相關(guān)的配置是 Header=Accept,.*;?version=1\.0(|;.*),這個(gè)配置就是對(duì)請(qǐng)求頭提出要求,首先前面的 Accept 表示這里是要判斷請(qǐng)求頭中的 Accept 字段,然后后面緊跟著的是 value(兩者之間用 , 隔開),這個(gè) value 是一個(gè)正則表達(dá)式 .*;?version=1\.0(|;.*),意思就是在 version=1.0 之前和之后可以有任意字符串,只要 value 中包含 version=1.0 就算匹配上了。只有匹配上了,才會(huì)進(jìn)行請(qǐng)求轉(zhuǎn)發(fā),否則不會(huì)進(jìn)行請(qǐng)求轉(zhuǎn)發(fā)。
  3. 最后,我們?cè)诎l(fā)送請(qǐng)求的時(shí)候,設(shè)置如下請(qǐng)求頭即可:

圖片圖片

如果版本號(hào)是 versinotallow=2.0,則會(huì)報(bào)一個(gè) 404 錯(cuò)誤:

圖片圖片

好啦,一個(gè)小小的版本號(hào)話題,感興趣的小伙伴可以試試最后這段代碼哦!

責(zé)任編輯:武曉燕 來源: 江南一點(diǎn)雨
相關(guān)推薦

2023-01-09 17:46:07

項(xiàng)目版本號(hào)字段

2020-06-03 10:09:03

微服務(wù)項(xiàng)目版本號(hào)

2014-12-15 14:02:48

iOS版本號(hào)蘋果

2010-11-08 10:07:45

Chrome

2010-02-06 13:49:08

Linux samba

2017-03-30 16:56:43

Windows 10Windows版本號(hào)

2015-07-22 10:09:59

Android M版本號(hào)

2023-02-27 14:51:40

MySQL數(shù)據(jù)庫

2010-06-30 16:41:02

識(shí)別SQL Serve

2009-08-04 08:36:54

Windows 7查看系統(tǒng)版本號(hào)

2009-02-12 16:31:39

Windows7貝塔版本號(hào)

2017-02-08 14:29:04

2010-06-28 10:13:17

SQL Server

2019-09-19 15:15:20

LinuxMint版本號(hào)

2021-08-11 08:32:24

Firefox英特爾LLVM

2023-08-02 08:46:02

Go版本號(hào)規(guī)則

2024-12-31 11:05:07

2010-07-09 13:01:50

SQL Server

2021-10-17 23:46:06

Go項(xiàng)目版本號(hào)

2023-01-03 08:26:56

點(diǎn)贊
收藏

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

在线观看国产区| 中文字幕av不卡在线| 熟妇人妻av无码一区二区三区| 欧美aⅴ99久久黑人专区| 日韩丝袜情趣美女图片| 欧美激情视频免费看| 国产中文在线视频| 国产精品香蕉一区二区三区| 97成人精品区在线播放| 99久久99久久精品免费看小说.| 高清一区二区三区av| 午夜电影一区二区| 中文字幕一区综合| 91在线观看免费| 亚洲免费一级视频| 欧美色图天堂| 欧美激情一区二区三区不卡 | 亚洲第一区在线观看| 久久精品午夜福利| 国产91足控脚交在线观看| 国产视频在线观看一区二区三区| 99久久99久久| 91亚洲国产成人久久精品麻豆| 亚洲啪啪91| 操人视频在线观看欧美| 亚洲女优在线观看| 露出调教综合另类| 欧美一级片免费看| 在线观看av网页| 亚洲最大成人| 亚洲高清免费观看高清完整版在线观看 | 国产美女在线一区| 国产在线看片| 欧美激情一区二区三区免费观看 | 韩国一级黄色录像| 亚洲免费专区| 亚洲国产精品视频在线观看| 在线免费黄色网| 嫩草伊人久久精品少妇av杨幂| 亚洲1区2区3区4区| 欧美成人精品免费| 日韩经典av| 亚洲欧美成aⅴ人在线观看| 日韩激情视频| 日韩电影免费| 91一区二区在线| 国产精品毛片一区视频| 99热精品在线播放| 国内精品视频一区二区三区八戒 | 亚洲国产无线乱码在线观看| 99精品热6080yy久久| 精品久久久久久亚洲精品| 黄色成人在线免费| 亚洲春色在线| eeuss影院在线播放| 久久人人爽人人爽| 欧美精品七区| 国产黄在线看| 中文字幕乱码亚洲精品一区| 日本一区免费观看| 岛国在线大片| 国产精品素人视频| 亚洲一区二区三区精品视频| 永久免费av在线| 国产精品日产欧美久久久久| 无码免费一区二区三区免费播放| 国产永久免费高清在线观看| 久久久久国产免费免费| 日韩三级电影| 美女国产在线| 亚洲曰韩产成在线| 免费看黄在线看| 在线观看特色大片免费视频| 91福利资源站| 69久久久久久| 麻豆国产一区二区三区四区| 国产精品亚洲成在人线| 欧美在线免费观看亚洲| 亚洲欧美aaa| 一区二区日韩| 亚洲男女性事视频| 天美传媒免费在线观看| 亚洲一级毛片| 66m—66摸成人免费视频| 在线观看亚洲黄色| 国产精品自拍网站| 久久久一本精品99久久精品| 国产日本在线视频| 亚洲人成精品久久久久| 僵尸世界大战2 在线播放| 性欧美超级视频| 91精品欧美久久久久久动漫| 成人午夜精品无码区| 亚洲v天堂v手机在线| 日韩在线观看免费高清| 精品无码久久久久| 日韩国产欧美在线视频| 成人av在线亚洲| 无码国精品一区二区免费蜜桃| 国产精品久久久久天堂| 欧洲精品一区二区三区久久| 99国产在线观看| 国产又粗又猛又爽| 99热这里都是精品| 一区国产精品| 黄色软件视频在线观看| 欧美日韩精品专区| www.17c.com喷水少妇| 日韩欧美视频在线播放| 国产做受69高潮| 91精品人妻一区二区三区果冻| 成人av网站免费观看| 性刺激综合网| 校园春色亚洲| 日韩免费观看高清完整版| 91网站免费视频| 欧美一区二区三区久久精品茉莉花| 青青草国产精品一区二区| 99久久99久久久精品棕色圆| 国产午夜精品一区二区三区嫩草| 青青青青草视频| 久久9999免费视频| 社区色欧美激情 | 中文字幕国产在线观看| 风间由美性色一区二区三区| 一卡二卡3卡四卡高清精品视频| 久久人人爽人人人人片| 成年午夜在线| 性做久久久久久| 久久久久无码精品| 偷拍欧美精品| 国产噜噜噜噜久久久久久久久| 天堂成人在线| 欧美日韩国产综合视频在线观看中文| 三上悠亚 电影| 婷婷六月综合| 91精品免费久久久久久久久| 成人综合影院| 欧美曰成人黄网| 久久精品—区二区三区舞蹈| 国产精品久久久久9999高清| 国产在线精品一区二区三区| 日本aa在线| 精品日韩一区二区三区免费视频| 亚洲综合视频网站| 国产在线播放一区二区三区| 中文字幕99| 婷婷激情成人| 精品国模在线视频| 97国产精品久久久| 中文字幕综合网| 九九九九九伊人| 亚洲成人99| 中文字幕日韩一区| 国产精品久久久久久久久久小说 | 自拍偷拍色综合| 国产午夜精品美女毛片视频| 午夜免费高清视频| 欧美激情电影| 97netav| 尤物视频在线看| 欧美变态tickling挠脚心| 国产一级二级三级视频| 成人爽a毛片一区二区免费| 91.com在线| 亚洲精品**不卡在线播he| 日韩av电影中文字幕| av女优在线| 这里是久久伊人| 久久久久久久99| 久久久久久久久久久电影| 欧美成人黄色网址| 一本一本久久a久久综合精品| 91国产在线播放| 精精国产xxxx视频在线播放| 亚洲日韩中文字幕在线播放| 中文区中文字幕免费看| 在线成人动漫av| 国产精品青草久久| 日韩欧美亚洲另类| 亚洲手机在线| 视频一区二区综合| 欧一区二区三区| 欧美一级视频在线观看| 求av网址在线观看| 精品国产乱码久久久久久久久| 影音先锋亚洲天堂| 国产精品婷婷午夜在线观看| wwwxx日本| 免费欧美日韩国产三级电影| 路边理发店露脸熟妇泻火| 欧美电影在线观看免费| 国产精品普通话| 操喷在线视频| 中文字幕在线看视频国产欧美在线看完整 | 国产对白在线播放| 成人知道污网站| 国产精品专区h在线观看| 久草在线资源站资源站| 国产亚洲精品美女久久久久| 波多野结衣电影免费观看| 色窝窝无码一区二区三区| 亚洲成人www| 男女全黄做爰文章| 91麻豆精东视频| 波多野结衣中文字幕在线播放| 午夜一区不卡| 91亚洲精品国产| 日本电影一区二区| 国产视频精品网| а天堂中文最新一区二区三区| 欧美专区国产专区| 羞羞的视频在线观看| 伊人久久免费视频| 亚洲日本国产精品| 日韩一级在线观看| 亚洲视频在线免费播放| 欧美日韩一区二区三区| 免费在线视频观看| 亚洲欧洲一区二区三区| 素人fc2av清纯18岁| 国产·精品毛片| 日韩 国产 一区| 美女精品自拍一二三四| 99蜜桃臀久久久欧美精品网站| 黄色精品一区| 亚洲精品偷拍视频| 99久久亚洲精品蜜臀| 日韩在线电影一区| 日韩大尺度在线观看| 国产精品一区而去| 亚洲精品无码久久久久久| 中文有码一区| 久久成人资源| 欧美男人操女人视频| 国产精品视频一区二区三区经| 久久久久久爱| 147欧美人体大胆444| 高清久久一区| 91免费看蜜桃| 精品国产亚洲一区二区在线观看| 国产免费一区视频观看免费 | 青青青青在线| 中文字幕亚洲欧美一区二区三区 | 欧美大胆视频| 精品国产一二| 网友自拍区视频精品| 久久av免费一区| 亚洲国产合集| 欧美午夜免费| 菠萝蜜一区二区| 亚洲国产精品视频一区| 日本一二区不卡| 亚洲一卡二卡三卡四卡无卡网站在线看| 精品国产精品国产偷麻豆| 日韩精品久久一区| 日韩国产一区二区| 宅男噜噜99国产精品观看免费| 99精品综合| 99国产精品久久| 国产小视频精品| 奇米色一区二区三区四区| 欧美自拍小视频| 久久激五月天综合精品| 亚洲欧美天堂在线| 成人网页在线观看| 丝袜美腿中文字幕| 中文字幕的久久| 国产精品嫩草影院俄罗斯| 亚洲老妇xxxxxx| 91香蕉在线视频| 日本丰满少妇一区二区三区| 中文字幕视频一区二区| 欧美丰满少妇xxxbbb| 亚洲av无码一区二区三区性色| 亚洲精品在线观| 黄色av网址在线免费观看| 日韩在线视频一区| 国模雨婷捆绑高清在线| 欧美中文字幕第一页| 999国产精品亚洲77777| 91久久爱成人| 最新亚洲精品| 国产又大又长又粗又黄| 亚洲精品免费观看| 久久久久久三级| 成人免费毛片片v| 免费视频91蜜桃| 亚洲主播在线播放| 中文精品久久久久人妻不卡| 日韩西西人体444www| 青青九九免费视频在线| 久久婷婷国产麻豆91天堂| 精品中文字幕一区| 一区二区三区视频播放| 欧美一卡2卡3卡4卡无卡免费观看水多多 | 蜜桃精品在线观看| 大桥未久恸哭の女教师| 国产精品污www在线观看| 日本在线小视频| 7777精品伊人久久久大香线蕉的 | 亚洲欧美综合| 少妇人妻互换不带套| 国产精品一区二区男女羞羞无遮挡 | 91国拍精品国产粉嫩亚洲一区| 97超碰人人看人人| 精品免费一区二区| 99久re热视频精品98| 日韩中文字幕av电影| 国产原创剧情av| 亚洲欧美视频在线观看视频| 国产女主播喷水视频在线观看| 日韩无一区二区| 免费观看成人高潮| 国产成人综合av| 欧美尿孔扩张虐视频| 精品99一区二区| 国产免费一区二区三区四区| 欧美日韩国产中文精品字幕自在自线| 国产深喉视频一区二区| 中文字幕不卡av| 日韩电影网站| 久久综合伊人77777麻豆| 国产一区亚洲| 午夜免费福利网站| 国产精品久久久99| 国产乱码在线观看| 亚洲精品中文字| 乱人伦视频在线| 国产精品乱子乱xxxx| 国产精品九九| 久久发布国产伦子伦精品| 亚洲图片激情小说| 艳妇乳肉豪妇荡乳av| 国产亚洲欧美视频| 成人在线爆射| 欧美日韩精品免费观看| 亚洲综合丁香| 人妻无码一区二区三区| 亚洲成年人网站在线观看| 亚洲乱码国产乱码精品精软件| 久久夜色精品亚洲噜噜国产mv| 日韩成人免费av| 在线观看成人一级片| 美女任你摸久久| 看黄色录像一级片| 欧美精品一二三四| 麻豆网站在线| 91最新在线免费观看| 亚洲国产精品成人| 古装做爰无遮挡三级聊斋艳谭| 亚洲欧洲精品一区二区三区| 亚洲最新av网站| 久久天天躁日日躁| 五月激情四射婷婷| 国产丝袜欧美中文另类| 久久久精品毛片| 在线电影av不卡网址| 成人黄色在线| 亚洲小视频在线播放| 国产.精品.日韩.另类.中文.在线.播放| 在线观看成人毛片| 亚洲成人av资源网| 欧美xoxoxo| 一区二区三区视频| 国产精品99久久久久久似苏梦涵| 久久久久久久国产精品毛片| 亚洲第一精品夜夜躁人人爽| 色综合亚洲图丝熟| 神马影院我不卡| 国产在线精品一区二区不卡了| 激情综合网五月天| 日韩电影中文字幕一区| 91福利精品在线观看| 日韩精品福利片午夜免费观看| 国产黑丝在线一区二区三区| 精品一级少妇久久久久久久| 亚洲精品久久在线| www.精品国产| www.在线观看av| 久久久久久久久免费| 国产又粗又猛又爽| 91国在线精品国内播放| 精品视频网站| 亚洲少妇中文字幕| 色爱区综合激月婷婷| 麻豆传媒视频在线观看免费| 国产精品初高中精品久久| 肉肉av福利一精品导航| chinese全程对白| 亚洲国产欧美一区二区丝袜黑人| 精品欧美日韩精品| 9色porny| 中文字幕亚洲不卡| 亚洲日本中文字幕在线| 成人av影院在线| 91黑人精品一区二区三区| 欧美成人合集magnet| 免费精品国产| 亚洲熟妇一区二区|