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

漫談全鏈路灰度發(fā)布

云計算 云原生
本文首先介紹了全鏈路灰度發(fā)布的概念、作用以及實現(xiàn)全鏈路灰度發(fā)布時需要解決的關(guān)鍵問題,針對每個問題分別從傳統(tǒng)模式和云原生模式介紹了對應(yīng)的解決方案,其中對流量標識透傳做了詳細的介紹,然后在云原生模式下,對微服務(wù) Demo 進行了全鏈路灰度發(fā)布實踐,展示了實踐效果。

1概述

在當今快節(jié)奏的軟件開發(fā)環(huán)境中,隨著用戶需求的不斷變化和競爭日益激烈,軟件更新和發(fā)布的頻率已成為常態(tài)。然而,與此同時,保證用戶體驗的穩(wěn)定性和可靠性也是至關(guān)重要的。傳統(tǒng)的大規(guī)模軟件發(fā)布往往會面臨著線上故障風(fēng)險,可能導(dǎo)致用戶體驗下降,甚至影響業(yè)務(wù)正常運行。

為了解決這一矛盾,在軟件開發(fā)領(lǐng)域催生出了灰度發(fā)布的概念。灰度發(fā)布是一種漸進式的軟件發(fā)布方式,它允許將新功能或更新逐步推送給一部分用戶,而不是一次性全部發(fā)布。這樣的方式能夠有效降低線上故障的風(fēng)險,保障用戶體驗,同時也為開發(fā)團隊提供了更多時間和機會在全面發(fā)布前進行驗證和修復(fù)。

然而,隨著軟件架構(gòu)的演進,尤其是微服務(wù)架構(gòu)的普及,軟件系統(tǒng)往往由多個微服務(wù)組成,不同服務(wù)的版本升級需要協(xié)調(diào)和同步。在這種背景下,單一服務(wù)的灰度發(fā)布已經(jīng)不能完全適應(yīng)需求,全鏈路灰度發(fā)布應(yīng)運而生。

全鏈路灰度發(fā)布考慮到整個軟件系統(tǒng)的多個微服務(wù),允許多個微服務(wù)同時進行版本控制和升級,以確保整個系統(tǒng)的平穩(wěn)過渡和穩(wěn)定性,是一種更為全面和細致的灰度發(fā)布方式。通過全鏈路灰度發(fā)布,開發(fā)團隊能夠更加精確地控制不同服務(wù)版本的發(fā)布比例,降低系統(tǒng)風(fēng)險,保障線上穩(wěn)定性,最大程度地滿足用戶需求。

圖片圖片

以圖 1 為例,軟件系統(tǒng)包含網(wǎng)關(guān)和 4 個微服務(wù),通過全鏈路灰度發(fā)布,可以使ServiceB 和 ServiceD 進行灰度發(fā)布,通過灰線所示的流量進行灰度功能驗證,同時不影響藍線所示的正常訪問流量。

2全鏈路灰度發(fā)布核心問題

我們通過圖1 可以清晰地看到,在實施全鏈路灰度發(fā)布時,需要部署相關(guān)服務(wù)的灰度版本,并確保在整個請求的調(diào)用鏈上,網(wǎng)關(guān)和微服務(wù)組件能夠準確識別正式流量和特定版本灰度流量,并根據(jù)流量類型動態(tài)地將請求路由到正確版本的上游微服務(wù)上。所以,我們需要解決以下幾個問題:

  • 微服務(wù)實例具有版本信息,針對不同流量對應(yīng)版本實例提供服務(wù);
  • 請求流量具有流量特征,可以區(qū)分出是請求不同版本微服務(wù)的流量;
  • 調(diào)用鏈上各組件可以根據(jù)流量特征將請求動態(tài)路由到正確版本的微服務(wù)上。當前的微服務(wù)架構(gòu)主要分為兩類模式:一類是建立在傳統(tǒng)微服務(wù)框架(例如Spring Cloud等)之上的微服務(wù)體系,另一類是云原生時代采用Kubernetes和服務(wù)網(wǎng)格(如Istio)構(gòu)建的微服務(wù)架構(gòu),為了方便起見,我們姑且簡稱為傳統(tǒng)模式和云原生模式。下面我們將介紹在兩類模式下,如何解決以上問題,進行全鏈路灰度發(fā)布。

微服務(wù)標識

我們通過給微服務(wù)實例添加標識的方式,使微服務(wù)實例具有版本信息,針對不同流量對應(yīng)版本實例提供服務(wù)。

傳統(tǒng)模式

在傳統(tǒng)模式下,一般需要產(chǎn)品根據(jù)使用的微服務(wù)框架決定添加標識的方式。我們以基于 Spring Cloud 框架 + Nacos注冊中心 的微服務(wù)為例,一般通過在微服務(wù)元數(shù)據(jù)配置(spring.cloud.nacos.discovery.metadata)中添加標識,配置示例如下:

spring:
  cloud:
    nacos:
      discovery:
        metadata:
          version: ${APP-VERSION:v1}

微服務(wù)在 Nacos 注冊中心中服務(wù)信息如下:

圖片圖片

云原生模式

在云原生模式下,為微服務(wù)實例添加標識更加方便,不需要修改微服務(wù)代碼配置,一般在微服務(wù) Deployment 的 Pod 模版中添加Labal標識即可,實例如下:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: demo
spec:
  selector:
    matchLabels:
      app: demo
      version: v1
  template:
    metadata:
      labels:
        app: demo
        version: v1

流量標識

和微服務(wù)標識相同,我們也是通過為流量添加不同標識的方式區(qū)分流量,流量標識在業(yè)界還有一個更專業(yè)更形象的叫法叫流量染色。

流量染色分兩步:第一步在流量源頭染色,第二步在調(diào)用鏈內(nèi)染色。

第一步比較簡單,通過前端或者網(wǎng)關(guān)根據(jù)流量特點(比如瀏覽器類型,用戶標識,地域標識等)為流量添加標識(比如在HTTP Header中添加version標簽)。

第二步是全鏈路灰度中最核心也是最復(fù)雜的部分,需要流量標識在調(diào)用鏈中透傳下去,保證調(diào)用鏈上的每個微服務(wù)組件都能根據(jù)標識識別流量并動態(tài)路由。

傳統(tǒng)的微服務(wù)框架注重基礎(chǔ)功能的實現(xiàn),例如服務(wù)注冊與發(fā)現(xiàn)、負載均衡等,而未將流量標識透傳作為核心特性之一,導(dǎo)致在實際應(yīng)用中難以實現(xiàn)流量標識的無縫傳遞。

云原生時代的 Kubernetes + Istio 同樣無法幫助微服務(wù)實現(xiàn)流量標識透傳。不少人存在誤解,認為 Istio 能對微服務(wù)實例的出入流量進行攔截,應(yīng)該原生支持流量標識透傳,但實際上 Istio 本身沒有流量標識透傳的能力。

圖片圖片

Istio Sidecar 對微服務(wù)入口和出口流量攔截如上圖所示,Sidecar 雖然能將入口流量1 攔截后轉(zhuǎn)給微服務(wù)容器(入口流量2),也能將微服務(wù)容器出口流量 3 攔截并轉(zhuǎn)發(fā)到 Pod 外(出口流量4),但 Sidecar 不知道出口流量 3 和入口流量 2 的對應(yīng)關(guān)系,在實際情況中,Sidecar 會攔截很多的出口流量,也會攔截很多的入口流量,但 Sidecar 并不知道某一個出口流量對應(yīng)哪個入口流量。只有微服務(wù)應(yīng)用知道對應(yīng)關(guān)系,因為微服務(wù)應(yīng)用親自做了流量處理(微服務(wù)應(yīng)用收到入口流量請求2后,進行業(yè)務(wù)邏輯處理,然后再發(fā)出出口流量3,請求下一級微服務(wù)),所以 Istio 雖然能對微服務(wù)出入流量攔截,但不知道出入流量的對應(yīng)關(guān)系,無法將入口流量的標識自動添加到出口流量上,無法做流量標識透傳。

流量標識透傳方式

那么如何進行流量標識透傳呢,通常有以下3種方式:

微服務(wù)修改源碼方式

微服務(wù)側(cè)進行業(yè)務(wù)代碼改造,從入口流量請求中獲取流量標識,并在出口流量中添加流量標識,代碼示例如下:

// 從請求中獲取流量標識 version
String versionValue = request.getHeader("version");
// 構(gòu)造新請求需要的 Header,獲取到的流量標識添加到新請求的 Header 中
HttpHeaders headers = new HttpHeaders();
headers.set("version", versionValue);
// 發(fā)起出口流量請求
使用基礎(chǔ)SDK方式

將從入口流量請求中獲取流量標識,并在出口流量中添加流量標識這種共性邏輯封裝到基礎(chǔ) SDK 中,其原理通常涉及 SDK 對請求和響應(yīng)的攔截處理。這種方法的核心在于SDK能夠攔截到微服務(wù)內(nèi)部的請求,從請求中獲取流量標識,并在微服務(wù)發(fā)起外部請求時,將這個標識加入請求中,實現(xiàn)流量標識的透傳。基礎(chǔ) SDK 的工作機制一般包括以下幾個關(guān)鍵步驟:

  • 攔截請求和響應(yīng): SDK會通過某種方式(例如AOP、攔截器等)攔截微服務(wù)的請求和響應(yīng),這使得SDK能夠在請求進入微服務(wù)之前或響應(yīng)返回之后對其進行處理。
  • 獲取流量標識: 在請求被微服務(wù)處理之前,SDK會從請求中獲取流量標識。這可能包括從HTTP頭部、Cookie、請求參數(shù)等位置獲取特定的標識符。
  • 向外發(fā)送請求: 當微服務(wù)需要向外部服務(wù)發(fā)起請求時,SDK會在請求中添加之前獲取到的流量標識。這意味著,SDK會將其添加到新的請求頭、請求體或其他適當?shù)奈恢茫源_保這個標識被透傳到外部服務(wù)。
    通過以上步驟,基礎(chǔ) SDK 能夠在微服務(wù)內(nèi)部對流量進行攔截、獲取流量標識,并在微服務(wù)發(fā)起外部請求時,將這個標識透傳到外部服務(wù)中去。
    在一些大型企業(yè)內(nèi)部,基礎(chǔ)設(shè)施團隊會提供基礎(chǔ) SDK 供產(chǎn)品團隊使用,也有一些相關(guān)的開源方案可以參考,例如阿里開源的KtEnv,提供了一個Java語言的SDK示例,采用Spring框架的切面機制來自動化"環(huán)境標簽"的傳遞,其中環(huán)境標簽即為一種流量標識。
使用基礎(chǔ)Agent方式

使用 Agent 技術(shù)實現(xiàn)流量標識透傳是一種相對隱式且高度可配置的方式。Agent 是一種可以介入到 JVM 運行時的程序,它可以對 Java 應(yīng)用程序進行動態(tài)的字節(jié)碼操作和增強。

在實現(xiàn)流量標識透傳時,Agent 可以通過動態(tài)字節(jié)碼增強技術(shù),通過字節(jié)碼操作工具(如ASM、ByteBuddy等)對特定類或方法進行字節(jié)碼增強,動態(tài)地修改微服務(wù)應(yīng)用的字節(jié)碼,使得在請求處理鏈路中自動獲取到流量標識,并在請求發(fā)起時將這些標識添加到外部請求中。這些標識可能包括從HTTP頭部、上下文信息、或者其他標識性的數(shù)據(jù)。

有一些基礎(chǔ)Agent開源方案可以選擇參考,如:Homer,這是專門為javaweb應(yīng)用提供了無感知的header透傳的開源方案,華為的Sermant,Sermant 是利用JavaAgent技術(shù)為Java應(yīng)用程序提供服務(wù)網(wǎng)格功能的開源方案,提供了流量透傳插件tag-transmission,可以幫助微服務(wù)實現(xiàn)流量透傳功能。

三種方式總結(jié)

這三種實現(xiàn)流量標識透傳的方式各自具有獨特的優(yōu)勢和適用場景。總結(jié)如下:

  • 業(yè)務(wù)代碼修改: 這種方式簡單直接,但會增加業(yè)務(wù)代碼的復(fù)雜性和維護成本,尤其在大型微服務(wù)體系中,需要在多個服務(wù)間添加相似的邏輯,不夠靈活和智能,實際應(yīng)用較少。
  • 基礎(chǔ) SDK: 使用基礎(chǔ) SDK 相對于業(yè)務(wù)代碼修改更為智能化和自動化,減少了對業(yè)務(wù)代碼的侵入,同時也能夠提供一定程度的可配置性和擴展性,但對業(yè)務(wù)代碼仍然有侵入,并且和語言相關(guān),在大型多語言微服務(wù)體系中需要提供多語言SDK,另外 SDK 版本升級困難。
  • Agent 方式: 基于 Agent 技術(shù),可以在不修改業(yè)務(wù)代碼的情況下,實現(xiàn)流量標識的攔截和傳遞。這種方式尤其適用于不想或不能直接修改業(yè)務(wù)代碼的場景,其靈活性和智能化程度較高,但也存在和語言綁定,版本升級相對困難的問題。
    總體而言,三種方式各有利弊,在實際場景中,需要根據(jù)具體需求和現(xiàn)有架構(gòu),選擇適合的方式。

流量路由

流量路由和微服務(wù)標識類似,由于傳統(tǒng)模式和云原生模式都支持,較流量標識簡單很多。

在傳統(tǒng)微服務(wù)框架(如 Spring Cloud)中,實現(xiàn)動態(tài)路由通常通過 API 網(wǎng)關(guān)(如Spring Cloud Gateway)或負載均衡器(如Netflix Ribbon)等組件,根據(jù)特定的策略或規(guī)則,對流量進行分發(fā)和路由。例如,可以基于請求頭中的流量標識信息,利用負載均衡策略,將請求分發(fā)到不同版本的微服務(wù)實例上,實現(xiàn)動態(tài)路由。

而在云原生架構(gòu)下(例如 Kubernetes + Istio),動態(tài)路由更加簡單。通過 Istio 中的流量管理功能,定義Gateway、VirtualService、DestinationRule等規(guī)則和配置來實現(xiàn)流量的精細化控制和路由。

3全鏈路灰度發(fā)布實踐

我們在云原生模式下,對概述部分圖1 所示的微服務(wù)進行全鏈路灰度發(fā)布實踐。微服務(wù)版本情況及調(diào)用鏈路和圖 1 一致,微服務(wù)實例列表如下:

圖片圖片

網(wǎng)關(guān)采用 Istio Ingress Gateway,流量標識透傳采用基礎(chǔ) Agent 方式,可以在微服務(wù)調(diào)用鏈路中透傳 key 為 et-mark 的 HTTP Request Header ,流量路由通過 Istio 流量管理功能實現(xiàn),關(guān)鍵Gateway、VirtualService、DestinationRule 規(guī)則部分如下:

---
apiVersion: networking.istio.io/v1beta1
kind: Gateway
metadata:
  name: ingress-gateway
  namespace: e2e-canary-release
spec:
  selector:
    istio: ingressgateway
  servers:
  - hosts:
    - 'www.e2e-canary-release.com'
    port:
      name: http
      number: 80
      protocol: HTTP
---
apiVersion: networking.istio.io/v1beta1
kind: VirtualService
metadata:
  name: service-a
  namespace: e2e-canary-release
spec:
  gateways:
  - e2e-canary-release/ingress-gateway
  hosts:
  - 'www.e2e-canary-release.com'
  http:
  - route:
    - destination:
        host: service-a
---
apiVersion: networking.istio.io/v1beta1
kind: VirtualService
metadata:
  name: service-b
  namespace: e2e-canary-release
spec:
  hosts:
  - service-b
  http:
  - match:
    - headers:
        et-mark:
          exact: v2
    route:
    - destination:
        host: service-b
        subset: v2
  - route:
    - destination:
        host: service-b
        subset: v1
---
apiVersion: networking.istio.io/v1beta1
kind: DestinationRule
metadata:
  name: service-b
  namespace: e2e-canary-release
spec:
  host: service-b
  subsets:
  - labels:
      version: v1
    name: v1
  - labels:
      version: v2
    name: v2

實際效果如下,可以看到默認情況下請求流量流經(jīng)的微服務(wù)版本均為正式版本v1,當請求header中包含流量標識時,即流量為灰度流量時,會按照圖1 中的灰色路徑流轉(zhuǎn),實現(xiàn)了全鏈路灰度發(fā)布。

圖片圖片


圖片圖片

4總結(jié)

本文首先介紹了全鏈路灰度發(fā)布的概念、作用以及實現(xiàn)全鏈路灰度發(fā)布時需要解決的關(guān)鍵問題,針對每個問題分別從傳統(tǒng)模式和云原生模式介紹了對應(yīng)的解決方案,其中對流量標識透傳做了詳細的介紹,然后在云原生模式下,對微服務(wù) Demo 進行了全鏈路灰度發(fā)布實踐,展示了實踐效果。由于能力和時間有限,一些內(nèi)容僅進行了粗淺介紹,希望后續(xù)可以繼續(xù)深入研究分享,文中存在錯誤的地方,也望大家指正。

5參考文章及相關(guān)鏈接

作者:張海文,中國移動云能力中心高級軟件研發(fā)工程師,移動云服務(wù)網(wǎng)格負責(zé)人,QCon、KubeCon等大會分享者,專注于云原生、微服務(wù)、算力網(wǎng)絡(luò)等。

責(zé)任編輯:武曉燕 來源: 暢聊云原生
相關(guān)推薦

2024-12-16 13:34:35

2025-03-04 08:53:10

2023-11-21 09:35:49

全量部署微服務(wù)

2023-11-13 10:41:44

Spring微服務(wù)

2022-08-31 22:25:53

微服務(wù)架構(gòu)DevOPs

2023-11-14 09:04:15

用戶節(jié)點不可用

2021-11-18 10:01:00

Istio 全鏈路灰度微服務(wù)框架

2023-01-30 22:34:44

Node.js前端

2022-12-26 11:57:41

數(shù)據(jù)庫治理

2023-10-16 23:43:52

云原生可觀測性

2022-07-22 07:59:17

日志方案

2022-01-04 17:08:02

全鏈路觀測平臺

2022-04-27 10:53:34

web優(yōu)化性能

2024-03-13 08:56:17

全鏈路壓力測試

2023-10-30 07:25:37

數(shù)據(jù)湖數(shù)據(jù)處理

2022-07-19 14:14:45

數(shù)字化服務(wù)

2022-12-05 09:08:12

微服務(wù)灰度發(fā)布

2009-10-29 16:46:12

LinkProof多鏈路負載均衡
點贊
收藏

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

国产成人精品一区二区在线 | 亚洲资源在线网| 日韩精品一区二区亚洲av观看| 欧美三级美国一级| 91麻豆精品国产91久久久资源速度| 国产精品自拍合集| 男男激情在线| 国产乱人伦偷精品视频不卡| 欧美一级黑人aaaaaaa做受| 婷婷国产成人精品视频| 黄色欧美网站| 欧美肥妇毛茸茸| 国产a级一级片| 在线观看中文字幕的网站| 久久久久国色av免费看影院| 亚洲一区二区三区乱码aⅴ蜜桃女 亚洲一区二区三区乱码aⅴ | 韩国一区二区三区四区| 日本韩国欧美| 亚洲香肠在线观看| 亚洲一区不卡在线| 人成在线免费视频| 国产成人综合在线观看| 国产精品尤物福利片在线观看| 日韩av黄色片| 欧美视频日韩| 精品国产一区二区三区久久久| 欧美成人三级伦在线观看| 精品网站999| 欧美日韩三级在线| 日本www在线播放| 色综合999| 中文字幕综合网| 欧美主播一区二区三区美女 久久精品人| 国内老熟妇对白hdxxxx| 老司机午夜精品99久久| 91高潮在线观看| 精品在线视频观看| 欧美在线日韩| 麻豆一区二区在线观看| 精品手机在线视频| 欧洲激情综合| 一区二区三区视频在线| 中文字幕国产专区| 一区二区三区视频免费观看| 亚洲精品国产综合久久| xxxwww国产| а√中文在线天堂精品| 日韩三级视频在线观看| 日韩欧美中文在线视频| 日韩欧美专区| 欧美日韩国产综合草草| av污在线观看| 国产情侣一区二区三区| 欧美日韩一卡二卡三卡 | 99re成人在线| 精品无人区一区二区三区| 日韩一区免费视频| 99re视频精品| 日韩高清av| aiai在线| 一区免费观看视频| 一区二区精品免费视频| 超碰公开在线| 一区二区三区**美女毛片| 国产日本欧美在线| 国产精品69xx| 性欧美疯狂xxxxbbbb| 欧美一级视频免费看| 校园春色亚洲| 91福利视频网站| 玖玖爱视频在线| 一级毛片精品毛片| 日韩h在线观看| jizz中文字幕| 久久精品欧美一区| 国内精品400部情侣激情| 91精品国产乱码久久久张津瑜| 男女精品视频| 国产精品久久久久久久久久久不卡| 真实新婚偷拍xxxxx| 精品一区二区三区视频| 国产精品免费在线| 国产一二三在线观看| 亚洲欧洲成人自拍| 日韩视频免费播放| 四虎4545www国产精品| 欧美日韩国产在线观看| 四虎永久免费观看| 精品freesex老太交| 欧美精品免费在线| 国产精品老女人| 蜜臀久久99精品久久久画质超高清 | 97精品久久久午夜一区二区三区| 手机成人在线| 国产丝袜视频在线播放| 欧美色综合久久| 中文字幕在线播放一区二区| 亚洲人成网亚洲欧洲无码| 久久精品国产一区| 成人在线免费看视频| 久久电影网电视剧免费观看| 国产九色91| 美女av在线播放| 日韩欧美综合在线视频| 国产不卡的av| 国产伦精品一区二区三区千人斩 | 国产精品正在播放| 欧美亚州在线观看| 香蕉成人app免费看片| 在线观看不卡一区| 91九色蝌蚪porny| 婷婷久久一区| 国产精品www| 五月天婷婷社区| 亚洲精选一二三| av网址在线观看免费| 果冻天美麻豆一区二区国产| 久久精品国产一区二区三区 | 日本色综合中文字幕| 极品校花啪啪激情久久| 丝袜综合欧美| 8x福利精品第一导航| 少妇久久久久久久久久| 亚洲理伦在线| 国产精品v欧美精品v日韩精品| 日本在线免费播放| 日本二三区不卡| 久久国产精品无码一级毛片| 黄色亚洲在线| 97超碰人人模人人爽人人看| 137大胆人体在线观看| 色婷婷一区二区| 三叶草欧洲码在线| 亚洲激精日韩激精欧美精品| 俄罗斯精品一区二区| 好操啊在线观看免费视频| 欧美日韩在线播| 日本少妇xxxxx| 日韩专区中文字幕一区二区| 欧美成人蜜桃| 中文字幕在线看片| 亚洲免费电影在线观看| 国产微拍精品一区| 91欧美一区二区| 成年人视频观看| 美女网站色精品尤物极品姐弟| 欧美激情日韩图片| 亚洲奶汁xxxx哺乳期| 伊人开心综合网| 日本成人xxx| 欧美日韩网址| 国产一级精品aaaaa看| 9lporm自拍视频区在线| 亚洲国产日韩欧美在线图片| 日韩毛片在线视频| 99国产精品久| 久久久精品三级| 欧美精品色图| 成人黄色大片在线免费观看| 麻豆影视国产在线观看| 日韩亚洲电影在线| 黄网站免费在线| 99久久精品国产一区| 国产亚洲天堂网| 欧美日韩有码| 成人在线国产精品| 97久久人人超碰caoprom| 亚洲精品动漫100p| 国产午夜麻豆影院在线观看| 国产精品天天看| 国产精品一级无码| 一本久久知道综合久久| 色女人综合av| 日韩精品一区二区三区中文在线| 欧美大片免费观看| 免费在线一级视频| 欧美电影一区二区三区| 国产一级在线播放| 国产色一区二区| 亚洲一二三av| 国产精品日韩| 一本一生久久a久久精品综合蜜 | 密臀av在线播放| 中文字幕精品网| 亚洲美女综合网| 欧美性欧美巨大黑白大战| 日本中文字幕免费在线观看| 99re视频精品| 伊人五月天婷婷| 亚洲免费综合| 干日本少妇视频| 免费看成人吃奶视频在线| 亚洲精品女av网站| 韩国精品主播一区二区在线观看| 美女少妇精品视频| 三级做a全过程在线观看| 欧美人牲a欧美精品| 国产成人精品片| 亚洲欧美激情视频在线观看一区二区三区 | 视色,视色影院,视色影库,视色网| 久久精品凹凸全集| 成人欧美在线观看| 第84页国产精品| 九九热最新视频//这里只有精品| 久草在线免费福利资源| 精品国产伦一区二区三区观看体验 | 午夜精品区一区二区三| 噜噜噜狠狠夜夜躁精品仙踪林| 国产在线视频91| 欧美电影网址| 欧美激情2020午夜免费观看| 午夜视频在线观看网站| 亚洲免费高清视频| 亚洲美女福利视频| 91麻豆精品国产91久久久久 | 56国语精品自产拍在线观看| 免费黄色网址在线| 亚洲最大的成人av| 亚洲一区电影在线观看| 久久久不卡网国产精品一区| 亚洲婷婷在线观看| 麻豆精品新av中文字幕| 日韩精品无码一区二区三区免费| 99国产精品久久久久久久成人热| 日本三日本三级少妇三级66| 波多野结衣在线观看一区二区三区| 久久国产主播精品| 国内视频在线精品| 国产精品区一区| 午夜精品在线| 99在线国产| 欧洲大片精品免费永久看nba| 国产一区玩具在线观看| 青青草国产一区二区三区| 国产精品美女视频网站| 写真福利精品福利在线观看| 欧美亚洲日本黄色| 亚洲天堂资源| 91av在线不卡| 丁香六月综合| 欧日韩在线观看| 久久爱91午夜羞羞| 日韩av男人的天堂| 成人va天堂| 国产精品成人av性教育| 日本综合视频| 国产精品色午夜在线观看| 成人精品国产亚洲| 91精品国产综合久久香蕉| 亚洲一区av| 成人久久18免费网站图片| 99久久久国产| 91久久精品www人人做人人爽| 经典三级久久| 成人女人免费毛片| 欧美做受69| 日韩jizzz| 欧美国产小视频| 熟女熟妇伦久久影院毛片一区二区| 在线中文字幕亚洲| a天堂资源在线观看| 国产日韩欧美在线播放不卡| 欧美日韩亚洲第一| 麻豆国产精品777777在线| 国产毛片久久久久久| 丁香婷婷深情五月亚洲| 黄色短视频在线观看| 国产精品午夜免费| 欧美成人片在线观看| 天天爽夜夜爽夜夜爽精品视频| av大全在线观看| 欧美夫妻性生活| 色欲av永久无码精品无码蜜桃| 亚洲人成伊人成综合网久久久| 午夜在线观看视频| 久久久久久欧美| 成人视屏在线观看| 91视频-88av| 欧美网色网址| 亚洲成人一区二区三区| 欧美va亚洲va日韩∨a综合色| 欧美黑人经典片免费观看| 日韩不卡一区二区三区| 亚洲热在线视频| 久久影院视频免费| 永久免费看mv网站入口| 亚洲aaa精品| 中文字字幕在线观看| 精品处破学生在线二十三| 成人免费在线视频网| 欧美黑人性视频| aaaa欧美| 久久精品aaaaaa毛片| 久久精品国产大片免费观看| 亚洲图片欧美一区| 中文字幕一区二区三区四区五区人 | 欧美三级网站在线观看| 日韩一二三四区| 国产98在线| 韩国v欧美v日本v亚洲| 精品国产美女a久久9999| 好吊色欧美一区二区三区视频| 成人影院在线| 国产极品尤物在线| 黑人巨大精品欧美黑白配亚洲| 日韩片在线观看| 亚洲乱码中文字幕| 中文字幕免费播放| 国产偷亚洲偷欧美偷精品| 黄页在线观看免费| 国产区亚洲区欧美区| 国产精品亚洲片在线播放| 国产二区视频在线| 国产一区二区三区免费播放| 非洲一级黄色片| 欧美日韩国产限制| 亚洲精品一区二区口爆| 337p日本欧洲亚洲大胆色噜噜| 免费的黄网站在线观看| 国产精品久久久久福利| 天堂成人娱乐在线视频免费播放网站| 国产精品视频一二三四区| 经典三级在线一区| 91香蕉国产视频| 欧美三级乱人伦电影| 岛国最新视频免费在线观看| 欧美一二三视频| 亚洲动漫在线观看| 国自产拍偷拍精品啪啪一区二区| 高清不卡一区二区| 青娱乐国产精品| 欧美一级爆毛片| mm1313亚洲国产精品美女| 亚洲free性xxxx护士hd| 91超碰国产精品| 可以看污的网站| 亚洲少妇屁股交4| 国产同性人妖ts口直男| 日韩视频一区在线| 国产精品国产三级在线观看| 99精品一级欧美片免费播放| 精久久久久久久久久久| 一区二区三区四区五区| 欧美一区二区三区免费视频| 国产黄色在线免费观看| 51国产成人精品午夜福中文下载| 女同性一区二区三区人了人一| 被黑人猛躁10次高潮视频| 一区二区三区日韩| 亚洲AV无码国产精品午夜字幕| 欧美高清性猛交| 国产精品qvod| 免费高清在线观看免费| 国产调教视频一区| 中国精品一区二区| 久久精品国产清自在天天线| 视频欧美一区| 精品少妇人妻av免费久久洗澡| 92国产精品观看| japanese国产在线观看| 久久精彩免费视频| 视频一区日韩精品| 91av资源网| 国产精品久久久久婷婷| 国产精品入口免费软件| 在线欧美福利| 亚洲精品视频大全| 91传媒视频在线播放| 色大18成网站www在线观看| 成人精品久久一区二区三区| 欧美日韩亚洲一区二区三区在线| 黄色av网址在线观看| 色狠狠桃花综合| 91麻豆一二三四在线| 久久99国产精品99久久| 免费在线观看不卡| 成人观看免费视频| 亚洲乱码国产乱码精品精| 电影在线观看一区二区| 免费看黄色a级片| 久久综合狠狠综合| 国产一区二区麻豆| 久久久久久久久亚洲| 精品国产精品| 亚洲AV无码久久精品国产一区| 天天综合网 天天综合色| 69视频在线观看| 国产精品乱子乱xxxx| 日韩精品三区四区| 欧美日韩一级在线观看| 亚洲色图50p| 秋霞影院一区| 日韩视频免费在线播放| 亚洲宅男天堂在线观看无病毒 | 久久伊人免费视频| 台湾亚洲精品一区二区tv| 免费成人黄色大片| 欧美性猛交xxxx乱大交极品| 2024最新电影免费在线观看| 日本免费高清一区二区|