精品欧美一区二区三区在线观看 _久久久久国色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ù)棧公眾號

日韩美女啊v在线免费观看| 欧美.www| 色激情天天射综合网| 日本一区二区不卡高清更新| 亚洲自拍第二页| 亚洲精品网址| 日韩av一卡二卡| 黄色一级二级三级| 4438x成人网全国最大| aa级大片欧美| 国产精品中文在线| 日韩黄色a级片| 日韩精品免费| 欧美精品一区男女天堂| 蜜臀视频一区二区三区| 青春草在线免费视频| 久久久久久久综合日本| 91热福利电影| 手机看片久久久| 一区二区三区毛片免费| 精品亚洲国产成av人片传媒| 午夜视频在线网站| 夜鲁夜鲁夜鲁视频在线播放| 中文字幕在线免费不卡| 欧美日本韩国一区二区三区| 草逼视频免费看| 青青国产91久久久久久| 777精品视频| 亚洲色婷婷一区二区三区| 国产日产精品一区二区三区四区的观看方式| 91麻豆精品91久久久久同性| aaa毛片在线观看| 精品无码一区二区三区电影桃花 | 国产成人精品视频在线观看| 三级黄色在线观看| 欧美极品在线观看| 亚洲国产精品成人精品| 欧美性猛交乱大交| 日韩欧乱色一区二区三区在线| 欧美日韩亚洲精品内裤| 欧美国产视频一区| 99热国产在线| 亚洲人妖av一区二区| 日韩不卡av| 天堂中文网在线| 福利一区二区在线观看| 亚洲综合精品伊人久久| 亚洲自拍偷拍另类| 免费观看成人鲁鲁鲁鲁鲁视频| 91精品国产91久久久久久| 免费一级片视频| 亚洲欧洲日韩| 久久国产精品久久久| jizzjizzjizz国产| 色婷婷色综合| 中文字幕亚洲欧美在线| 日本综合在线观看| 全球成人免费直播| 这里只有精品在线观看| www成人啪啪18软件| 精品日韩免费| 这里精品视频免费| 国产三级aaa| 我不卡伦不卡影院| 久久影视电视剧免费网站清宫辞电视 | 国产天堂av在线| 久久久久国产| 久久国产天堂福利天堂| 99热精品免费| 国产精品v亚洲精品v日韩精品| 欧美成人精品在线播放| 欧美日韩一级大片| 亚洲激精日韩激精欧美精品| 国模私拍一区二区三区| 久久久久久久久久影院| 久久综合九色综合欧美狠狠| 国产成人一区二| 亚洲视屏在线观看| 国产乱码字幕精品高清av | 欧美国产乱子伦| 一区二区精品视频| 深夜国产在线播放| 精品国产成人在线| 亚欧在线免费观看| 亚洲欧洲日韩精品在线| 日韩欧美一级二级三级| 免费在线观看成年人视频| 色棕色天天综合网| 久久精品精品电影网| 免费视频网站www| 亚洲综合不卡| 国产日韩欧美日韩大片| 亚洲av永久无码国产精品久久| av不卡免费电影| 亚洲欧美日韩精品在线| 成人在线免费看黄| 日韩欧美国产成人| 一二三av在线| 在线亚洲a色| 久久精品国产69国产精品亚洲| 高h视频免费观看| 国产免费成人| 91久久精品在线| 天堂网www中文在线| 久久精品一区八戒影视| 影音先锋成人资源网站| 自拍偷拍亚洲视频| 91精品国产福利在线观看| 国产成人精品无码片区在线| 日韩精品91| 91国产精品91| 国产精品久久久久久免费免熟| av激情亚洲男人天堂| 中文字幕日韩精品久久| 日韩影院在线| 日韩欧美高清dvd碟片| 亚洲精品一区二区三区影院忠贞| 欧美日韩a区| 国产精品久久久久久五月尺| 日本人妻丰满熟妇久久久久久| 国产精品久久久久久亚洲毛片 | 亚洲av无码一区二区三区人| 亚洲精品888| 日本免费在线精品| 亚洲爱情岛论坛永久| 国产精品视频第一区| 伊人成色综合网| 综合激情网...| 久久精品久久久久久国产 免费| xxxx.国产| 成人午夜视频网站| 天天爱天天做天天操| 成人av集中营| 亚洲精品一区久久久久久| 免费网站观看www在线观| 久久电影网站中文字幕| 欧美一区二区在线| 欧美一级鲁丝片| 日韩精品中文字幕一区二区三区| 成人免费视频入口| 日韩av在线发布| 久久久久久亚洲精品不卡4k岛国| 欧美日韩经典丝袜| 欧美一区二视频| 成年人午夜剧场| 久久精品久久久精品美女| 日本不卡一区| 日韩av大片站长工具| 亚洲欧美一区二区三区在线| 国产成人免费观看视频| 成人sese在线| 日本韩国欧美在线观看| 久久久伦理片| 2019中文字幕在线免费观看| 污污的视频网站在线观看| 亚洲成在人线免费| 日韩精品视频一区二区| 99热在线精品观看| 精品综合在线| 国产精品粉嫩| 一区二区三区天堂av| 中文字幕在线天堂| 中文在线免费一区三区高中清不卡| 久久久久久三级| 波多野结衣在线播放一区| 国产91九色视频| 高h视频在线| 欧美日韩黄色一区二区| www.超碰在线观看| 成人午夜视频网站| 欧美黄色免费影院| av在线不卡顿| 91久久精品国产91久久性色| 黄色羞羞视频在线观看| 国产午夜精品久久久| 国产污视频网站| 一区在线观看免费| 日韩av无码一区二区三区不卡| 亚洲国产高清一区| 欧美一级日本a级v片| 色噜噜成人av在线| 欧美激情精品久久久久久久变态 | 国产精品18久久久久久vr| 国产传媒久久久| 日韩影视高清在线观看| 国产成人欧美在线观看| av免费在线观| 亚洲精品乱码久久久久久金桔影视| 国产精品自拍99| 国产精品久久久久影院色老大| 麻豆tv在线观看| 乱人伦精品视频在线观看| 一区二区三区四区五区视频 | 国产一区二区三区免费不卡| 日韩精选视频| 欧美激情高清视频| 精品电影在线| 日韩视频一区在线观看| 天天综合网久久综合网| 日韩理论片一区二区| 在线观看国产免费视频 | aaaaaaaa毛片| 每日更新成人在线视频| 免费观看国产视频在线| 欧美热在线视频精品999| 91|九色|视频| 你懂得影院夜精品a| 美女av一区二区| 国产毛片av在线| 精品久久久久久久久久久久包黑料| 亚洲综合成人av| 亚洲国产精品久久久久秋霞影院| 美国黑人一级大黄| av网站免费线看精品| 亚洲国产日韩在线一区| 日韩av电影免费观看高清完整版| 国产玉足脚交久久欧美| 91亚洲成人| 欧美精品一区二区三区在线看午夜 | 亚洲精品免费在线观看视频| 欧美色男人天堂| 你懂的国产视频| 亚洲一线二线三线视频| 永久免费看片直接| 欧美激情一区二区三区不卡| av电影在线播放| 国产一区二区精品久久91| 久久久精品三级| 久久久久国产精品一区二区| 日本十八禁视频无遮挡| 欧美欧美全黄| 久久久久久久久久久久久国产| 成人综合一区| 青青草原成人| 亚州综合一区| 精品久久中出| 岛国精品一区| 成人高清在线观看| 精品一区二区三区中文字幕| 国产精品视频不卡| 精品裸体bbb| 国产精品白嫩美女在线观看| 亚洲妇女成熟| 国产91对白在线播放| av中文在线资源| 国模视频一区二区三区| 黄色小说在线播放| 久久久久久国产精品| 色yeye免费人成网站在线观看| 欧美成人sm免费视频| 最爽无遮挡行房视频在线| 久久色免费在线视频| 欧美jizz18hd性欧美| 最近2019中文字幕在线高清| av在线播放网| 中文国产亚洲喷潮| 日韩美女网站| 久久天天躁狠狠躁夜夜躁| caoporm免费视频在线| 九九热视频这里只有精品| 三级福利片在线观看| 久久久久久久国产| 国产中文在线播放| 欧美中文在线观看国产| 最近高清中文在线字幕在线观看1| 欧美综合国产精品久久丁香| 91精品论坛| 国产精品视频最多的网站| 四虎国产精品成人免费影视| 成人国产精品久久久久久亚洲| www.久久久.com| av在线不卡一区| 欧美人与动xxxxz0oz| 欧美日韩精品久久久免费观看| av影片在线一区| 国产一区一区三区| 一区在线免费| 熟妇人妻va精品中文字幕| 蜜臀精品一区二区三区在线观看| 一二三级黄色片| 不卡一二三区首页| 免费看的黄色网| 亚洲免费观看高清完整版在线| 精品亚洲永久免费| 91福利社在线观看| 国产黄色一级大片| 国产视频精品va久久久久久| 日本免费视频在线观看| 久久久久久亚洲精品| 香蕉成人av| 亚洲va欧美va在线观看| 视频福利一区| 中文字幕中文字幕在线中心一区| 国产综合色产| the porn av| 成人久久18免费网站麻豆| 少妇精品无码一区二区免费视频| 亚洲精品国久久99热| 在线观看日本视频| 91精品国产全国免费观看| 三级在线观看| 欧美成人久久久| 美女网站视频一区| 国产精品日韩高清| 久久香蕉国产| 北条麻妃69av| 国产精品77777竹菊影视小说| 亚洲国产无码精品| 亚洲一二三专区| 一区二区三区午夜| 国产视频亚洲视频| 青春草免费在线视频| 国产精品久久久久aaaa九色| 国产在线播放精品| 免费在线观看污污视频| 久久久久中文| jlzzjizz在线播放观看| 亚洲精品综合在线| 在线视频播放大全| 精品香蕉在线观看视频一| 免费在线看污片| 成人免费激情视频| 欧美午夜精彩| 日韩人妻精品无码一区二区三区| 国产成人亚洲精品狼色在线| 日本成人免费在线观看 | 久久青草国产手机看片福利盒子| 久久高清内射无套| 欧美日韩国产电影| 999国产在线视频| 欧美在线观看一区二区三区| 国产66精品| 亚洲综合一区二区精品导航| 小早川怜子一区二区的演员表| 色哟哟一区二区在线观看| 丰满人妻一区二区三区免费视频 | 91ph在线| 国产成人亚洲综合青青| 日韩深夜福利| 男女啪啪免费视频网站| 国产精品一区2区| 婷婷激情四射网| 欧美日韩国产免费| 在线看黄色av| 国产精品久久久久久久久| 麻豆一区二区麻豆免费观看| 国产日韩亚洲欧美在线| 国产福利一区二区三区在线视频| 日韩av毛片在线观看| 精品视频色一区| 无遮挡的视频在线观看| 国产精品欧美久久久| 久久视频免费在线播放| 中文字幕资源网| 亚洲图片在线综合| 625成人欧美午夜电影| 久草一区二区| 久久久天天操| 制服 丝袜 综合 日韩 欧美| 一本久久综合亚洲鲁鲁五月天| 欧洲天堂在线观看| 日韩暖暖在线视频| 日韩成人综合| 国内自拍第二页| 一区二区三区在线视频免费观看| 精品久久久免费视频| 欧美高清视频免费观看| 噜噜噜天天躁狠狠躁夜夜精品| 国产男女在线观看| 国产欧美日韩亚州综合 | 国产精品综合网站| 91综合在线| 波多野结衣电影免费观看| 亚洲综合图片区| 欧美一级性视频| 91精品国产精品| 久久不见久久见免费视频7| 在线观看免费黄网站| 一区二区中文视频| 丰满熟女一区二区三区| 日产精品久久久一区二区福利| 青青草国产成人a∨下载安卓| 一级网站在线观看| 午夜视频一区二区| 成人资源www网在线最新版| 成人在线国产精品| 亚洲黄网站黄| 91免费在线看片| 精品盗摄一区二区三区| 超碰国产一区| 免费看污污视频| 91首页免费视频| 91在线观看喷潮| 亚洲97在线观看| 欧美残忍xxxx极端| 国产精品久久久久久亚洲色| 亚洲经典三级| 成人在线播放网址| 久久久久成人黄色影片| 国产伦一区二区|