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

項(xiàng)目中引進(jìn)這玩意,排查日志又快又準(zhǔn)!

開(kāi)發(fā) 項(xiàng)目管理
TLog提供了一種最簡(jiǎn)單的方式來(lái)解決日志追蹤問(wèn)題,TLog會(huì)自動(dòng)的對(duì)你的日志進(jìn)行打標(biāo)簽,幫你自動(dòng)生成traceId貫穿你微服務(wù)的一整條鏈路,在排查日志的時(shí)候,可以根據(jù)traceId來(lái)快速定位請(qǐng)求處理的鏈路。

背景

隨著微服務(wù)盛行,很多公司都把系統(tǒng)按照業(yè)務(wù)邊界拆成了很多微服務(wù),在排錯(cuò)查日志的時(shí)候,因?yàn)闃I(yè)務(wù)鏈路貫穿著很多微服務(wù)節(jié)點(diǎn),導(dǎo)致定位某個(gè)請(qǐng)求的日志以及上下游業(yè)務(wù)的日志會(huì)變得有些困難。

這時(shí)候可能有的小伙伴就會(huì)想到使用SkyWalking,Pinpoint等分布式追蹤系統(tǒng)來(lái)解決,并且這些系統(tǒng)通常都是無(wú)侵入性的,同時(shí)也會(huì)提供相對(duì)友好的管理界面來(lái)進(jìn)行鏈路Span的查詢,但是搭建分布式追蹤系統(tǒng)還是需要一定的成本的,所以本文要說(shuō)的并不是這些分布式追蹤系統(tǒng),而是一款簡(jiǎn)單、易用、幾乎零侵入、適合中小型公司使用的日志追蹤框架TLog。

TLog簡(jiǎn)介

TLog提供了一種最簡(jiǎn)單的方式來(lái)解決日志追蹤問(wèn)題,TLog會(huì)自動(dòng)的對(duì)你的日志進(jìn)行打標(biāo)簽,幫你自動(dòng)生成traceId貫穿你微服務(wù)的一整條鏈路,在排查日志的時(shí)候,可以根據(jù)traceId來(lái)快速定位請(qǐng)求處理的鏈路。

TLog不收集日志,只在對(duì)你原來(lái)打印的日志上增強(qiáng),將請(qǐng)求鏈路信息traceId綁定到你打印的日志上。當(dāng)出現(xiàn)微服務(wù)中那么多節(jié)點(diǎn)的情況,官方推薦使用TLog+日志收集方案來(lái)解決。當(dāng)然分布式追蹤系統(tǒng)其實(shí)是鏈路追蹤一個(gè)最終的解決方案,如果項(xiàng)目中已經(jīng)上了分布式追蹤系統(tǒng),那TLog并不適用。

如下圖,是ELK配合TLog,快速定位請(qǐng)求處理的鏈路的示例。

圖片

TLog接入

1、接入步驟

1.1、引入依賴

<dependency>
<groupId>com.yomahub</groupId>
<artifactId>tlog-all-spring-boot-starter</artifactId>
<version>1.5.0</version>
</dependency>

1.2、替換logback配置項(xiàng)

圖片

到這其實(shí)就已經(jīng)完成了配置。

1.3、測(cè)試

圖片

這里是通過(guò)slf4j的LoggerFactory獲取Logger對(duì)象,因?yàn)閘ogback適配了slf4j,最終會(huì)通過(guò)logback來(lái)輸出日志。

圖片

從這可以看出,11794076298070144 就是本次日志輸出的時(shí)候生成的一個(gè)請(qǐng)求的traceId,在排查日志的時(shí)候就可以通過(guò)這個(gè)traceId去搜索出整個(gè)請(qǐng)求的鏈路日志。

2、TLog接入方式

TLog總共提供了三種方式接入項(xiàng)目

  • Javaagent接入方式
  • 字節(jié)碼注入方式
  • 日志框架適配器方式

上面案例的接入方式其實(shí)是屬于日志框架適配器方式,并且是對(duì)于Logback框架的適配。TLog除了適配了Logback框架,還適配了Log4j框架和Log4j2框架,項(xiàng)目中可自行選擇。

Javaagent接入方式和字節(jié)碼注入方式相比與日志框架適配器方式對(duì)代碼的入侵性更小,但是這兩種方式僅僅只支持SpringBoot項(xiàng)目,并且相較于日志框架適配器的方式,MDC和異步日志功能并不支持,所以要想完整體驗(yàn)TLog的功能,還是建議選擇日志框架適配器方式,日志框架適配器方式其實(shí)接入也很快,其實(shí)也就是修改一下配置文件的事。

圖片項(xiàng)目環(huán)境兼容對(duì)比圖片特性支持對(duì)比

TLog的基本原理

1、日志標(biāo)簽

前面在介紹TLog的時(shí)候,提到TLog會(huì)自動(dòng)的對(duì)你的日志進(jìn)行打標(biāo)簽,這個(gè)標(biāo)簽就是日志標(biāo)簽,一個(gè)日志標(biāo)簽最多可以包含如下信息:

  • preApp:接口調(diào)用方服務(wù)名
  • preHost:接口調(diào)用方Host
  • preIp:接口調(diào)用方ip
  • currIp:當(dāng)前服務(wù)ip
  • traceId:鏈路id,調(diào)用方如果傳遞就是傳遞的值,不傳遞就會(huì)重新生成
  • spanId:鏈路spanId

默認(rèn)是按照如下labelPattern進(jìn)行數(shù)據(jù)拼接生成日志標(biāo)簽,所以默認(rèn)只打出spanId和traceId。

圖片

這也就是上面為什么示例中會(huì)輸出 <0><11794076298070144> 這種格式的原因,前面的0其實(shí)就是spanId。

如果你想改變?nèi)罩緲?biāo)簽輸出其它信息或者輸出的順序,只需要在SpringBoot配置文件中配置日志標(biāo)簽的生成樣式就行。

tlog.pattern=[$preApp][$preIp][$spanId][$traceId]

2、TLogContext

圖片

TLogContext是TLog是一個(gè)核心的組件,這個(gè)組件內(nèi)部是使用了TransmittableThreadLocal來(lái)傳遞traceId、preApp等信息。

當(dāng)有一個(gè)請(qǐng)求過(guò)來(lái)的時(shí)候,會(huì)從解析出traceId、preApp等信息,然后設(shè)置到TransmittableThreadLocal中,之后就可以在整個(gè)調(diào)用鏈路中從TLogContext中獲取到traceId等信息。

3、TLogRPCHandler

圖片

這個(gè)組件是用來(lái)處理調(diào)用方傳遞的traceId、preApp等信息,設(shè)置到TLogContext和MDC中,同時(shí)根據(jù)日志標(biāo)簽的格式生成日志標(biāo)簽。

第三方框架的適配

在實(shí)際項(xiàng)目中,一個(gè)請(qǐng)求處理過(guò)程可能會(huì)出現(xiàn)以下情況

  • 異步線程處理
  • 跨服務(wù)調(diào)用
  • MQ調(diào)用

那么對(duì)于這些情況來(lái)說(shuō),traceId應(yīng)該需要在異步線程、跨服務(wù)、MQ等中傳遞,以便更好地排查一個(gè)請(qǐng)求的處理鏈路。

而TLog對(duì)于以上可能出現(xiàn)的情況都做了大量的適配,保證traceId能夠在異步線程、微服務(wù)間、MQ等中能夠正確傳遞。

1、異步線程

1.1 一般異步線程

所謂的一般異步線程就是指直接通過(guò)new Thread的方法來(lái)創(chuàng)建異步線程,然后來(lái)執(zhí)行,這種方式TLog是天然支持?jǐn)y帶traceId的,如圖。

圖片

執(zhí)行結(jié)果

圖片

從這可以看出這種異步方式的確成功傳遞了traceId。

1.2 線程池

對(duì)于線程池來(lái)說(shuō),其實(shí)默認(rèn)也是支持傳遞traceId,但是由于線程池中的線程是可以復(fù)用了,為了保證線程間的數(shù)據(jù)互不干擾,需要使用TLogInheritableTask將提交的任務(wù)進(jìn)行包裝。

ThreadPoolExecutor pool =
new ThreadPoolExecutor(1, 2, 1, TimeUnit.SECONDS, new LinkedBlockingQueue<>(10));
pool.execute(new TLogInheritableTask() {
@Override
public void runTask(){
logger.info("異步執(zhí)行");
}
});

上述代碼的寫(xiě)法會(huì)有點(diǎn)耦合,每次提交任務(wù)都需要?jiǎng)?chuàng)建一個(gè)TLogInheritableTask,比較麻煩,可以按如下寫(xiě)法進(jìn)行簡(jiǎn)化。

圖片

TLogThreadPoolExecutor

自己寫(xiě)個(gè)TLogThreadPoolExecutor繼承ThreadPoolExecutor,重寫(xiě)execute方法(submit最終也會(huì)調(diào)用execute方法執(zhí)行),然后將提交的任務(wù)統(tǒng)一包裝成TLogInheritableTask,這樣需要使用線程池的地方直接創(chuàng)建TLogThreadPoolExecutor就可以了,就不需要在提交任務(wù)的時(shí)候創(chuàng)建TLogInheritableTask了。

ThreadPoolExecutor pool =
new TLogThreadPoolExecutor(1, 2, 1, TimeUnit.SECONDS, new LinkedBlockingQueue<>(10));
pool.execute(() -> logger.info("異步執(zhí)行"));

2、對(duì)RPC框架的支持

除了對(duì)異步線程的支持,TLog也支持常見(jiàn)的Dubbo,Dubbox,OpenFeign三大RPC框架,在SpringBoot項(xiàng)目中不需要任何配置,只需要引入依賴就可以實(shí)現(xiàn)traceId在服務(wù)之間的傳遞

2.1 對(duì)Dubbo和Dubbox的支持

對(duì)于Dubbo和Dubbox的支持是基于Dubbo的Filter擴(kuò)展點(diǎn)來(lái)的

圖片

TLog通過(guò)SPI機(jī)制擴(kuò)展Filter,在消費(fèi)者發(fā)送請(qǐng)求前從TLogContext獲取到traceId,然后將traceId和其它調(diào)用者數(shù)據(jù)設(shè)置請(qǐng)求數(shù)據(jù)中,服務(wù)提供者在處理請(qǐng)求的時(shí)候,也會(huì)經(jīng)過(guò)Filter,從請(qǐng)求中獲取到traceId等信息,然后設(shè)置到TLogContext中,從而實(shí)現(xiàn)了traceId在dubbo的消費(fèi)者和提供者之間的傳遞。

2.2 對(duì)OpenFeign的支持

對(duì)于OpenFeign的支持其實(shí)也是通過(guò)Feign提供的擴(kuò)展點(diǎn)RequestInterceptor來(lái)實(shí)現(xiàn)的

圖片

發(fā)送請(qǐng)求之前,從TLogContext獲取到traceId,將traceId等信息添加到請(qǐng)求頭中,然后就可以通過(guò)Http請(qǐng)求將traceId等信息傳遞。

當(dāng)被調(diào)用方接收到請(qǐng)求之后,會(huì)經(jīng)過(guò)TLogWebInterceptor這個(gè)攔截器進(jìn)行攔截,從請(qǐng)求頭中獲取到這些參數(shù),設(shè)置到TLogContext中。

圖片

3、對(duì)常用Http框架的支持

除了一些RPC框架,TLog也對(duì)一些Http框架進(jìn)行了適配,比如

  • HttpClient
  • Okhttp
  • hutool-http
  • RestTemplate
  • forest

使用這些Http框架也可以實(shí)現(xiàn)traceId的傳遞

其實(shí)這些框架的適配跟Feign的適配都是大同小異,都是基于這些Http框架各自提供的擴(kuò)展點(diǎn)進(jìn)行適配的,將traceId等信息放到請(qǐng)求頭中,這里都不舉例了,具體的使用方法可以在官網(wǎng)查看。

4、對(duì)SpringCloud Gateway的支持

同樣的,TLog也適配了SpringCloud Gateway

圖片

原理也是一樣的,就是適配了Gateway的GlobalFilter,從請(qǐng)求頭中獲取traceId等信息。

除了適配了Gateway網(wǎng)關(guān),TLog也適配了Soul網(wǎng)關(guān)。

5、對(duì)MQ的支持

對(duì)于MQ的支持跟異步線程差不多,需要將你發(fā)送的消息包裝成TLogMqWrapBean對(duì)象

圖片

TLogMqWrapBean

發(fā)送的時(shí)候直接發(fā)送TLogMqWrapBean對(duì)象過(guò)去

TLogMqWrapBean<BizBean> tLogMqWrap = new TLogMqWrapBean(bizBean);
mqClient.send(tLogMqWrap);

TLogMqWrapBean會(huì)將traceId等信息攜帶,消費(fèi)者接受到TLogMqWrapBean,然后通過(guò)TLogMqConsumerProcessor處理業(yè)務(wù)消息。

TLogMqConsumerProcessor.process(tLogMqWrapBean, new TLogMqRunner<BizBean>() {
@Override
public void mqConsume(BizBean o){
//業(yè)務(wù)操作
}
});

如此就實(shí)現(xiàn)了traceId通過(guò)MQ傳遞。

在實(shí)際使用中,根據(jù)不同的MQ的類型,可以將消息包裝成TLogMqWrapBean對(duì)象的過(guò)程和處理消息的過(guò)程做統(tǒng)一的封裝處理,以減少發(fā)送消息和處理消息對(duì)于TLog的耦合。

6、對(duì)任務(wù)框架的支持

TLog主要是支持一下四種任務(wù)框架

  • JDK Timer
  • Quartz框架
  • spring-scheduled
  • XXL-JOB框架

其中,spring-scheduled和XXL-JOB在SpringBoot環(huán)境底下是無(wú)需任務(wù)配置的,只需要引入依賴即可。

Timer在使用的時(shí)候需要將任務(wù)包裝成TLogTimerTask,Quartz需要把QuartzJobBean替換成TLogQuartzJobBean就可以了。

小總結(jié)

其實(shí)從上面的各種適配可以看出,其實(shí)本質(zhì)都是一樣的,就是根據(jù)具體框架的擴(kuò)展點(diǎn),在發(fā)送請(qǐng)求之前從TLogContext獲取到traceId,將traceId等調(diào)用者的信息在請(qǐng)求中攜帶,然后被調(diào)用方解析請(qǐng)求,取出traceId和調(diào)用者信息,設(shè)置到被調(diào)用方服務(wù)中的TLogContext中。

所以,如果一旦需要遇到官方還未適配的框架或者組件,可以參照上述適配過(guò)程進(jìn)行適配即可。

最后

總的來(lái)說(shuō),TLog是一款非常優(yōu)秀的日志追蹤的框架,很適合中小公司使用。這里來(lái)總結(jié)一下TLog的特性

  • 通過(guò)對(duì)日志打標(biāo)簽完成輕量級(jí)微服務(wù)日志追蹤
  • 提供三種接入方式:javaagent完全無(wú)侵入接入,字節(jié)碼一行代碼接入,基于配置文件的接入
  • 對(duì)業(yè)務(wù)代碼無(wú)侵入式設(shè)計(jì),使用簡(jiǎn)單,10分鐘即可接入
  • 支持常見(jiàn)的log4j,log4j2,logback三大日志框架,并提供自動(dòng)檢測(cè),完成適配
  • 支持dubbo,dubbox,feign三大RPC框架
  • 支持Spring Cloud Gateway和Soul網(wǎng)關(guān)
  • 支持HttpClient和Okhttp等http調(diào)用框架標(biāo)簽傳遞
  • 支持多種任務(wù)框架,JDK的TimerTask,Quartz,XXL-JOB,spring-scheduled
  • 支持日志標(biāo)簽的自定義模板的配置,提供多個(gè)系統(tǒng)級(jí)埋點(diǎn)標(biāo)簽的選擇
  • 支持異步線程的追蹤,包括線程池,多級(jí)異步線程等場(chǎng)景
  • 幾乎無(wú)性能損耗,快速穩(wěn)定,經(jīng)過(guò)壓測(cè),損耗在0.01%

由于本文篇幅有限,無(wú)法全面對(duì)TLog進(jìn)行講解,如果想深入了解該框架,可自行閱讀官網(wǎng)或者源碼。

責(zé)任編輯:武曉燕 來(lái)源: 三友的java日記
相關(guān)推薦

2016-11-28 14:11:32

搜索

2021-03-11 12:27:36

java 變量數(shù)量

2021-04-26 08:16:18

CPU 語(yǔ)言編寫(xiě)

2021-06-02 08:00:57

WebAsyncTas項(xiàng)目異步

2021-01-14 09:04:24

線程池工具類面試

2022-06-24 11:14:00

美團(tuán)開(kāi)源

2024-05-29 08:56:31

2022-05-10 09:16:50

MQ內(nèi)存消費(fèi)者

2022-10-09 09:38:10

高可用設(shè)計(jì)

2022-03-14 17:56:15

云廠商系統(tǒng)阿里云

2021-05-17 18:27:20

Token驗(yàn)證HTTP

2023-04-24 16:25:47

3D開(kāi)發(fā)

2021-03-04 13:14:54

文件系統(tǒng)存儲(chǔ)

2022-02-07 09:40:10

高可用高并發(fā)高性能

2021-02-04 11:01:59

計(jì)算機(jī)信號(hào)轉(zhuǎn)換

2021-07-14 18:21:50

負(fù)載均衡TCP網(wǎng)關(guān)

2020-09-08 18:01:58

預(yù)算削減成本首席信息安全官

2023-05-15 10:03:00

Redis緩存穿透

2025-01-21 14:11:32

2025-04-18 08:50:57

項(xiàng)目裝飾器日志
點(diǎn)贊
收藏

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

成人影院入口| 亚洲第一天堂网| 国产在线观看91一区二区三区| 色婷婷av一区二区| 亚洲一区综合| 免费av网站观看| 奇米精品一区二区三区四区| 欧美成人h版在线观看| av鲁丝一区鲁丝二区鲁丝三区| 极品美女一区| 亚洲精品国产a久久久久久| 国产视色精品亚洲一区二区| 精品久久久久久久久久久国产字幕| 97精品中文字幕| 精品国产乱码91久久久久久网站| 免费在线观看毛片网站| huan性巨大欧美| 国产视频一区在线播放| www日韩av| 这里只有精品国产| 日韩亚洲国产精品| 精品激情国产视频| 午夜理伦三级做爰电影| 日韩欧美激情电影| 欧美性大战xxxxx久久久| 欧美国产日韩激情| 蜜桃视频在线观看免费视频网站www| eeuss影院一区二区三区| 国产一区二区丝袜| 国产黄色免费观看| 亚洲天堂偷拍| 久久不射电影网| 午夜激情福利电影| 国产一区二区电影在线观看| 亚洲国产精品成人一区二区| 在线视频观看91| 视频精品导航| 一本久久精品一区二区| 男女视频网站在线观看| 99自拍视频在线观看| 国产精品欧美一区喷水| 欧美日韩大片一区二区三区| 老熟妇高潮一区二区高清视频| 国内精品国产三级国产a久久 | 久久久久久久黄色| 香蕉综合视频| 精品精品国产国产自在线| 五月婷婷婷婷婷| 欧美日韩在线播放视频| 国产午夜精品美女视频明星a级| 艳妇乳肉豪妇荡乳xxx| 亚洲91网站| 欧美成人一区二区三区在线观看 | y97精品国产97久久久久久| 四虎国产精品成人免费入口| 日韩电影不卡一区| 精品视频—区二区三区免费| 在线观看国产三级| 羞羞色国产精品网站| 亚洲国产成人久久| 国产激情视频网站| 免费成人网www| 亚洲欧美日韩中文视频| 特级西西www444人体聚色 | 国产免费一区二区三区四在线播放| 1769视频在线播放免费观看| 国产精品乱码一区二区三区软件 | 久久天堂精品| 国产精品久久久久久av下载红粉| 精品国产www| 卡一卡二国产精品| 亚洲一区二区自拍| 亚洲AV无码一区二区三区性| 岛国一区二区在线观看| 九九九九九九精品| 欧美日韩免费做爰大片| 欧美激情一区二区| 中文字幕精品—区二区日日骚| 日本韩国在线视频爽| 亚洲激情av在线| 欧美日韩精品在线一区二区 | 美女写真理伦片在线看| 亚洲免费大片在线观看| 黄色a级片免费看| 亚洲精品中文字幕| 欧美三区免费完整视频在线观看| 岛国av免费在线| 9国产精品午夜| 日韩电影大片中文字幕| 阿v天堂2014| 午夜久久久久| 青青草99啪国产免费| 中文字幕乱码人妻无码久久| 国产传媒久久文化传媒| 麻豆av一区| 米奇精品一区二区三区| 精品久久久久人成| 日本在线一二三区| 极品束缚调教一区二区网站| 亚洲亚裔videos黑人hd| 精品国产视频一区二区三区| 国产亚洲成人一区| 91精品国产综合久久香蕉922| 丰满人妻av一区二区三区| 国产日韩亚洲欧美综合| 国产 国语对白 露脸| 一个人www视频在线免费观看| 欧美日韩一二三区| 草草地址线路①屁屁影院成人| 日韩精品一区二区三区免费观影| 欧美极品少妇xxxxⅹ裸体艺术| 中文字幕日韩免费| 丰满少妇久久久久久久| 五码日韩精品一区二区三区视频| 国产后进白嫩翘臀在线观看视频| 欧美视频三区在线播放| 国产一线在线观看| 91精品国产麻豆国产在线观看| 欧美综合第一页| www日本视频| 国产精品电影一区二区| 黄色a级片免费| caoporn成人| 久久人人爽亚洲精品天堂| 成年人av网站| 不卡的av中国片| 国内自拍中文字幕| 亚洲一区二区av| 伊人伊成久久人综合网站| 男人天堂中文字幕| 国产伦精品一区二区三区免费| 日韩亚洲不卡在线| 性xxxxfreexxxxx欧美丶| 精品少妇一区二区三区免费观看 | 91亚色免费| 婷婷视频在线| 欧美三级电影在线观看| jizz中文字幕| 日本一不卡视频| 麻豆久久久9性大片| √天堂8资源中文在线| 日韩一区二区三区在线| 成人午夜免费影院| 热久久一区二区| 色噜噜狠狠色综合网| 都市激情综合| 国产视频一区在线| av图片在线观看| 91麻豆国产香蕉久久精品| 黄色大片中文字幕| 福利在线一区| 韩剧1988免费观看全集| 天天操天天操天天操| 亚洲成人精品在线观看| 少妇精品无码一区二区三区| 欧美日韩视频一区二区三区| 91黄在线观看| 丁香花在线观看完整版电影| 日韩欧美123| 久久久久久久久久久97| 成人丝袜高跟foot| 3d动漫一区二区三区| 中国av一区| 国产第一区电影| 欧美成年黄网站色视频| 91精品国产综合久久香蕉的特点| 九九这里只有精品视频| 国产酒店精品激情| 丰满少妇大力进入| 天天操综合520| 日韩暖暖在线视频| www日韩tube| 日韩午夜在线观看视频| 精品亚洲永久免费| www激情久久| 亚洲一级片网站| 综合国产在线| 国产高清不卡av| 美女写真久久影院| 日韩一区二区av| 亚洲av永久纯肉无码精品动漫| 婷婷中文字幕综合| 丁香激情五月少妇| 国产精品系列在线观看| 91猫先生在线| 色男人天堂综合再现| 成人欧美一区二区三区视频xxx| 国产在线美女| 中文字幕久热精品在线视频| 99久久久久久久| 疯狂蹂躏欧美一区二区精品| 亚洲一级黄色录像| 国产69精品久久99不卡| 日韩欧美在线免费观看视频| 91精品一区二区三区综合在线爱 | 国产精品久久久久久av| av网站在线看| 亚洲视频日韩精品| 国产黄色片av| 在线看不卡av| 久久婷婷国产麻豆91| 久久久久久久精| a级大片免费看| 久久精品人人做人人爽电影蜜月| 中文有码久久| 国产欧美日韩在线一区二区| av资源站久久亚洲| 欧美性理论片在线观看片免费| 欧美精品在线看| 国产精品一区在线看| 欧美精品一区二区三区视频| 亚洲中文一区二区三区| 欧美日韩性视频| 青娱乐91视频| 国产精品第13页| av黄色在线免费观看| 成人av在线资源网站| www.久久av.com| 丝袜亚洲另类欧美综合| 亚洲精品蜜桃久久久久久| 天天影视综合| 亚洲成人第一| 色棕色天天综合网| 精品国产一区二区三| 日韩精品一级| 91免费人成网站在线观看18| 无人区在线高清完整免费版 一区二| 欧美国产激情18| 超碰人人在线| 精品国产一区二区三区久久久| 女人偷人在线视频| 亚洲第一男人av| 乱精品一区字幕二区| 欧美一区二区三区四区视频| 在线观看国产黄| 欧美性视频一区二区三区| 亚洲免费在线视频观看| 婷婷成人综合网| 国产午夜小视频| 亚洲午夜日本在线观看| 青青草偷拍视频| 亚洲午夜国产一区99re久久| 四虎永久免费在线| ㊣最新国产の精品bt伙计久久| 日韩欧美视频免费观看| 性高爱久久久久久久久| 欧美a一级片| 欧美有码在线观看视频| 18aaaa精品欧美大片h| 色综合91久久精品中文字幕| 黄页视频在线播放| 中文字幕日韩有码| 欧美最猛黑人xxxxx猛交| 一区二区传媒有限公司| 国内在线观看一区二区三区| 国产爆乳无码一区二区麻豆| 欧美高清日韩| 伊人久久在线观看| 欧美激情91| 毛片在线视频观看| 欧美日韩国产探花| 久久这里只有精品18| 国产精品vip| 欧美日韩不卡在线视频| 99成人在线| 日韩视频第二页| 日韩中文字幕一区二区三区| 韩国日本美国免费毛片| 久久久久久穴| 欧洲熟妇精品视频| 麻豆成人久久精品二区三区红 | 爱爱免费小视频| 久久综合狠狠综合久久激情| 中文幕无线码中文字蜜桃| 欧美国产精品一区二区| www色aa色aawww| 亚洲成人综合在线| 无码人妻精品一区二区三区蜜桃91 | 国产精品主播直播| 欧美做受高潮中文字幕| 26uuu亚洲| 国产免费嫩草影院| 一区二区三区免费观看| 国产精品国产三级国产专区52| 在线一区二区三区做爰视频网站| 97人妻精品一区二区三区视频| 日韩欧美资源站| 深夜福利视频在线观看| 最近的2019中文字幕免费一页| 2024短剧网剧在线观看| 欧美专区中文字幕| av一级久久| 久久另类ts人妖一区二区| 水蜜桃精品av一区二区| 日韩网站在线免费观看| 日韩av一区二区在线影视| 欧美高清精品一区二区| 久久中文娱乐网| 欧美做爰爽爽爽爽爽爽| 狠狠躁夜夜躁人人躁婷婷91 | 美女诱惑一区二区| youjizz.com日本| 欧美高清在线视频| 国产午夜激情视频| 欧美日韩国产天堂| 国产自产一区二区| 日韩在线不卡视频| 亚洲最新无码中文字幕久久| 成人在线中文字幕| 啄木系列成人av电影| 男同互操gay射视频在线看| 性感少妇一区| 国产吃瓜黑料一区二区| 国产精品拍天天在线| 伊人手机在线视频| 日韩欧美成人激情| 免费av在线播放| 国产精品成人aaaaa网站| 成人h动漫免费观看网站| 一道精品一区二区三区| 亚洲欧美日韩综合国产aⅴ| 日本成人在线免费| 亚洲欧洲一区二区三区| 无码人妻精品一区二区50| 亚洲精品国产免费| 另类视频在线| 97神马电影| 欧美精品国产| 婷婷激情小说网| 国产精品视频九色porn| 潘金莲一级淫片aaaaaa播放| 亚洲国产女人aaa毛片在线| 国产福利视频在线| 国产日韩欧美在线播放| 精品国产一区一区二区三亚瑟 | 日韩美女在线视频 | 中文字幕在线一区免费| 国产又粗又猛又黄视频| 亚洲欧美www| 在线观看的黄色| 加勒比在线一区二区三区观看| 午夜精品久久99蜜桃的功能介绍| mm131亚洲精品| 中文字幕欧美国产| 最近中文字幕在线免费观看| 国产亚洲激情视频在线| 欧美大片免费高清观看| 欧美日韩国产免费一区二区三区 | 亚欧激情乱码久久久久久久久| 久久久精品国产免大香伊| caoporn国产| 亚洲免费一在线| 在线成人视屏| 亚洲一二三区在线| 国内精品伊人久久久久影院对白| 四虎影视一区二区| 337p亚洲精品色噜噜噜| 3d玉蒲团在线观看| 国产精品jizz视频| 9色精品在线| 国产美女免费网站| 欧美日韩mp4| 4438x成人网全国最大| 成人羞羞视频免费| 日韩一级精品| xxx在线播放| 欧美精品xxxxbbbb| 手机电影在线观看| 激情小说网站亚洲综合网| 亚洲免费黄色| 波多野结衣av在线观看| 欧美日韩一区二区三区四区五区 | 日韩美女毛片| 午夜视频在线瓜伦| 综合激情成人伊人| 欧美一区二区三区黄片| 欧美一区二三区| 日韩三级在线| 91精产国品一二三| 欧美性猛交视频| 免费网站黄在线观看| 国产精品久久久久久久久久久久午夜片 | 麻豆国产精品| 黄色片网址在线观看| 国产欧美日韩综合精品一区二区 | 欧美www.| 国产四区在线观看| 99re66热这里只有精品3直播| 无码人妻精品一区二区蜜桃色欲| 久久久精品999| 老牛国内精品亚洲成av人片| 男人搞女人网站| 亚洲一区二区精品视频| 成人性生交大片免费看午夜| 亚洲综合在线中文字幕| 毛片一区二区| 免费在线看黄网址| 伊人一区二区三区久久精品| 成人盗摄视频| 五月天婷婷亚洲|