日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

skywalking后端处理业务逻辑的梳理

發布時間:2023/12/19 综合教程 33 生活家
生活随笔 收集整理的這篇文章主要介紹了 skywalking后端处理业务逻辑的梳理 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

接下來會進入下面的代理處理TraceSegment

接下來會調用到TraceAnalyzer的doAnalysis方法,代碼如下

public void doAnalysis(SegmentObject segmentObject) {
        if (segmentObject.getSpansList().size() == 0) {
            return;
        }

        createSpanListeners();

        try {
            notifySegmentListener(segmentObject);

            segmentObject.getSpansList().forEach(spanObject -> {
                if (spanObject.getSpanId() == 0) {
                    notifyFirstListener(spanObject, segmentObject);
                }

                if (SpanType.Exit.equals(spanObject.getSpanType())) {
                    notifyExitListener(spanObject, segmentObject);
                } else if (SpanType.Entry.equals(spanObject.getSpanType())) {
                    notifyEntryListener(spanObject, segmentObject);
                } else if (SpanType.Local.equals(spanObject.getSpanType())) {
                    notifyLocalListener(spanObject, segmentObject);
                } else {
                    log.error("span type value was unexpected, span type name: {}", spanObject.getSpanType()
                                                                                              .name());
                }
            });

            notifyListenerToBuild();
        } catch (Throwable e) {
            log.error(e.getMessage(), e);
        }
    }

我們首先來看方法的第一個業務邏輯createSpanListeners(),改方法主要產生處于TraceSegment。以及各類span的listener,默認情況下產生的listener情況如下

默認情況下產生上面三個listener

1、SegmentAnalysisListener主要是處理TraceSegment,將整個TraceSegment轉行成segement對象存儲到數據庫中

2、MultiScopesAnalysisListener主要用來處理TraceSegment中的span,依據span的不同類型進行單獨處理,然后依據不同的span類型產生不同的指標信息

這是收到的skywalking的出

skywalking后端oap集群收到TraceSegment的處理信息之后,會進行處理,這里處理會對TraceSegment中保存的span進行分類,span分為下面的幾種類型

enum Point {
        Entry, Exit, Local, First, Segment
    }

每一種類型會對應一個listen處理器與之對應,經過處理器處理之后,在延伸到后續的流程和操作

五個listen的類型如下面所示

代碼中創建了三個listener情況如下

接下來我們分析完成了createSpanListeners();接下來是執行

notifySegmentListener(segmentObject);我們來看下改方法是如何進行處理的

 private void notifySegmentListener(SegmentObject segmentObject) {
        analysisListeners.forEach(listener -> {
            if (listener.containsPoint(AnalysisListener.Point.Segment)) {
                ((SegmentListener) listener).parseSegment(segmentObject);
            }能夠
        });
    }

在上面創建的三個listener中只有SegmentAnalysisListener能夠處理TraceSegment,我們來看下后面的代碼

 @Override
    public void parseSegment(SegmentObject segmentObject) {
        segment.setTraceId(segmentObject.getTraceId());
        segmentObject.getSpansList().forEach(span -> {
            if (startTimestamp == 0 || startTimestamp > span.getStartTime()) {
                startTimestamp = span.getStartTime();
            }
            if (span.getEndTime() > endTimestamp) {
                endTimestamp = span.getEndTime();
            }
            isError = isError || segmentStatusAnalyzer.isError(span);
            appendSearchableTags(span);
        });
        final long accurateDuration = endTimestamp - startTimestamp;
        duration = accurateDuration > Integer.MAX_VALUE ? Integer.MAX_VALUE : (int) accurateDuration;

        if (sampleStatus.equals(SAMPLE_STATUS.UNKNOWN) || sampleStatus.equals(SAMPLE_STATUS.IGNORE)) {
            if (sampler.shouldSample(segmentObject.getTraceId())) {
                sampleStatus = SAMPLE_STATUS.SAMPLED;
            } else if (isError && forceSampleErrorSegment) {
                sampleStatus = SAMPLE_STATUS.SAMPLED;
            } else if (traceLatencyThresholdsAndWatcher.shouldSample(duration)) {
                sampleStatus = SAMPLE_STATUS.SAMPLED;
            } else {
                sampleStatus = SAMPLE_STATUS.IGNORE;
            }
        }
    }

我們來重點看下SegmentAnalysisListener下的parseSegment的方法的流程,方法傳入的參數segmentObject的結構體如下

traceId: "f5411eeefb3b403f8cafa89d0b82a82f.48.16092665850380005"
traceSegmentId: "ec5de79a4a8848e88146ebf696d157dc.73.16092665874590000"
spans {
  parentSpanId: -1
  startTime: 1609266587459
  endTime: 1609266589471
  refs {
    traceId: "f5411eeefb3b403f8cafa89d0b82a82f.48.16092665850380005"
    parentTraceSegmentId: "f5411eeefb3b403f8cafa89d0b82a82f.48.16092665850380004"
    parentSpanId: 1
    parentService: "DEMO-webapp"
    parentServiceInstance: "e171fdf7a1b4436b8289159e6d3f90b1@192.168.43.80"
    parentEndpoint: "{GET}/hello/{words}"
    networkAddressUsedAtPeer: "169.254.122.166:20880"
  }
  operationName: "com.xxx.HelloService.say(String)"
  spanLayer: RPCFramework
  componentId: 3
  tags {
    key: "url"
    value: "dubbo://169.254.122.166:20880/com.xxx.HelloService.say(String)"
  }
}
service: "DEMO-provider"
serviceInstance: "c5ec906d3dd24d0b8907fa8549c8306b@192.168.43.80"

這里首先處理的是dubbo-provider上傳的TraceSegment,產生的是一個EntrySpan,改EntrySpan中管理了dubbo-webapp的TraceSegment

這里在處理的時候如果當前的TraceSegment中存在5個span,那么當前TraceSegment的開始時間等于5個span中最小的starttime時間,最大時間為5個span中最大的endTime的時間,如果當前的TraceSegment中只要存在一個span的熟悉中為iserror,則改TraceSegment就為false

這個代碼是判斷當前的TraceSegment是否被采用處理了,如果被采樣了就可以存儲到數據庫中,如果沒有采用改TraceSegment就丟棄不用做任何處理

notifySegmentListener(segmentObject);本質上就是將后端上傳的TraceSegment轉化成一個segment對象

接下來繼續執行

取出當前TraceSegment中的span列表,然后對沒有span進行判斷,判斷當前的span是EntrySpan、localspan、exitspan,依據不同的span傳遞給不同的listener進行處理

這里當前的TraceSegment中只有一個span

span的對象為

parentSpanId: -1
startTime: 1609266587459
endTime: 1609266589471
refs {
  traceId: "f5411eeefb3b403f8cafa89d0b82a82f.48.16092665850380005"
  parentTraceSegmentId: "f5411eeefb3b403f8cafa89d0b82a82f.48.16092665850380004"
  parentSpanId: 1
  parentService: "DEMO-webapp"
  parentServiceInstance: "e171fdf7a1b4436b8289159e6d3f90b1@192.168.43.80"
  parentEndpoint: "{GET}/hello/{words}"
  networkAddressUsedAtPeer: "169.254.122.166:20880"
}
operationName: "com.xxx.HelloService.say(String)"
spanLayer: RPCFramework
componentId: 3
tags {
  key: "url"
  value: "dubbo://169.254.122.166:20880/com.xxx.HelloService.say(String)"
}

因為當前的span為EntrySpan,對應的spanID值就是0,會被下面的listener進行處理

notifyFirstListener(spanObject, segmentObject);底層會調用SegmentAnalysisListener的parseFirst方法,我們來看下改方法的業務邏輯

@Override
    public void parseFirst(SpanObject span, SegmentObject segmentObject) {
        if (sampleStatus.equals(SAMPLE_STATUS.IGNORE)) {
            return;
        }

        if (StringUtil.isEmpty(serviceId)) {
            serviceName = namingControl.formatServiceName(segmentObject.getService());
            serviceId = IDManager.ServiceID.buildId(
                serviceName,
                NodeType.Normal
            );
        }

        long timeBucket = TimeBucket.getRecordTimeBucket(startTimestamp);

        segment.setSegmentId(segmentObject.getTraceSegmentId());
        segment.setServiceId(serviceId);
        segment.setServiceInstanceId(IDManager.ServiceInstanceID.buildId(
            serviceId,
            namingControl.formatInstanceName(segmentObject.getServiceInstance())
        ));
        segment.setLatency(duration);
        segment.setStartTime(startTimestamp);
        segment.setTimeBucket(timeBucket);
        segment.setEndTime(endTimestamp);
        segment.setIsError(BooleanUtils.booleanToValue(isError));
        segment.setDataBinary(segmentObject.toByteArray());
        segment.setVersion(3);

        endpointName = namingControl.formatEndpointName(serviceName, span.getOperationName());
        endpointId = IDManager.EndpointID.buildId(
            serviceId,
            endpointName
        );
    }

1、當前service: "DEMO-provider"我們需要將"DEMO-provider"轉行成對應應用id,存儲到segment對象中

2、同理應用實例serviceInstance: "c5ec906d3dd24d0b8907fa8549c8306b@192.168.43.80"我們也要轉化成對應的應用實例id存儲到segement對象中

segement中的timeBucket字段就是當前TraceSegment中span集合中,比較各個span的開始時間,取出最小的時間,最小的時間作為segement的timeBucket

接下來設置segemnt的開始時間,開始時間就是比較各個span的開始時間,取出最小的開始時間作為segemnt的開始時間

segemnt的結束時間結束始時間就是比較各個span的結束時間,取出最大的結束時間作為segemnt的結束時間

整個segemnt的持續時間就是開始時間減去結束時間,此外還將整個segemeOBj對象轉化成二進制文件存儲在字段setDataBinary中

經過整個parseFirst方法之后,整個segemnt對象的結構為

接下來我們繼續執行下面的方法

當前的span為EntrySpan,接下來會執行notifyEntryListener(spanObject, segmentObject);方法

這里MultiScopesAnalysisListener和SegmentAnalysisListener都會對整個EntrySpan進行處理,我們來分析下下面的代碼

首先來看下MultiScopesAnalysisListener對parseEntry的方法對EntrySpan的處理

改方法的主要作用是獲得當前EntrySpan關聯的上游的TraceSegmentRef對象,然后將TraceSegmentRef對象封裝到SourceBuilder對象中

我們先來看下當前EntrySpan中獲得的TraceSegmentRef對象的信息如下

traceId: "f5411eeefb3b403f8cafa89d0b82a82f.48.16092665850380005"
parentTraceSegmentId: "f5411eeefb3b403f8cafa89d0b82a82f.48.16092665850380004"
parentSpanId: 1
parentService: "DEMO-webapp"
parentServiceInstance: "e171fdf7a1b4436b8289159e6d3f90b1@192.168.43.80"
parentEndpoint: "{GET}/hello/{words}"
networkAddressUsedAtPeer: "169.254.122.166:20880"

在 SourceBuilder 中記錄了上下游兩個系統的基礎信息,核心字段如下所示:

// 上游系統的 service 信息、serviceInstance 信息以及 Endpoint 信息

@Getter @Setter private int sourceServiceId;

@Getter @Setter private String sourceServiceName;

@Getter @Setter private int sourceServiceInstanceId;

@Getter @Setter private String sourceServiceInstanceName;

@Getter @Setter private int sourceEndpointId;

@Getter @Setter private String sourceEndpointName;

// 下游系統的 service 信息、serviceInstance 信息以及 Endpoint 信息

@Getter @Setter private int destServiceId;

@Getter @Setter private String destServiceName;

@Getter @Setter private int destServiceInstanceId;

@Getter @Setter private String destServiceInstanceName;

@Getter @Setter private int destEndpointId;

@Getter @Setter private String destEndpointName;

// 當前系統的組件類型

@Getter @Setter private int componentId;

// 在當前系統中的耗時

@Getter @Setter private int latency;

// 當前系統是否發生Error

@Getter @Setter private boolean status;

@Getter @Setter private int responseCode; // 默認為0

@Getter @Setter private RequestType type; // 請求類型

// 調用關系中的角色,是調用方(Client)、被調用方(Server)還是代理(Proxy)

@Getter @Setter private DetectPoint detectPoint; 

// TraceSegment 起始時間所在分鐘級時間窗口

@Getter @Setter private long timeBucket;

這里有一個關鍵點

就是如果當前的EntrySpan中沒有TraceSegmentRef沒有父親入口,比如dubbo-webapp入口的EntrySpan,在http請求頭信息是沒有任何信息的,獲得的TraceSegmentRef就是為null,這里代碼中設置當前的span的sourceBuilder中的 sourceBuilder.setSourceEndpointName(Const.USER_ENDPOINT_NAME);,public static final String USER_ENDPOINT_NAME = "User";的函數表示就是瀏覽器或者postman等入口調用了dubbo-webapp,作為dubbo-webapp調用的入口

這里dubbo-provider的執行的是else條件,入口的方法就是dubbo-webapp的方法

這里設置sourceBuilder的上游節點內容的時候,需要判斷上面有MQ類型還是一般應用,這里是一般應用執行下面的else的方法

上游節點的信息設置完成之后,接下來是設置下游的節點信息

通過這個sourcebuild對象就將當前的EntrySpan和dubb-webapp中產線的exitspan關聯起來了,

接下來將創建好的sourceBuilder添加到集合entrySourceBuilders中,后續會進行處理

這里TraceSegment中的span集合中如果存在5個EntrySpan,就會產生5個sourceBuilder對象

接下來繼續執行parseLogicEndpoints(span, segmentObject);

我們來看看parseLogicEndpoints(span, segmentObject);具體的業務代碼,改方法的具體業務邏輯后面再進行分析

MultiScopesAnalysisListener的parseEntry執行完成之后,接下來執行NetworkAddressAliasMappingListener類的parseEntry方法

我們來看下改方法的具體業務邏輯,就是將當前EntrySpan所在的網絡、應用名稱、應用實例封裝成一個networkAddressAliasSetup對象,然后將這個對象

傳遞給sourceReceiver進行處理

整個networkAddressAliasSetup的結構如下

SegmentAnalysisListener的parseEntry方法就是將應用名稱應用實例名稱轉化成對于的id

經過上面的轉化之后執行notifyListenerToBuild()方法

private void notifyListenerToBuild() {
analysisListeners.forEach(AnalysisListener::build);
}執行各個listener的build方法,主要是執行SegmentAnalysisListener的build方法和MultiScopesAnalysisListener的build方法

我們先介紹SegmentAnalysisListener的build方法,然后在介紹MultiScopesAnalysisListener的build方法

收到判斷當前的segment是否是被采樣忽略的,如果是被采樣忽略的

skywalking后端采樣率要設置為一樣的原因
一個全局的請求,在dubbo-webapp產生了一個TraceSegmentA,在dubbo-dubbo產生了一個TraceSegmentB,需要有這兩個TraceSegment才能還原這一次Trace
TraceSegmentA傳遞給后端的oap集群的A節點處理,TraceSegmentB傳遞給后端的oap集群的B節點處理,
如果A節點和B節點在后端的采樣率設置不一致,就可能導致TraceSegmentA被處理了存儲在es中,TraceSegmentB被忽略直接丟棄,導致無法還原當前請求的trace情況
所以oap集群后端每個節點的采樣率必須設置為一致

收到判斷當前的segment是否是被采樣忽略的,如果是被采樣忽略的就直接忽略,如果不是繼續執行后續的代碼

設置segemnt中endpointId的值,這里endpointID是這樣計算出來的

        endpointId = IDManager.EndpointID.buildId(
            serviceId,
            endpointName
        )

當前的應用為dubbo-provider對于的service_id的值為REVNTy13ZWJhcHA=.1

endpointName為當前span對應的 operationName: "com.xxx.HelloService.say(String)"

然后通過上面的這兩個參數獲得對應的值

         */
        public static String buildId(String serviceId, String endpointName) {
            return serviceId
                + Const.ID_CONNECTOR
                + encode(endpointName);
        }

算出來了之后

經過處理之后整個TraceSegment的結構如下

2、預構建 :替換url peer端口、servicenam等信息

1、接下來將TraceSegment中各個span的類型分配給不同的spanlistener進行處理

接下來對每一個span進行解析

parentSpanId: -1
startTime: 1609266200857
endTime: 1609266202857
refs {
traceId: "f5411eeefb3b403f8cafa89d0b82a82f.57.16092661992120001"
parentTraceSegmentId: "f5411eeefb3b403f8cafa89d0b82a82f.57.16092661992120000"
parentSpanId: 1
parentService: "DEMO-webapp"
parentServiceInstance: "e171fdf7a1b4436b8289159e6d3f90b1@192.168.43.80"
parentEndpoint: "{GET}/hello/{words}"
networkAddressUsedAtPeer: "169.254.122.166:20880"
}
operationName: "com.xxx.HelloService.say(String)"
spanLayer: RPCFramework
componentId: 3
tags {
key: "url"
value: "dubbo://169.254.122.166:20880/com.xxx.HelloService.say(String)"
}

依據不同的span類型進行解析,傳遞給不同的listen對象,然后產生不同的數據指標

總結

以上是生活随笔為你收集整理的skywalking后端处理业务逻辑的梳理的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

人人澡人人草 | 欧美肥妇free | 91精品影视 | 黄色av影院 | 久久亚洲国产精品 | 美女国产精品 | 国产韩国日本高清视频 | 国产精品久久久久久久毛片 | 人人爽人人爽人人片 | 久久久精品福利视频 | 成人久久18免费网站麻豆 | 91漂亮少妇露脸在线播放 | 亚洲精品黄 | 日韩欧美精品在线视频 | 亚洲美女在线国产 | 日韩艹 | 99精品国产成人一区二区 | 99国产在线视频 | 精品久久久久久久久久久久 | 成人毛片在线观看 | 国产精品久久久久久久久久了 | 日韩av电影手机在线观看 | 在线视频观看91 | 国产韩国精品一区二区三区 | 免费韩国av | 久久色网站 | 色老板在线 | 91福利免费 | 国产操在线| 免费h漫在线观看 | 久久久免费视频播放 | 日韩视频中文字幕 | 午夜久久精品 | 国产精品一区二区久久精品爱微奶 | 国产精品九九久久99视频 | 日本在线观看视频一区 | 国产精品毛片完整版 | 欧美一进一出抽搐大尺度视频 | 成av在线 | 久久久精品国产一区二区电影四季 | 最近2019中文免费高清视频观看www99 | 91在线看| 亚洲午夜电影网 | 国产亚洲婷婷 | 日韩在线国产精品 | www视频在线播放 | 国产在线视频在线观看 | 亚洲精品国产精品国产 | 69av视频在线观看 | 成人免费观看完整版电影 | 婷婷日日 | 911精品美国片911久久久 | av福利在线看 | 四虎影视www| 不卡在线一区 | 国产91国语对白在线 | 91视频 - 88av| 亚洲精品综合在线 | 亚洲精品无 | 日本精品视频在线观看 | 综合久久影院 | www.91成人| 色婷婷免费视频 | 久久久久久久久久福利 | 亚洲精品国精品久久99热一 | 日日夜夜艹 | 在线国产91| 四虎欧美 | 精品国产午夜 | 久久久综合九色合综国产精品 | 日韩av电影一区 | 久久久亚洲电影 | 久久精品一区二区三 | 国产一及片 | 香蕉97视频观看在线观看 | 久久国产露脸精品国产 | 蜜臀av在线一区二区三区 | 一级国产视频 | 亚洲1级片 | 天天干,天天草 | 天天色成人 | 婷婷精品国产欧美精品亚洲人人爽 | 婷婷丁香在线视频 | 亚洲黄色一级大片 | 欧美在线视频不卡 | 国产精品99久久免费黑人 | 精品超碰| 毛片网在线播放 | 777xxx欧美| 久久国内免费视频 | 色天天| 国产精品久久久久久久久久 | 在线国产视频一区 | 国产精品久久久久久久久久久久冷 | 亚洲婷婷免费 | 五月婷婷在线视频观看 | 干干操操| 日韩一区二区三免费高清在线观看 | 深夜免费福利 | 国产亚洲欧美精品久久久久久 | 久久久久综合精品福利啪啪 | 国产午夜av| 九九久久久久久久久激情 | 激情大尺度视频 | 江苏妇搡bbbb搡bbbb | 日韩动态视频 | 久久永久免费视频 | 在线影院av| 久久a国产 | 四虎成人精品永久免费av | av不卡中文| 91久久久久久久一区二区 | 久久婷婷一区二区三区 | 成片免费观看视频999 | 九九九热精品免费视频观看网站 | 波多野结衣一区二区三区中文字幕 | 日本久久久久久久久 | 久久国产精品免费看 | 97在线免费观看 | 热re99久久精品国产66热 | 狠狠久久综合 | www.五月婷婷 | 成年人免费在线观看 | 一区二区三区 亚洲 | 亚洲最新在线视频 | 在线免费黄色片 | 天天五月天色 | 午夜视频在线瓜伦 | 97超碰中文字幕 | 免费在线观看视频一区 | 揉bbb玩bbb少妇bbb | 久久久久久久久久久免费视频 | 91重口视频 | 国产91粉嫩白浆在线观看 | 亚洲欧美日韩在线看 | 国产手机视频在线观看 | 99色| 操操操日日 | 免费看的国产视频网站 | 波多野结衣在线视频一区 | 国产婷婷久久 | 亚洲视频99| 久久少妇av | 久久蜜桃av | 黄色三级网站在线观看 | 久久狠狠干 | 免费黄色在线网址 | 国产网站av | 99爱这里只有精品 | 国产精品99久久久精品 | 91成人区| 色狠狠综合天天综合综合 | 啪啪动态视频 | 国产97视频在线 | 国产视频一区二区在线观看 | 国产视频一区在线播放 | 综合网天天色 | 日韩午夜三级 | 99精品黄色 | 69久久夜色精品国产69 | 婷久久| 国产一区二区三区免费观看视频 | 欧美日韩不卡一区二区三区 | 激情综合网色播五月 | 欧美日韩三区二区 | 精品久久久久久亚洲综合网站 | 97电影院在线观看 | 久久久久久久免费 | 中文字幕av电影下载 | 成人观看视频 | 玖玖在线资源 | 顶级bbw搡bbbb搡bbbb | 在线观看黄网站 | a级片久久久 | 日本公乱妇视频 | 最近最新最好看中文视频 | 国产精品9999久久久久仙踪林 | 天天爱天天插 | 色视频在线观看 | 狠狠狠色狠狠色综合 | av电影亚洲 | 久久在线免费视频 | 狠狠色2019综合网 | 久久国产精品区 | 亚洲色五月 | 国产小视频国产精品 | 美女视频永久黄网站免费观看国产 | 免费成人在线电影 | 久久精品8 | 午夜精品久久久久久久99热影院 | 四虎影视精品永久在线观看 | 97成人免费 | 亚洲女同ⅹxx女同tv | 欧美精品国产综合久久 | 中文字幕第一页在线视频 | 在线视频18在线视频4k | 9999毛片| 成人在线免费视频 | 国产精品一区二区三区在线免费观看 | av短片在线观看 | 公与妇乱理三级xxx 在线观看视频在线观看 | 日韩欧美视频免费看 | 日韩电影精品 | 天天躁日日躁狠狠躁 | 国产精品美女在线观看 | 日韩成人邪恶影片 | 99热九九这里只有精品10 | 丁香六月婷婷 | 亚洲最大在线视频 | 天堂网一区二区三区 | 久久精品国产v日韩v亚洲 | 黄色精品一区二区 | 五月天视频网 | 99久久久久 | 免费在线播放av电影 | 在线免费观看一区二区三区 | 日韩中文久久 | 中文字幕 国产视频 | 精品久久久久久久久久岛国gif | 免费能看的黄色片 | 最近中文字幕mv | 亚洲精品在线视频播放 | 亚洲最大的av网站 | 国产精品综合久久久久 | 91久久精品日日躁夜夜躁国产 | 色综合中文综合网 | 免费在线观看国产精品 | 欧美视频www| 亚洲视频电影在线 | 久久精品首页 | 日本精品视频免费观看 | 超碰久热 | 成 人 黄 色 片 在线播放 | 啪嗒啪嗒免费观看完整版 | 天天se天天cao天天干 | 天天干天天插 | 久久久99精品免费观看 | 久草在线一免费新视频 | 国产精品久久久久久久久久新婚 | 亚洲国产资源 | 国产精品免费视频久久久 | 久久综合婷婷国产二区高清 | 操操操com| 免费看的国产视频网站 | 国产精品门事件 | 国产精品嫩草影院99网站 | 久久综合久久综合这里只有精品 | 91插插插免费视频 | 日日夜夜爱 | 欧美日韩免费一区二区 | 国产一级在线播放 | 日韩欧美一区二区三区免费观看 | 天天亚洲 | japanesexxxhd奶水| 少妇性aaaaaaaaa视频 | 91九色在线视频观看 | 日本精品视频在线观看 | 国产精久久久久久妇女av | 亚洲国产精品电影在线观看 | 91精彩视频| 国产精品国产三级国产aⅴ无密码 | 视频在线日韩 | 欧美日本三级 | 人人涩 | av亚洲产国偷v产偷v自拍小说 | av黄色免费在线观看 | 精品视频久久 | 国产高清视频在线观看 | 日韩精品欧美专区 | 色天天| 欧美黄色特级片 | 免费观看一级成人毛片 | 国内精品久久久 | 五月综合激情婷婷 | 伊人va| 欧美巨大荫蒂茸毛毛人妖 | 久久成人一区二区 | 四虎成人av | 精品国产乱码久久久久 | 91精品久久久久久粉嫩 | 免费a级观看 | 夜夜爽天天爽 | 亚洲综合在线一区二区三区 | 天天曰天天爽 | 免费看搞黄视频网站 | av亚洲产国偷v产偷v自拍小说 | 视频在线播放国产 | 国产日产在线观看 | 97在线观看视频 | 狠狠操电影网 | 精品国产不卡 | 日本久热 | 97视频总站 | 五月天九九 | 日韩免费中文 | 月丁香婷婷 | 国产一区二区视频在线播放 | 国产精品久久久久久999 | 99热最新在线 | 免费视频一区二区 | 久草在线资源观看 | 8x成人免费视频 | 最近中文字幕国语免费av | 日韩美女av在线 | 最新av网站在线观看 | 免费影视大全推荐 | 天天做天天爱天天爽综合网 | av在线播放亚洲 | 成人影视免费看 | 成人午夜片av在线看 | 国产一区精品在线观看 | 亚洲a色| 黄色精品国产 | 成人午夜电影网站 | 夜色在线资源 | 日日日操操 | 国产精品久久久久久久久久久不卡 | 久久久精品小视频 | av成人在线网站 | 成人在线视频免费 | 一区二区视频播放 | 中文字幕欧美激情 | 日日日爽爽爽 | 色综合久久网 | 国产精品久久嫩一区二区免费 | 天天操天天舔天天爽 | 91精品视频播放 | 91精品天码美女少妇 | 日韩精品91偷拍在线观看 | 国产成人福利在线观看 | 国产在线观看xxx | 国产在线观看免费观看 | 香蕉影视app | 婷婷六月丁香激情 | av女优中文字幕在线观看 | 狠狠躁夜夜躁人人爽视频 | 香蕉视频免费看 | 国产精品久久久久久久久蜜臀 | 最近日本韩国中文字幕 | 九九久久影视 | 天天干天天拍天天操天天拍 | 在线欧美中文字幕 | 91污视频在线观看 | 亚洲精品免费观看 | 中文字幕在线播放第一页 | av免费观看网站 | 久久99国产精品久久99 | 97视频入口免费观看 | av在线播放观看 | av在线电影播放 | 国产一区二区不卡在线 | 在线中文视频 | 99色视频在线| 欧美性视频网站 | 精精国产xxxx视频在线播放 | 在线视频 亚洲 | 亚洲午夜av久久乱码 | 天天操天天干天天 | 中文字幕网站视频在线 | 四虎在线观看 | 午夜精品久久 | 中文在线字幕观看电影 | 毛片网站观看 | 91免费高清 | 激情综合啪 | 国产视频欧美视频 | 午夜影院三级 | 91av网址| 西西人体4444www高清视频 | 97人人澡人人添人人爽超碰 | 96久久欧美麻豆网站 | 亚洲黄色小说网址 | 国产精品毛片一区二区 | 在线观看一 | 天天综合网入口 | 亚洲精品午夜久久久久久久 | 日韩小视频网站 | 欧美日本三级 | 国产第一页精品 | 日韩视频免费观看高清 | www.xxx.性狂虐| 国产福利一区二区三区视频 | 一区二区三区在线免费播放 | 国产亚洲va综合人人澡精品 | 欧美激情综合五月色丁香 | 91网站免费观看 | 亚洲精品国产高清 | 黄色软件大全网站 | 久久激情日本aⅴ | 久久激情精品 | 欧美激情视频久久 | 日韩黄色网络 | 黄色av网站在线观看免费 | 久久免费精品一区二区三区 | 又黄又色又爽 | www.久久色 | 美女av在线免费 | 久久99热久久99精品 | 国产原创中文在线 | 亚洲 欧洲av| 人人澡人人爽欧一区 | 久久久久久免费 | 国产精品久久久久999 | 久久精品黄| 丁香五香天综合情 | 91精品在线免费视频 | 国产夫妻自拍av | 成人a大片 | 婷婷 综合 色 | 国产在线精品一区二区三区 | 亚洲婷婷综合色高清在线 | 999一区二区三区 | 精品国产一区二区三区噜噜噜 | 亚洲国产一二三 | 香蕉视频最新网址 | 国产白浆在线观看 | 精品国产123| 中文字幕av免费观看 | 激情综合五月天 | 国产 av 日韩| 国产成人精品久久久久 | 人人狠 | 免费看黄色小说的网站 | 国产精品免费久久久久久久久久中文 | 一区二区三区播放 | 成人污视频在线观看 | 久久电影日韩 | 99免费| 黄色毛片网站在线观看 | 超碰97中文 | 天天草天天爽 | 最近中文字幕国语免费av | www国产精品com | 亚洲精品一区二区网址 | 九草视频在线观看 | 精品毛片一区二区免费看 | 九色精品免费永久在线 | 97av在线视频免费播放 | av片在线观看免费 | 国产中文在线字幕 | 91天堂影院| 欧美日韩精品网站 | 在线一二三四区 | 日韩欧美中文 | 精品久久久久一区二区国产 | 久一久久 | 免费男女羞羞的视频网站中文字幕 | 九九热免费视频在线观看 | 午夜国产一区二区三区四区 | 亚洲精品免费在线观看 | 久草免费在线视频 | 婷婷丁香综合 | 依人成人综合网 | 久久久999| 亚洲成av人片在线观看香蕉 | 黄色一级免费电影 | 婷婷性综合| 亚洲精品久久久久中文字幕m男 | 亚洲激情免费 | 亚洲精品一区二区三区高潮 | 又黄又刺激 | 久久久久久欧美二区电影网 | 激情视频免费在线观看 | 欧美日韩成人 | 国色天香永久免费 | 337p西西人体大胆瓣开下部 | 欧美日韩亚洲一 | 精品国产电影一区 | 黄视频网站大全 | 色婷婷丁香 | 草久久影院 | 五月天中文字幕mv在线 | 免费99精品国产自在在线 | 久草免费色站 | 国产五十路毛片 | 2019中文字幕网站 | 五月天堂色 | 久久国产精品免费一区 | 国产亚洲婷婷 | 在线中文字幕av观看 | 久久久麻豆精品一区二区 | 国产一区麻豆 | 久久精品2| 国产精品一区二区电影 | 日韩电影一区二区三区 | 97精品国产91久久久久久久 | 久久久久久97三级 | 玖玖玖在线 | 国产在线观看污片 | 亚洲免费永久精品国产 | 日产乱码一二三区别免费 | 中文乱幕日产无线码1区 | 高清国产午夜精品久久久久久 | www色网站 | 日韩成人欧美 | 三级动图 | 91麻豆免费看 | 久久视频这里只有精品 | 久草视频免费看 | 免费看色网站 | 久久黄网站 | 亚洲三级黄 | 亚洲成年人免费网站 | 99操视频| 日本一区二区免费在线观看 | 狠狠色丁香婷婷 | 亚洲香蕉在线观看 | 国产在线 一区二区三区 | 毛片99 | 日韩两性视频 | www天天干com | 天天干天天拍天天操天天拍 | 黄色网在线免费观看 | 天天射天天舔天天干 | a视频在线播放 | 可以免费观看的av片 | a视频在线 | 天天综合天天综合 | 黄色福利视频网站 | 国产xxxx做受性欧美88 | 亚洲精品福利在线 | 激情五月色播五月 | 欧美精品网站 | 色99之美女主播在线视频 | 激情五月网站 | 亚洲欧美日韩精品一区二区 | 久久国产三级 | 免费福利片 | 国产一区二区不卡视频 | 在线播放亚洲激情 | 国产精品麻豆三级一区视频 | 91麻豆精品国产自产 | 久精品视频在线观看 | 探花视频在线观看+在线播放 | 国产99久久久国产精品成人免费 | 国内成人精品2018免费看 | 亚洲国产成人久久 | 欧美特一级 | 香蕉97视频观看在线观看 | 国产精品电影一区二区 | 国产精品一区二区果冻传媒 | 99久久久成人国产精品 | 欧美一级裸体视频 | 热99久久精品 | 日韩欧美精品在线 | 久久天堂影院 | 久久www免费视频 | 欧美一级性生活片 | 精品视频免费 | 99免费精品视频 | 成人在线视频在线观看 | 久久中文字幕导航 | 天天摸日日操 | 一区二区观看 | 一区二区三区www | 在线免费色视频 | 狠狠狠狠狠色综合 | 在线观看香蕉视频 | 日韩免费成人 | 国产理论一区二区三区 | 精品国产一区二区三区在线观看 | 天天干天天干天天射 | 久久精品黄色 | 夜夜爽夜夜操 | 一区二区三区在线电影 | 国产成人一区二区啪在线观看 | 中文字幕高清 | 99爱精品在线 | 亚洲精品自拍视频在线观看 | 日韩精品一区二区三区在线视频 | 国产精品久久久久久婷婷天堂 | 视频在线91 | 深爱综合网 | 蜜臀av网址 | 九月婷婷人人澡人人添人人爽 | 久久精品精品电影网 | 日韩欧美国产精品 | 亚洲精品国精品久久99热一 | 成年人免费看 | 国产一区二区在线免费播放 | 日韩丝袜视频 | 国产破处精品 | 最新午夜电影 | 中文字幕专区高清在线观看 | 美女视频a美女大全免费下载蜜臀 | 伊人va| 国产精品99久久久久久久久 | 国产1级视频 | 中文字幕免费高清av | 日韩久久精品一区二区三区 | 狠狠色丁香久久婷婷综合_中 | 亚洲精品乱码久久久久久按摩 | 日本精品一二区 | 国产精品地址 | 午夜精品一区二区三区四区 | 天天操天天爱天天干 | 97成人资源站 | 五月婷婷综合在线观看 | 欧美成人视 | 91精品啪在线观看国产 | 成人在线视频论坛 | 日产乱码一二三区别在线 | 69精品 | 色婷婷狠狠五月综合天色拍 | 91女人18片女毛片60分钟 | 天堂av在线 | 2021国产精品| 五月婷网站 | av免费在线观看1 | 九九久久久久久久久激情 | 91人人爱 | 欧美成人影音 | 日本电影久久 | 欧美一二三在线 | 午夜精品影院 | 手机在线免费av | 日女人电影 | 一本一本久久a久久精品综合小说 | 久久精久久精 | 亚洲日本欧美在线 | 大荫蒂欧美视频另类xxxx | 久久人人爽人人爽人人片av免费 | 五月开心六月伊人色婷婷 | 99久久久国产精品免费99 | 99精品视频中文字幕 | 99热这里只有精品1 av中文字幕日韩 | 天天干夜夜夜 | 久久天天操| 午夜成人影视 | 国产伦理久久精品久久久久_ | 久久噜噜少妇网站 | 丝袜美腿一区 | 国产又粗又猛又爽又黄的视频先 | 亚洲成熟女人毛片在线 | 久久精品女人毛片国产 | 国产涩涩在线观看 | 女人18精品一区二区三区 | 亚洲永久av| 免费在线播放黄色 | 国产精品久久久久久久久久了 | 欧美淫aaa免费观看 日韩激情免费视频 | 99精品国产高清在线观看 | 国内精品二区 | 国产二区视频在线观看 | 欧美性直播 | 国产黄色片免费 | 99视频在线观看一区三区 | 韩国一区二区三区视频 | 亚洲欧美日韩在线一区二区 | 九九久久视频 | 成人中文字幕在线观看 | 免费日韩电影 | 国产区精品在线观看 | 97在线免费视频 | 91热视频在线观看 | 黄色影院在线观看 | 九九热免费视频在线观看 | 成人午夜网址 | 国产尤物视频在线 | 五月天婷亚洲天综合网鲁鲁鲁 | 热re99久久精品国产66热 | 天天干天天干天天干天天干天天干天天干 | 日本中文乱码卡一卡二新区 | 久久免费国产 | 日日精品| 欧美精品久久99 | 国产美女久久久 | 五月婷香| 国产视频每日更新 | 亚洲有 在线 | 人人艹视频 | 国产精品一区久久久久 | 亚洲在线精品视频 | 久久伊人八月婷婷综合激情 | 国产白浆在线观看 | 蜜臀久久99精品久久久酒店新书 | 日韩在线精品视频 | 精品久久久久久久久久久久久 | 日本久久精品 | 亚洲成人精品久久久 | 51久久夜色精品国产麻豆 | 91精品婷婷国产综合久久蝌蚪 | 国产另类av | 在线观看国产成人av片 | 久久成人亚洲欧美电影 | 91人人澡 | 999抗病毒口服液 | 亚洲精品国产精品乱码在线观看 | 国产中文字幕一区二区 | 少妇性bbb搡bbb爽爽爽欧美 | 天天操夜夜操 | 日韩a欧美 | 黄毛片在线观看 | 久久视讯 | 久草国产在线 | 日日干网 | 麻豆传媒视频在线播放 | 日韩专区在线观看 | 国产精品区免费视频 | 91色九色| 免费不卡中文字幕视频 | 毛片视频电影 | 欧美日韩精品在线观看 | 黄色一级大片在线免费看国产一 | 免费观看黄 | 久久精品福利 | 一区二区三区四区不卡 | 久久久免费网站 | 四虎最新入口 | 亚洲砖区区免费 | 日韩在线免费播放 | 一级一级一片免费 | 69视频永久免费观看 | 亚洲禁18久人片 | 国产精品久久久精品 | 欧美福利网站 | 国产精品粉嫩 | 中文字幕中文字幕在线一区 | 日本三级香港三级人妇99 | 狠狠久久 | 99精品免费久久久久久久久日本 | 麻豆国产视频下载 | 西西44人体做爰大胆视频 | 亚洲婷婷丁香 | 久一在线 | 四虎永久免费网站 | 国产成人精品一区二区三区网站观看 | 国产精品一区二区久久精品 | 97香蕉视频 | 国内精品久久久久久久久久清纯 | 免费人成在线观看 | 天天操天天弄 | 国产精品电影在线 | 99精品视频免费观看视频 | 在线国产一区 | 一区在线免费观看 | 久久综合九色综合欧美就去吻 | 在线视频专区 | 永久黄网站色视频免费观看w | 亚洲综合情| 亚洲综合丁香 | 国产精品午夜8888 | 黄色软件视频网站 | 国产精品国产三级国产aⅴ9色 | 亚洲 欧美 变态 国产 另类 | 亚洲国产一区av | 久久精品一区二区三区视频 | 亚洲精品国产精品久久99 | 免费在线观看污网站 | 国产成人精品av在线观 | 亚洲永久字幕 | 免费在线视频一区二区 | 草久久久 | 国产成人99久久亚洲综合精品 | 在线观看国产 | 久久久18 | 人人草天天草 | 狠狠干夜夜操天天爽 | 9999在线观看 | 91爱看片| 国产精品岛国久久久久久久久红粉 | 91正在播放 | 亚洲影音先锋 | 成人免费视频网站 | 日韩欧美在线综合网 | 激情网站| 狠狠色丁香久久婷婷综 | 久久精品在线免费观看 | 成人资源网 | 干狠狠 | 日韩av成人在线观看 | 久久黄色免费 | 免费视频一二三 | 91视频免费视频 | 国产综合在线观看视频 | 99热最新地址 | 欧美一区二区在线免费观看 | 中文字幕欧美激情 | 欧美激情视频一区二区三区免费 | 成人毛片久久 | 久久只精品99品免费久23小说 | 国产精品一区二区果冻传媒 | 亚洲精品在线观 | 久草在线视频新 | 综合网欧美 | 色综合久久88 | 97在线精品| 国产中文字幕在线观看 | 日批在线看 | 国产视频欧美视频 | 69性欧美| 色综合色综合久久综合频道88 | 91亚洲精品国偷拍 | 国产区网址 | 又黄又爽又刺激的视频 | av中文字幕网 | 久久精品专区 | 国产精品私人影院 | 一级黄毛片 | 97在线影视 | 人人插人人费 | 91香蕉视频黄色 | 久久免费视频99 | 日本中出在线观看 | 中文字幕制服丝袜av久久 | 欧美极品一区二区三区 | 婷婷久久婷婷 | 国产18精品乱码免费看 | 中文区中文字幕免费看 | 性色av免费在线观看 | 欧美成人在线免费观看 | 精品高清美女精品国产区 | 肉色欧美久久久久久久免费看 | 人人玩人人添人人 | 国产精品女人久久久 | 色视频在线免费 | 久久综合免费视频影院 | 91麻豆视频 | 国产永久免费 | 黄av资源 | 国内精品久久久久久久久久久久 | 亚洲一区免费在线 | 久久欧美在线电影 | 亚洲成a人片在线观看中文 中文字幕在线视频第一页 狠狠色丁香婷婷综合 | 日本精品视频在线播放 | 国产欧美日韩一区 | 国产视频二区三区 | 中文字幕在线影院 | 精品视频久久久久久 | 日韩在线免费不卡 | 日韩专区 在线 | av中文字幕在线电影 | 国产精品伦一区二区三区视频 | 精久久久久 | 国产成人61精品免费看片 | 欧美小视频在线观看 | 国产天天综合 | 日本久久成人中文字幕电影 | 91精品一区在线观看 | 成人av中文字幕在线观看 | 亚洲国产剧情 | 狠狠躁夜夜a产精品视频 | 九九免费观看视频 | 91麻豆看国产在线紧急地址 | 久久综合狠狠综合久久综合88 | 成人网色 | 欧美福利精品 | 久久久久久综合 | 婷婷综合电影 | 不卡精品视频 | 在线欧美最极品的av | 日日夜夜骑 | 免费黄a | 色视频在线看 | 成年人黄色在线观看 | 国产精品成人av电影 | 欧美日韩高清一区二区三区 | 波多野结衣精品视频 | 欧美黄色成人 | 国产精品美女久久久久久久 | 日产乱码一二三区别在线 | 国产一区二区三区四区在线 | 91九色成人蝌蚪首页 | 四虎成人免费观看 | 日韩激情视频在线观看 | 美女精品国产 | 色婷婷狠狠五月综合天色拍 | 999久久久免费精品国产 | a级国产乱理论片在线观看 伊人宗合网 | 亚洲欧美日韩国产 | 久久精品国产一区二区三区 | 久草视频播放 | 人人爽人人澡人人添人人人人 | 免费日韩一区二区 | 美女久久久久久久久久 | 亚洲国产欧美一区二区三区丁香婷 | 色噜噜在线观看 | 在线免费观看视频一区二区三区 | 国产99免费| 在线国产一区二区三区 | 欧美怡红院 | 久久你懂得 | 在线成人看片 | 中文字幕国产 | 天天操天天操天天 | 蜜臀av免费一区二区三区 | 欧美精品天堂 | 五月激情婷婷丁香 | 亚洲五月六月 | 天天色天天干天天色 | 免费日韩电影 | 青青河边草免费观看完整版高清 | 最近中文字幕免费大全 | 天天射天天干天天插 | 我爱av激情网 | 国产视频 亚洲视频 | 日韩精品一区二区电影 | 中文字幕亚洲欧美日韩 | 国产成人精品综合 | 国产精品欧美久久 | 九九三级毛片 | 久久久久久美女 | 在线 视频 亚洲 | 四虎成人精品在永久免费 | 亚洲色图 校园春色 | 蜜臀av麻豆 | av成人亚洲 | 久久久免费国产 | 在线视频欧美精品 | 伊人天天综合 | 国产激情电影综合在线看 | 亚洲自拍av在线 | 在线观看亚洲专区 | 91av在线播放 | 欧美成人中文字幕 | 中文字幕电影在线 | 日韩网站在线看片你懂的 | 国产黄色精品在线 | 精品伊人久久久 | 色的网站在线观看 | 国产精品免费看 | 久久成人黄色 | 亚洲国产一区在线观看 | wwwwwww色 | 婷婷丁香激情综合 | 精品久久久久一区二区国产 | 在线va网站 | 中文av在线免费观看 | 豆豆色资源网xfplay | 久久不见久久见免费影院 | 人人爽人人爽 | 日本久久中文字幕 | 国产精品久久影院 | 婷婷视频在线播放 | 91丨九色丨丝袜 | 国产理论影院 | 美女精品网站 | 日韩精品视频免费在线观看 | 亚洲精品网站在线 | 国产在线日韩 | 九九国产精品视频 | 91一区二区三区在线观看 | 97色资源| 国产色道| 日韩三级成人 | 午夜影院先 | 视频在线99 | 国产欧美日韩精品一区二区免费 | 久草在线资源网 | 国产亚洲精品无 | 色丁香久久 | 人人爽影院 | 一级片视频在线 | 久久精品日本啪啪涩涩 | 午夜精品婷婷 | 日韩欧美视频二区 | 久久人人爽人人爽人人片av免费 | 色欧美日韩 | 亚洲成av人片在线观看香蕉 | 国精产品满18岁在线 | 日韩中文字幕第一页 | www.亚洲精品 | 高清在线一区二区 | 国产成人精品一区二区在线 | 男女拍拍免费视频 | 在线观看黄色大片 | 日韩精品久久中文字幕 | 国产91欧美| 在线视频一二三 | 99热国产在线中文 | 国产精品久久久久久婷婷天堂 | 91在线视频免费91 | 最新中文在线视频 | 天天色天天爱天天射综合 | 午夜av剧场| 少妇av片| 国产视频精品久久 | 久久久久久久久综合 | 国产一级精品在线观看 | 成人欧美亚洲 | 欧美精品v国产精品 | 操操操天天操 | 亚洲精品国产精品国自产在线 | 欧美国产亚洲精品久久久8v | 最近日本mv字幕免费观看 | 99在线精品免费视频九九视 | 在线观看免费黄色 | 免费成人黄色片 | 午夜久草 | 亚洲人成影院在线 | 日韩欧美一二三 | 免费进去里的视频 | 欧美性色网站 | 久久久久女人精品毛片 | 色噜噜日韩精品欧美一区二区 | 婷婷四房综合激情五月 | 99精品视频免费看 | 黄色毛片视频免费 |