日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

全链路灰度这样做,新需求迭代上线也能放心干饭

發(fā)布時(shí)間:2025/3/20 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 全链路灰度这样做,新需求迭代上线也能放心干饭 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

作者:泮圣偉(十眠)

概要

?全鏈路灰度是微服務(wù)最核心的功能之一,也一直是云上客戶在微服務(wù)化深入過程中必須具備的功能。全鏈路灰度因?yàn)樯婕暗降募夹g(shù)、場景眾多,如果云上企業(yè)一一自己實(shí)現(xiàn),需要花費(fèi)大量人力成本對(duì)其進(jìn)行擴(kuò)展與運(yùn)維。

涉及到的技術(shù)領(lǐng)域

  • ?RPC: 微服務(wù)之間的路由?

    • Java 體系涉及 Spring Cloud,Apache Dubbo 主流微服務(wù)框架,多語言涉及 Service Mesh?
    • 端云互聯(lián)場景,線上流量 DEBUG。本地通過跳板機(jī)將本地服務(wù)注冊(cè)到注冊(cè)中心,希望線上流量滿足路由規(guī)則后路由到本地服務(wù)對(duì)于的實(shí)例上再進(jìn)行 DEBUG,不滿足路由規(guī)則的流量路由到線上實(shí)例?
  • ?MQ?

    • ?全鏈路壓測場景下,壓測流量發(fā)送消息到影子 Topic,壓測流量只訂閱影子 Topic?
    • ?流量隔離/全鏈路灰度場景下,使用相同 Topic,線上流量訂閱線上消息,隔離流量只訂閱灰度消息?
  • ?Database?

    • ?全鏈路壓測場景下,壓測流量數(shù)據(jù)落庫到到影子表上?
    • ?高可用切流的場景下,禁止數(shù)據(jù)庫操作;單元化下,流量沒有單元標(biāo),禁止數(shù)據(jù)庫操作?
  • ?Redis?

    • ?全鏈路壓測場景下,壓測流量緩存落庫到到影子 KEY 上?
    • ?高可用切流的場景下,禁止緩存操作;單元化下,流量沒有單元標(biāo),禁止緩存操作?
  • ?分布式任務(wù)調(diào)度?

    • ?對(duì)于任務(wù)調(diào)度,灰度環(huán)境提交的任務(wù),被調(diào)度到灰度環(huán)境的機(jī)器上執(zhí)行?
  • ?前端?

    • ?不同客戶看到的頁面信息不一致?
  • ?可觀測性?

    • ?通過可觀測性監(jiān)控流量走向,查看流量逃逸情況?

MSE 全鏈路灰度解決方案

?目前 MSE 服務(wù)治理專業(yè)版提供了完整的產(chǎn)品化的全鏈路灰度解決方案,覆蓋 RPC、MQ、可觀測性等絕大多數(shù)場景。只要您的架構(gòu)是基于 Spring Cloud 或者 Dubbo 框架,您的應(yīng)用無需升級(jí),無需一行代碼改動(dòng),即可玩轉(zhuǎn)企業(yè)級(jí)全鏈路灰度功能。?

  • ?全鏈路隔離流量泳道?

?1) 通過設(shè)置流量規(guī)則對(duì)所需流量進(jìn)行’染色’,'染色’流量會(huì)路由到灰度機(jī)器。?

?2) 灰度流量攜帶灰度標(biāo)往下游傳遞,形成灰度專屬環(huán)境流量泳道,無灰度環(huán)境應(yīng)用會(huì)默認(rèn)選擇未打標(biāo)的基線環(huán)境。?

  • ?端到端的穩(wěn)定基線環(huán)境?

?未打標(biāo)的應(yīng)用屬于基線穩(wěn)定版本的應(yīng)用,即穩(wěn)定的線上環(huán)境。當(dāng)我們將發(fā)布對(duì)應(yīng)的灰度版本代碼,然后可以配置規(guī)則定向引入特定的線上流量,控制灰度代碼的風(fēng)險(xiǎn)。?

  • ?流量一鍵動(dòng)態(tài)切流?

?流量規(guī)則定制后,可根據(jù)需求進(jìn)行一鍵停啟,增刪改查,實(shí)時(shí)生效。灰度引流更便捷。?

  • ?可觀測能力?

?具備泳道級(jí)別的單應(yīng)用可觀測能力

?同時(shí)具備全鏈路應(yīng)用的可觀測能力,可以從全局視角觀察流量是否存在逃逸情況。灰沒灰到,一目了然。

  • ?低成本接入,基于 Java Agent 技術(shù)實(shí)現(xiàn)無需修改一行業(yè)務(wù)代碼?

?MSE 微服務(wù)治理能力基于 Java Agent 字節(jié)碼增強(qiáng)的技術(shù)實(shí)現(xiàn),無縫支持市面上近5年的所有 Spring Cloud 和 Dubbo 的版本,用戶不用改一行代碼就可以使用,不需要改變業(yè)務(wù)的現(xiàn)有架構(gòu),隨時(shí)可上可下,沒有綁定。只需開啟 MSE 微服務(wù)治理專業(yè)版,在線配置,實(shí)時(shí)生效。?

  • ?具備無損上下線能力,使得發(fā)布更加絲滑?

?應(yīng)用開啟 MSE 微服務(wù)治理后就具備無損上下線能力,大流量下的發(fā)布、回滾、擴(kuò)容、縮容等場景,均能保證流量無損。?

如何使用 MSE 全鏈路灰度

?接下來將演示全鏈路灰度的能力,我們使用應(yīng)用的架構(gòu)由 Ingress-nginx 以及后端的微服務(wù)架構(gòu)(Spring Cloud)來組成,后端調(diào)用鏈路有3跳,購物車(a),交易中心(b),庫存中心(c),客戶端通過 客戶端或者是 H5 頁面來訪問后端服務(wù),他們通過 Nacos 注冊(cè)中心做服務(wù)發(fā)現(xiàn)。?

準(zhǔn)備工作

開通 MSE 微服務(wù)治理專業(yè)版

?登錄 MSE 治理中心控制臺(tái),如果您尚未開通 MSE 微服務(wù)治理,請(qǐng)根據(jù)提示開通專業(yè)版。如果您已經(jīng)開通了 MSE 微服務(wù)治理基礎(chǔ)版,請(qǐng)根據(jù)概覽頁中右側(cè)的提示,升級(jí)到 專業(yè)版。?

安裝 Ingress-nginx 組件

  • ?登錄?容器服務(wù)控制臺(tái)??? [1] ???。??
  • ?在左側(cè)導(dǎo)航欄選擇?市場 > 應(yīng)用目錄。 ??
  • ?在?應(yīng)用目錄?頁面搜索框中輸入 ?ack-ingress-nginx?,單擊?圖標(biāo),然后單擊組件。?
  • ?在?詳情?頁面選擇組件的?命名空間?為 ?kube-system?,然后單擊?創(chuàng)建?。安裝完成后,在命名空間 ?kube-system ?中出現(xiàn) ?ack-ingress-nginx-default-controller ?應(yīng)用,表示安裝成功。?
  • 部署 Demo 應(yīng)用程序

    ?將下面的文件保存到 ingress-gray-demo-deployment-set.yaml 中,并執(zhí)行?kubectl apply -f ingress-gray-demo-deployment-set.yaml?以部署應(yīng)用,這里我們將要部署 A, B, C 三個(gè)應(yīng)用,每個(gè)應(yīng)用分別部署一個(gè)基線版本和一個(gè)灰度版本。?

    # A 應(yīng)用 base 版本 --- apiVersion: apps/v1 kind: Deployment metadata:name: spring-cloud-a spec:replicas: 2selector:matchLabels:app: spring-cloud-atemplate:metadata:annotations:msePilotCreateAppName: spring-cloud-alabels:app: spring-cloud-aspec:containers:- env:- name: JAVA_HOMEvalue: /usr/lib/jvm/java-1.8-openjdk/jreimage: registry.cn-shanghai.aliyuncs.com/yizhan/spring-cloud-a:0.1-SNAPSHOTimagePullPolicy: Alwaysname: spring-cloud-aports:- containerPort: 20001livenessProbe:tcpSocket:port: 20001initialDelaySeconds: 10periodSeconds: 30# A 應(yīng)用 gray 版本 --- apiVersion: apps/v1 kind: Deployment metadata:name: spring-cloud-a-new spec:replicas: 2selector:matchLabels:app: spring-cloud-a-newstrategy:template:metadata:annotations:alicloud.service.tag: graymsePilotCreateAppName: spring-cloud-alabels:app: spring-cloud-a-newspec:containers:- env:- name: JAVA_HOMEvalue: /usr/lib/jvm/java-1.8-openjdk/jreimage: registry.cn-shanghai.aliyuncs.com/yizhan/spring-cloud-a:0.1-SNAPSHOTimagePullPolicy: Alwaysname: spring-cloud-a-newports:- containerPort: 20001livenessProbe:tcpSocket:port: 20001initialDelaySeconds: 10periodSeconds: 30# B 應(yīng)用 base 版本 --- apiVersion: apps/v1 kind: Deployment metadata:name: spring-cloud-b spec:replicas: 2selector:matchLabels:app: spring-cloud-bstrategy:template:metadata:annotations:msePilotCreateAppName: spring-cloud-blabels:app: spring-cloud-bspec:containers:- env:- name: JAVA_HOMEvalue: /usr/lib/jvm/java-1.8-openjdk/jreimage: registry.cn-shanghai.aliyuncs.com/yizhan/spring-cloud-b:0.1-SNAPSHOTimagePullPolicy: Alwaysname: spring-cloud-bports:- containerPort: 8080livenessProbe:tcpSocket:port: 20002initialDelaySeconds: 10periodSeconds: 30# B 應(yīng)用 gray 版本 --- apiVersion: apps/v1 kind: Deployment metadata:name: spring-cloud-b-new spec:replicas: 2selector:matchLabels:app: spring-cloud-b-newtemplate:metadata:annotations:alicloud.service.tag: graymsePilotCreateAppName: spring-cloud-blabels:app: spring-cloud-b-newspec:containers:- env:- name: JAVA_HOMEvalue: /usr/lib/jvm/java-1.8-openjdk/jreimage: registry.cn-shanghai.aliyuncs.com/yizhan/spring-cloud-b:0.1-SNAPSHOTimagePullPolicy: Alwaysname: spring-cloud-b-newports:- containerPort: 8080livenessProbe:tcpSocket:port: 20002initialDelaySeconds: 10periodSeconds: 30# C 應(yīng)用 base 版本 --- apiVersion: apps/v1 kind: Deployment metadata:name: spring-cloud-c spec:replicas: 2selector:matchLabels:app: spring-cloud-ctemplate:metadata:annotations:msePilotCreateAppName: spring-cloud-clabels:app: spring-cloud-cspec:containers:- env:- name: JAVA_HOMEvalue: /usr/lib/jvm/java-1.8-openjdk/jreimage: registry.cn-shanghai.aliyuncs.com/yizhan/spring-cloud-c:0.1-SNAPSHOTimagePullPolicy: Alwaysname: spring-cloud-cports:- containerPort: 8080livenessProbe:tcpSocket:port: 20003initialDelaySeconds: 10periodSeconds: 30# C 應(yīng)用 gray 版本 --- apiVersion: apps/v1 kind: Deployment metadata:name: spring-cloud-c-new spec:replicas: 2selector:matchLabels:app: spring-cloud-c-newtemplate:metadata:annotations:alicloud.service.tag: graymsePilotCreateAppName: spring-cloud-clabels:app: spring-cloud-c-newspec:containers:- env:- name: JAVA_HOMEvalue: /usr/lib/jvm/java-1.8-openjdk/jreimage: registry.cn-shanghai.aliyuncs.com/yizhan/spring-cloud-c:0.1-SNAPSHOTimagePullPolicy: IfNotPresentname: spring-cloud-c-newports:- containerPort: 8080livenessProbe:tcpSocket:port: 20003initialDelaySeconds: 10periodSeconds: 30# Nacos Server --- apiVersion: apps/v1 kind: Deployment metadata:name: nacos-server spec:replicas: 1selector:matchLabels:app: nacos-servertemplate:metadata:labels:app: nacos-serverspec:containers:- env:- name: MODEvalue: standaloneimage: nacos/nacos-server:latestimagePullPolicy: Alwaysname: nacos-serverdnsPolicy: ClusterFirstrestartPolicy: Always# Nacos Server Service 配置 --- apiVersion: v1 kind: Service metadata:name: nacos-server spec:ports:- port: 8848protocol: TCPtargetPort: 8848selector:app: nacos-servertype: ClusterIP

    ?針對(duì)入口應(yīng)用 A ,配置兩個(gè) k8s service, spring-cloud-a-base 對(duì)應(yīng) A 的 base 版本,spring-cloud-a-gray 對(duì)應(yīng) A 的 gray 版本。?

    apiVersion: v1 kind: Service metadata:name: spring-cloud-a-base spec:ports:- name: httpport: 20001protocol: TCPtargetPort: 20001selector:app: spring-cloud-a--- apiVersion: v1 kind: Service metadata:name: spring-cloud-a-gray spec:ports:- name: httpport: 20001protocol: TCPtargetPort: 20001selector:app: spring-cloud-a-new

    快速構(gòu)建全鏈路灰度能力

    • ?泳道為相同版本應(yīng)用定義的一套隔離環(huán)境。只有滿足了流控路由規(guī)則的請(qǐng)求流量才會(huì)路由到對(duì)應(yīng)泳道里的打標(biāo)應(yīng)用。一個(gè)應(yīng)用可以屬于多個(gè)泳道,一個(gè)泳道可以包含多個(gè)應(yīng)用,應(yīng)用和泳道是多對(duì)多的關(guān)系。?

    • ?泳道組:泳道的集合。泳道組的作用主要是為了區(qū)分不同團(tuán)隊(duì)或不同場景。?

    ?登錄?MSE 治理中心控制臺(tái)??? [2] ???,找到 ?微服務(wù)治理中心 > 全鏈路灰度??

    ?可以看到我們需要實(shí)現(xiàn)上述描述的能力,我們只需要兩個(gè)步驟,創(chuàng)建泳道組與創(chuàng)建泳道?

    創(chuàng)建泳道組

    ?點(diǎn)擊創(chuàng)建泳道組按鈕,并選擇我們泳道組涉及到的后端微服務(wù)應(yīng)用,按照上述 demo 來看就是 A, B, C?三個(gè)應(yīng)用?

    ??

    創(chuàng)建泳道

    ?在?全鏈路灰度?頁面上方選擇創(chuàng)建和泳道組時(shí)相同的微服務(wù)空間,然后底部單擊?點(diǎn)擊創(chuàng)建第一個(gè)分流泳道?。需要注意的是 加入全鏈路流量控制的應(yīng)用,將不再支持金絲雀發(fā)布、標(biāo)簽路由等功能。?

    ??

    ?按照產(chǎn)品的 Step 來,我們分別需要起一個(gè)泳道名稱,配置應(yīng)用標(biāo)簽,選擇泳道關(guān)聯(lián)的標(biāo)簽,去 ACK 控制臺(tái)配置 Ingress 的路由規(guī)則。?

    創(chuàng)建完成的泳道

    ?查看泳道,分別有兩種模式?

    • ?查看模式?

    • ?可編輯模式?

    入口 Ingress 規(guī)則

    ?配置入口的 Ingress 規(guī)則,訪問??www.base.com??路由到 a 應(yīng)用的 base 版本,訪問??www.gray.com??路由到 a 應(yīng)用的 gray 版本。?

    apiVersion: networking.k8s.io/v1beta1 kind: Ingress metadata:name: spring-cloud-a-base spec:rules:- host: www.base.comhttp:paths:- backend:serviceName: spring-cloud-a-baseservicePort: 20001path: /--- apiVersion: networking.k8s.io/v1beta1 kind: Ingress metadata:name: spring-cloud-a-gray spec:rules:- host: www.gray.comhttp:paths:- backend:serviceName: spring-cloud-a-grayservicePort: 20001path: /

    驗(yàn)證特征流量路由到目標(biāo)應(yīng)用

  • ?結(jié)果驗(yàn)證?
  • ?訪問??www.base.com??路由到基線環(huán)境?

    curl -H"Host:www.base.com" http://{ingress-ip}/a A[172.18.144.155] -> B[172.18.144.120] -> C[172.18.144.79]%

    ?此時(shí),訪問??www.gray.com??路由到灰度環(huán)境?

    curl -H"Host:www.gray.com" http://{ingress-ip}/a Agray[172.18.144.160] -> Bgray[172.18.144.57] -> Cgray[172.18.144.157]%
  • ?查看打標(biāo)應(yīng)用的流量監(jiān)控圖。?
  • ?在?全鏈路灰度?頁面選擇目標(biāo)泳道組。在涉及應(yīng)用中選擇對(duì)應(yīng)的應(yīng)用,即可出現(xiàn)相應(yīng)的流量視圖?

  • ?查看所有應(yīng)用監(jiān)控圖。??
  • ?除了查看單個(gè)應(yīng)用的監(jiān)控圖監(jiān)控圖外,我們還可以查看泳道組內(nèi)所有應(yīng)用的監(jiān)控圖。通過比對(duì)分析所有應(yīng)用的監(jiān)控圖,可以分析出更多有用信息。?

    • ?可以看出同一時(shí)刻,調(diào)用的是哪些應(yīng)用。?
    • ?分析流量逃逸問題,判斷逃逸對(duì)象。?

    總結(jié)

    ?MSE 服務(wù)治理的全鏈路灰度產(chǎn)品化能力還在不斷演進(jìn),目前我們支持了 MQ、RPC、可觀測等,后續(xù)還會(huì)支持 XXL-JOB 等更多的場景,目前我們有如何在 MSE 上實(shí)現(xiàn)多語言微服務(wù)治理?? [3] ??、使用 Cloud Toolkit 實(shí)現(xiàn)微服務(wù)的端云互聯(lián)?? [4] ??、基于 Ingress-nginx 網(wǎng)關(guān)實(shí)現(xiàn)全鏈路灰度?? [5] ??、基于 MSE 云原生網(wǎng)關(guān)實(shí)現(xiàn)全鏈路灰度?? [6] ??、基于自建 Spring Cloud Gateway 或 Zuul 網(wǎng)關(guān)實(shí)現(xiàn)全鏈路灰度?? [7] ??、基于消息隊(duì)列 RocketMQ 版實(shí)現(xiàn)全鏈路灰度?? [8] ??、通過 Jenkins 構(gòu)建 CI/CD 實(shí)現(xiàn)金絲雀發(fā)布?? [9] ??、微服務(wù)敏捷開發(fā)最佳實(shí)踐?? [10] ??等全鏈路灰度相關(guān)的完整解決方案,隨著用戶場景與實(shí)踐的增多,我們的解決方案還會(huì)不斷迭代與豐富。?

    典型案例

    來電科技

    ?MSE 服務(wù)治理幫助我們系統(tǒng)以很低的成本無侵入的方式快速實(shí)現(xiàn)了全鏈路灰度能力,進(jìn)一步提升了我們系統(tǒng)的穩(wěn)定性,讓我們新需求的迭代上線更加地安心。?

    ?-- 來電科技架構(gòu)師 湯長征?

    ?來電科技自 2014 年起開始進(jìn)入共享充電領(lǐng)域,定義并開創(chuàng)了行業(yè),屬于行業(yè)內(nèi)最早的共享充電企業(yè)。主要業(yè)務(wù)覆蓋充電寶自助租賃、定制商場導(dǎo)航機(jī)開發(fā)、廣告展示設(shè)備及廣告?zhèn)鞑サ确?wù)。來電科技擁有業(yè)內(nèi)立體化產(chǎn)品線,大中小機(jī)柜以及桌面型,目前全國超過 90%的城市實(shí)現(xiàn)業(yè)務(wù)服務(wù)落地,注冊(cè)用戶超 2 億人,實(shí)現(xiàn)全場景用戶需求。?

    全鏈路灰度落地

    ?來電的業(yè)務(wù)架構(gòu)如下,最上層是移動(dòng)端等用戶界面,自建的 Nginx 網(wǎng)關(guān)作為接入層,服務(wù)層就是各種服務(wù),使用的是 Spring Cloud 與 Dubbo 作為服務(wù)框架。?

    ??

    ?來電科技全鏈路灰度落地的架構(gòu)如下:?

    ?在 Nginx 層配置流量分流的配置,10% 的流量進(jìn)入灰度環(huán)境,90% 的流量進(jìn)入未打標(biāo)即線上正式環(huán)境,然后經(jīng)過灰度環(huán)境的流量會(huì)自動(dòng)被 MSE 染上對(duì)應(yīng)環(huán)境的顏色,從而進(jìn)行全鏈路的灰度路由,保證流量在灰度環(huán)境中閉環(huán),如果沒有灰度環(huán)境的機(jī)器,比如支付中心只有線上的機(jī)器,那么流量會(huì)走線上環(huán)境,當(dāng)我們數(shù)據(jù)中心有存在灰度環(huán)境的機(jī)器,那么灰度流量還會(huì)重新回到數(shù)據(jù)中心的灰度環(huán)境中。?

    ?MSE 的全鏈路灰度能力隨著客戶場景的深入而不斷擴(kuò)展與迭代,只有經(jīng)過客戶打磨的產(chǎn)品才會(huì)愈發(fā)歷久彌新,歡迎大家嘗鮮體驗(yàn)。?

    相關(guān)鏈接

    [1] 容器服務(wù)控制臺(tái)

    ??https://cs.console.aliyun.com/#/authorize??

    [2] MSE 治理中心控制臺(tái)

    ??https://mse.console.aliyun.com/?spm=a2c4g.11186623.2.13.f90a6a60WiEx0N#/auth??

    [3] 如何在 MSE 上實(shí)現(xiàn)多語言微服務(wù)治理

    ??https://help.aliyun.com/document_detail/184289.html??

    [4] 使用 Cloud Toolkit 實(shí)現(xiàn)微服務(wù)的端云互聯(lián)

    ??https://help.aliyun.com/document_detail/196920.html??

    [5] 基于 Ingress-nginx 網(wǎng)關(guān)實(shí)現(xiàn)全鏈路灰度

    ??https://help.aliyun.com/document_detail/347790.html??

    [6] 基于 MSE 云原生網(wǎng)關(guān)實(shí)現(xiàn)全鏈路灰度

    ??https://help.aliyun.com/document_detail/359851.html??

    [7] 基于自建 Spring Cloud Gateway 或 Zuul 網(wǎng)關(guān)實(shí)現(xiàn)全鏈路灰度

    ??https://help.aliyun.com/document_detail/359858.html??

    [8] 基于消息隊(duì)列 RocketMQ 版實(shí)現(xiàn)全鏈路灰度

    ??https://help.aliyun.com/document_detail/397318.html??

    [9] 通過 Jenkins 構(gòu)建 CI/CD 實(shí)現(xiàn)金絲雀發(fā)布

    ??https://help.aliyun.com/document_detail/384436.html??

    [10] 微服務(wù)敏捷開發(fā)最佳實(shí)踐?

    ??https://help.aliyun.com/document_detail/397319.html??

    ??點(diǎn)擊文末“????此處?????”,了解更多詳情~??

    總結(jié)

    以上是生活随笔為你收集整理的全链路灰度这样做,新需求迭代上线也能放心干饭的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 99久在线精品99re8热 | 中文字幕精品一区二 | 四虎永久在线 | 亚洲日日操 | 欧美成人精品一区二区 | 婷婷麻豆| 高清国产mv在线观看 | 久久视频在线观看免费 | 动漫美女被x | 91小宝寻花一区二区三区 | 亚洲精品乱码久久久久久久久久久久 | 欧美一区二区三区免 | 欧美久久影院 | 火影黄动漫免费网站 | 九色视频偷拍少妇的秘密 | 97碰| 黄网站色视频免费观看 | 在线免费黄色网址 | 农村末发育av片一区二区 | 亚洲女同女同女同女同女同69 | 色悠久 | 成人动漫在线免费观看 | 啪啪av | 国产原创视频在线 | 777精品视频 | 日韩午夜在线 | 女人天堂网站 | 午夜精品久久久久久久99黑人 | 国产做受视频 | 成人播放器 | 欧美乱大交xxxxx潮喷 | 91高跟黑色丝袜呻吟在线观看 | 黑白配高清国语在线观看 | 成人激情免费 | 亚洲一级影片 | 日韩欧美一级二级 | 最黄一级片 | 亚洲精品91天天久久人人 | 肉色欧美久久久久久久免费看 | 国产乱淫精品一区二区三区毛片 | 国产福利在线播放 | 瑟瑟视频免费看 | 久久久蜜桃一区二区 | 欧美色图综合网 | 免费黄色高清视频 | 九色porn蝌蚪 | 岛国在线视频 | 看91| 国内自拍一区 | 日韩一级视频在线观看 | 精品少妇av | 噜噜av | 日韩精品一区二区不卡 | 最近中文字幕一区二区 | 日本一区二区在线播放 | 欧美日韩一区二区在线观看 | 久草视频免费在线 | 激情噜噜 | 欧美特黄 | 国产成人精品一区二区三区在线观看 | av片一区二区三区 | 四虎8848| 97人妻精品一区二区三区免费 | 日韩电影三级 | 小明看国产| 天堂av免费观看 | 亚洲精品你懂的 | 欧美日韩精品久久久免费观看 | 精品中文一区二区三区 | 69av一区二区三区 | 就去吻综合| 人民的名义第二部 | 久久久综合久久久 | 国产又大又黑又粗免费视频 | 日本xxxx高潮少妇 | 欧美岛国国产 | 国产一区二区三区在线观看 | 免费操片 | 欧美日韩国产伦理 | 污污小说在线观看 | 亚洲天堂男人 | 日韩在线影视 | 国产在线日本 | 成人久久久精品国产乱码一区二区 | 绯色av蜜臀vs少妇 | 欧洲日韩一区二区三区 | 深夜网站在线观看 | 国产天天射| 健身教练巨大粗爽gay视频 | 日韩国产综合 | 热九九精品| 97超碰中文 | 国产一区二区三区免费观看 | 国产精品99久久久久久人 | 淫片一级国产 | 日韩免费视频网站 | 国产中文欧美日韩在线 | 性按摩玩人妻hd中文字幕 | 成人激情开心网 |