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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

用Elasticsearch代替数据库存储日志方式

發(fā)布時(shí)間:2023/12/10 数据库 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 用Elasticsearch代替数据库存储日志方式 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

之前的項(xiàng)目中一直使用的是數(shù)據(jù)庫表記錄用戶操作日志的,但隨著時(shí)間的推移,數(shù)據(jù)庫log單表是越來越大「不考慮刪除」,再加上近期項(xiàng)目中需要用到Elasticsearch,所以干脆把這些用戶日志遷移到ES上來了。

環(huán)境:SpringBoot2.2.6 + Elasticsearch6.8.8

如果你還不了解Elasticsearch的話,可以參考之前的幾篇文章:

  • ES基本概念:https://www.cnblogs.com/niceyoo/p/10864783.html
  • 重溫ES基礎(chǔ):https://www.cnblogs.com/niceyoo/p/11329426.html
  • ES-Windows集群搭建:https://www.cnblogs.com/niceyoo/p/11343697.html
  • ES-Docker集群搭建:https://www.cnblogs.com/niceyoo/p/11342903.html
  • MacOS中ES搭建:https://www.cnblogs.com/niceyoo/p/12936325.html
  • 由于之前就是使用的AOP+注解方式實(shí)現(xiàn)日志記錄,而本次依舊采用這種方式,所以改動(dòng)不大,把保存至數(shù)據(jù)庫換成ES就可以了,開始吧。

    文章最后我會(huì)提供源碼的,正文描述部分有省略~

    1、引入依賴文件

    pom.xml文件中引入需要的es、aop所需的依賴:

    <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.2.6.RELEASE</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>com.example</groupId><artifactId>demo</artifactId><version>0.0.1-SNAPSHOT</version><name>demo</name><description>Demo project for Spring Boot</description><properties><java.version>1.8</java.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><scope>runtime</scope><optional>true</optional></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope><exclusions><exclusion><groupId>org.junit.vintage</groupId><artifactId>junit-vintage-engine</artifactId></exclusion></exclusions></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-aop</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-elasticsearch</artifactId></dependency><!-- Gson --><dependency><groupId>com.google.code.gson</groupId><artifactId>gson</artifactId><version>2.8.6</version></dependency><!-- Hutool工具包 --><dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.3.2</version></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build> </project>

    2、修改yml配置文件

    加入elasticsearch的配置信息:

    server:port: 6666servlet:context-path: /tomcat:uri-encoding: UTF-8spring:# Elasticsearchdata:elasticsearch:client:reactive:# 要連接的ES客戶端 多個(gè)逗號(hào)分隔endpoints: 127.0.0.1:9300# 暫未使用ES 關(guān)閉其持久化存儲(chǔ)repositories:enabled: true

    3、Log實(shí)體

    使用了lombok「 @Data 注解」簡(jiǎn)化 set\get,spring-data-elasticsearch提供了@Document、@Id、@Field注解,其中@Document作用在實(shí)體類上,指向文檔地址,@Id、@Field作用于成員變量上,分別表示主鍵、字段。

    @Data @Document(indexName = "log", type = "log", shards = 1, replicas = 0, refreshInterval = "-1") public class EsLog implements Serializable{private static final long serialVersionUID = 1L;/*** 主鍵*/@Idprivate String id = SnowFlakeUtil.nextId().toString();/*** 創(chuàng)建者*/private String createBy;/*** 創(chuàng)建時(shí)間*/@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")@Field(type = FieldType.Date, index = false, format = DateFormat.custom, pattern = "yyyy-MM-dd HH:mm:ss")private Date createTime = new Date();/*** 時(shí)間戳 查詢時(shí)間范圍時(shí)使用*/private Long timeMillis = System.currentTimeMillis();/*** 方法操作名稱*/private String name;/*** 日志類型*/private Integer logType;/*** 請(qǐng)求鏈接*/private String requestUrl;/*** 請(qǐng)求類型*/private String requestType;/*** 請(qǐng)求參數(shù)*/private String requestParam;/*** 請(qǐng)求用戶*/private String username;/*** ip*/private String ip;/*** 花費(fèi)時(shí)間*/private Integer costTime;/*** 轉(zhuǎn)換請(qǐng)求參數(shù)為Json* @param paramMap*/public void setMapToParams(Map<String, String[]> paramMap) {this.requestParam = ObjectUtil.mapToString(paramMap);} }

    4、Dao層

    數(shù)據(jù)操作層,有兩種方式實(shí)現(xiàn)對(duì)Elasticsearch數(shù)據(jù)的修改,一是使用ElasticsearchTemplate,二是通過ElasticsearchRepository接口,本文基于后者接口方式。

    用過SpringDataJPA的小伙伴就不陌生了,如下實(shí)現(xiàn)接口就跟JPA通過方法名稱生成SQL一樣簡(jiǎn)單。

    /*** esc dao*/ public interface EsLogDao extends ElasticsearchRepository<EsLog, String> {/*** 通過類型獲取* @param type* @return*/Page<EsLog> findByLogType(Integer type, Pageable pageable); }

    默認(rèn)情況下,ElasticsearchRepository提供了findById()、findAll()、findAllById()、search()等方法供我們方便使用。

    5、自定義注解

    自定義 @SystemLog 注解,用于標(biāo)記需要記錄日志的方法。

    @Target({ElementType.PARAMETER, ElementType.METHOD}) @Retention(RetentionPolicy.RUNTIME) @Documented public @interface SystemLog {/*** 日志名稱* @return*/String description() default "";/*** 日志類型* @return*/LogType type() default LogType.OPERATION; }

    6、編寫切面、通知

    步驟5中自定義了注解,那么接下來就是定位注解,以及對(duì)定位后的方法進(jìn)行業(yè)務(wù)處理部分了,而對(duì)我們來說就是把日志記錄至Elasticsearch中。

    /*** 日志管理*/ @Aspect @Component @Slf4j public class SystemLogAspect {private static final ThreadLocal<Date> beginTimeThreadLocal = new NamedThreadLocal<Date>("ThreadLocal beginTime");@Autowiredprivate EsLogService esLogService;@Autowired(required = false)private HttpServletRequest request;/*** Controller層切點(diǎn),注解方式*/@Pointcut("@annotation(com.example.demo.annotation.SystemLog)")public void controllerAspect() {}/*** 前置通知 (在方法執(zhí)行之前返回)用于攔截Controller層記錄用戶的操作的開始時(shí)間* @param joinPoint 切點(diǎn)* @throws InterruptedException*/@Before("controllerAspect()")public void doBefore(JoinPoint joinPoint) throws InterruptedException{//線程綁定變量(該數(shù)據(jù)只有當(dāng)前請(qǐng)求的線程可見)Date beginTime = new Date();beginTimeThreadLocal.set(beginTime);}/*** 后置通知(在方法執(zhí)行之后并返回?cái)?shù)據(jù)) 用于攔截Controller層無異常的操作* @param joinPoint 切點(diǎn)*/@AfterReturning("controllerAspect()")public void after(JoinPoint joinPoint){try {String username = "";String description = getControllerMethodInfo(joinPoint).get("description").toString();int type = (int)getControllerMethodInfo(joinPoint).get("type");Map<String, String[]> logParams = request.getParameterMap();EsLog esLog = new EsLog();//請(qǐng)求用戶esLog.setUsername("小偉");//日志標(biāo)題esLog.setName(description);//日志類型esLog.setLogType(type);//日志請(qǐng)求urlesLog.setRequestUrl(request.getRequestURI());//請(qǐng)求方式esLog.setRequestType(request.getMethod());//請(qǐng)求參數(shù)esLog.setMapToParams(logParams);//請(qǐng)求開始時(shí)間long beginTime = beginTimeThreadLocal.get().getTime();long endTime = System.currentTimeMillis();//請(qǐng)求耗時(shí)Long logElapsedTime = endTime - beginTime;esLog.setCostTime(logElapsedTime.intValue());//調(diào)用線程保存至ESThreadPoolUtil.getPool().execute(new SaveEsSystemLogThread(esLog, esLogService));} catch (Exception e) {log.error("AOP后置通知異常", e);}}/*** 保存日志至ES*/private static class SaveEsSystemLogThread implements Runnable {private EsLog esLog;private EsLogService esLogService;public SaveEsSystemLogThread(EsLog esLog, EsLogService esLogService) {this.esLog = esLog;this.esLogService = esLogService;}@Overridepublic void run() {esLogService.saveLog(esLog);}}/*** 獲取注解中對(duì)方法的描述信息 用于Controller層注解* @param joinPoint 切點(diǎn)* @return 方法描述* @throws Exception*/public static Map<String, Object> getControllerMethodInfo(JoinPoint joinPoint) throws Exception{Map<String, Object> map = new HashMap<String, Object>(16);//獲取目標(biāo)類名String targetName = joinPoint.getTarget().getClass().getName();//獲取方法名String methodName = joinPoint.getSignature().getName();//獲取相關(guān)參數(shù)Object[] arguments = joinPoint.getArgs();//生成類對(duì)象Class targetClass = Class.forName(targetName);//獲取該類中的方法Method[] methods = targetClass.getMethods();String description = "";Integer type = null;for(Method method : methods) {if(!method.getName().equals(methodName)) {continue;}Class[] clazzs = method.getParameterTypes();if(clazzs.length != arguments.length) {//比較方法中參數(shù)個(gè)數(shù)與從切點(diǎn)中獲取的參數(shù)個(gè)數(shù)是否相同,原因是方法可以重載哦continue;}description = method.getAnnotation(SystemLog.class).description();type = method.getAnnotation(SystemLog.class).type().ordinal();map.put("description", description);map.put("type", type);}return map;}}

    7、EsLogService接口類

    EsLogService中我們編寫幾個(gè)常用的接口方法,增刪改查:

    /*** 日志操作service*/ public interface EsLogService {/*** 添加日志* @param esLog* @return*/EsLog saveLog(EsLog esLog);/*** 通過id刪除日志* @param id*/void deleteLog(String id);/*** 刪除全部日志*/void deleteAll();/*** 分頁搜索獲取日志* @param type* @param key* @param searchVo* @param pageable* @return*/Page<EsLog> findAll(Integer type, String key, SearchVo searchVo, Pageable pageable); }

    我們簡(jiǎn)單看一下這個(gè) findAll 方法的實(shí)現(xiàn)類吧,其他方法就是直接調(diào)用ElasticsearchRepository提供的findById()、findAll()、findAllById()、save()等方法。

    /*** @param type 類型* @param key 搜索的關(guān)鍵字* @param searchVo* @param pageable* @return*/ @Override public Page<EsLog> findAll(Integer type, String key, SearchVo searchVo, Pageable pageable) {if(type==null&&StrUtil.isBlank(key)&&StrUtil.isBlank(searchVo.getStartDate())){// 無過濾條件獲取全部return logDao.findAll(pageable);}else if(type!=null&&StrUtil.isBlank(key)&&StrUtil.isBlank(searchVo.getStartDate())){// 僅有typereturn logDao.findByLogType(type, pageable);}QueryBuilder qb;QueryBuilder qb0 = QueryBuilders.termQuery("logType", type);QueryBuilder qb1 = QueryBuilders.multiMatchQuery(key, "name", "requestUrl", "requestType","requestParam","username","ip");// 在有type條件下if(StrUtil.isNotBlank(key)&&StrUtil.isBlank(searchVo.getStartDate())&&StrUtil.isBlank(searchVo.getEndDate())){// 僅有keyqb = QueryBuilders.boolQuery().must(qb0).must(qb1);}else if(StrUtil.isBlank(key)&&StrUtil.isNotBlank(searchVo.getStartDate())&&StrUtil.isNotBlank(searchVo.getEndDate())){// 僅有時(shí)間范圍Long start = DateUtil.parse(searchVo.getStartDate()).getTime();Long end = DateUtil.endOfDay(DateUtil.parse(searchVo.getEndDate())).getTime();QueryBuilder qb2 = QueryBuilders.rangeQuery("timeMillis").gte(start).lte(end);qb = QueryBuilders.boolQuery().must(qb0).must(qb2);}else{// 兩者都有Long start = DateUtil.parse(searchVo.getStartDate()).getTime();Long end = DateUtil.endOfDay(DateUtil.parse(searchVo.getEndDate())).getTime();QueryBuilder qb2 = QueryBuilders.rangeQuery("timeMillis").gte(start).lte(end);qb = QueryBuilders.boolQuery().must(qb0).must(qb1).must(qb2);}//多字段搜索return logDao.search(qb, pageable); }

    8、controller層測(cè)試方法

    /*** 日志操作controller*/ @Slf4j @RestController @RequestMapping("/log") public class LogController {@Autowiredprivate EsLogService esLogService;/*** 測(cè)試*/@SystemLog(description = "測(cè)試", type = LogType.OPERATION)@RequestMapping(value = "/getA", method = RequestMethod.GET)public Result<Object> getA(String va){return ResultUtil.success("測(cè)試成功");}/*** 查詢?nèi)? @param type es 中的logType 不能為空* @param key 查詢的關(guān)鍵字* @param searchVo* @param pageVo* @return*/@RequestMapping(value = "/getAll", method = RequestMethod.GET)public Result<Object> getAll(@RequestParam(required = false) Integer type,@RequestParam String key,SearchVo searchVo,PageVo pageVo){Page<EsLog> es = esLogService.findAll(type, key, searchVo, PageUtil.initPage(pageVo));return ResultUtil.data(es);}/*** 批量刪除* @param ids* @return*/@RequestMapping(value = "/delByIds", method = RequestMethod.POST)public Result<Object> delByIds(@RequestParam String[] ids){for(String id : ids){esLogService.deleteLog(id);}return ResultUtil.success("刪除成功");}/*** 全部刪除* @return*/@RequestMapping(value = "/delAll", method = RequestMethod.POST)public Result<Object> delAll(){esLogService.deleteAll();return ResultUtil.success("刪除成功");} }

    以 getA()方法為例,直接通過瀏覽器調(diào)用:http://127.0.0.1:6666/log/getA,然后在 ES 中查詢一下是否保存成功:

    以getAll()方法為例,再測(cè)試一下查詢方法,在瀏覽器輸入 http://127.0.0.1:8888/log/getAll?key=&type=2,返回如下:

    9、最后補(bǔ)充

    本節(jié)是我拆分出來的一個(gè)demo,經(jīng)測(cè)試增刪改查是沒問題、同時(shí)查詢方法加入了分頁查詢,具體代碼細(xì)節(jié)可以下載本節(jié)源碼自行查看。

    源碼下載鏈接:https://niceyoo.lanzous.com/id0yikf

    如果你覺得本篇文章對(duì)你有所幫助,不如右上角關(guān)注一下我~

    18年專科畢業(yè)后,期間一度迷茫,最近我創(chuàng)建了一個(gè)公眾號(hào)用來記錄自己的成長(zhǎng)。

    總結(jié)

    以上是生活随笔為你收集整理的用Elasticsearch代替数据库存储日志方式的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

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

    毛片.com | 午夜久久久久久久久久影院 | 国产黄 | 日韩中文字幕在线看 | 黄色一级大片在线免费看产 | 曰韩在线 | www.色午夜.com | 久久99视频精品 | 美女网站视频免费都是黄 | 精品久久久久久久久久久久久 | 黄p网站在线观看 | 精品国产亚洲一区二区麻豆 | 五月婷婷综合网 | 91麻豆精品国产自产 | 久久 亚洲视频 | 国产精品99久久久久久大便 | 色先锋av资源中文字幕 | 狠狠操狠狠干天天操 | 国产精品日韩高清 | 国产日韩中文字幕在线 | 免费在线观看黄色网 | 美女国产免费 | 日韩在线视频一区 | 色婷婷激情 | 在线免费观看视频一区二区三区 | 看片网站黄色 | 91久久电影| 亚洲欧美视频在线观看 | 天天操综合网站 | 日韩欧美极品 | 国产高清 不卡 | 国产在线国偷精品产拍免费yy | 天天射天天爱天天干 | 午夜三级大片 | 一级黄色av | 国产日韩精品久久 | 欧美日韩视频免费 | 亚洲视频免费在线看 | 国产精品久久嫩一区二区免费 | 久久久91精品国产一区二区精品 | 欧美日韩中文国产一区发布 | 制服丝袜在线 | 久久久久黄色 | 国产日韩精品一区二区三区 | 国产激情小视频在线观看 | 就操操久久| 亚洲精品视频免费在线 | 精品国内自产拍在线观看视频 | 国产电影一区二区三区四区 | 91网页版在线观看 | 999国内精品永久免费视频 | 最近高清中文字幕 | 日韩av在线高清 | 国产麻豆精品久久一二三 | 天天综合网 天天 | 欧美一级片免费 | 国产不卡视频在线播放 | 亚洲在线视频网站 | 免费电影一区二区三区 | 毛片网站在线看 | 天天摸夜夜添 | 国产一级精品绿帽视频 | 日韩精品观看 | 日韩资源在线观看 | 久草免费看 | 成人午夜黄色影院 | 91中文字幕在线播放 | 亚洲黄色免费网站 | 免费黄色在线播放 | 国产小视频在线免费观看视频 | 五月婷综合| 国产1区2区3区在线 亚洲自拍偷拍色图 | 久久国产精品视频观看 | 日韩视频1 | 亚洲午夜精品福利 | 欧美一级在线 | 午夜精品电影一区二区在线 | 免费看v片网站 | 天天干天天综合 | 日本精品视频一区 | 久久艹艹| 在线91视频 | 国产在线精品一区二区不卡了 | 久久99精品国产99久久 | 九九九在线观看视频 | 美女精品在线 | 一区二区中文字幕在线 | 久久av一区二区三区亚洲 | av一级一片| 日日操操操| av大片免费在线观看 | 欧美色图另类 | 福利视频入口 | 久精品视频在线观看 | 久久久久久久久久久久影院 | www在线观看视频 | 国产精品女同一区二区三区久久夜 | 国产区第一页 | 久久精品123 | 国产一区二区在线影院 | 亚洲色影爱久久精品 | 日韩电影在线一区 | 麻豆免费精品视频 | 日韩欧美在线高清 | 黄色毛片视频免费观看中文 | 国产一区 在线播放 | 日韩视频免费播放 | 中午字幕在线 | 天天射夜夜爽 | 亚洲国内在线 | 麻豆视频免费入口 | 在线欧美日韩 | 色偷偷88888欧美精品久久久 | 日本最大色倩网站www | 久草久草在线 | 亚洲久草在线视频 | 国产精品大片免费观看 | 97涩涩视频| 国产亚洲aⅴaaaaaa毛片 | 91亚洲综合 | 婷婷久久婷婷 | 亚洲欧美国产精品va在线观看 | 日韩中文在线字幕 | 91福利社区在线观看 | 日韩欧美在线观看一区二区三区 | 成人 亚洲 欧美 | 夜夜看av| 婷婷六月丁香激情 | 欧美精品在线免费 | 久久久久激情视频 | 亚洲精品看片 | 国产美女视频网站 | 国产二区电影 | 91精品一区二区三区蜜臀 | 美女黄视频免费看 | 成人在线观看av | 国内精品久久久 | 国产精品永久久久久久久久久 | 日韩av不卡在线播放 | 五月婷久 | 日韩欧美在线国产 | 一级精品视频在线观看宜春院 | 特级aaa毛片| 久久精品视频日本 | 欧美成人黄色 | 国产精品一区二区免费在线观看 | 国产精品6999成人免费视频 | 波多野结衣电影一区 | 久久久精品久久 | 伊人av综合 | 视频成人永久免费视频 | 免费看日韩 | av免费电影在线 | 亚洲成人一二三 | 日韩系列 | 欧美日韩免费视频 | av中文字幕亚洲 | 日韩网站在线播放 | 亚洲一级黄色片 | 少妇bbbb揉bbbb日本 | www.久久视频 | 91香蕉视频 | 一级黄色在线免费观看 | 91人人射 | 亚洲一二区视频 | 久久精品5 | 日韩在线视频播放 | 免费看黄在线观看 | 91在线看| 午夜久久久久久久久 | 最近高清中文在线字幕在线观看 | 成人三级视频 | 亚洲精品免费观看视频 | 五月婷婷欧美 | 国产精品成人一区二区三区 | 国产va在线 | 国产香蕉视频在线观看 | 久草久草在线 | 国产精品久久伊人 | 欧美精品一区在线发布 | 摸bbb搡bbb搡bbbb | 日韩免费看 | 91九色视频在线观看 | 国产日本高清 | 91精品影视 | 91精品国产乱码久久 | 中文日韩在线视频 | 国内丰满少妇猛烈精品播 | 在线观看成年人 | 精品99免费| 超碰成人免费电影 | 久久久久久综合网天天 | 亚洲精品免费看 | 国产成人亚洲在线观看 | 国产女v资源在线观看 | 香蕉久久久久 | 国产成人精品在线观看 | 国产99久久久国产精品免费看 | 免费美女av | 五月天天在线 | 免费看成人片 | 日韩在线三级 | 午夜精品久久久久久久99无限制 | 欧美一级在线看 | 96看片 | 欧女人精69xxxxxx | www日日夜夜| 成人91在线| 91视频久久久久 | 国产不卡在线观看视频 | 一区二区三区四区五区六区 | www久草| 97超碰精品 | 九月婷婷人人澡人人添人人爽 | 国产一区二区不卡视频 | 中文字幕欧美日韩va免费视频 | 中文字幕乱偷在线 | 日韩av成人在线观看 | 91九色成人 | 成年人免费在线 | 日韩精品久久久免费观看夜色 | 中文字幕一区二区三区久久 | 国产精品女同一区二区三区久久夜 | 欧美在线视频一区二区三区 | 色婷婷激情网 | www.99热精品 | 激情在线网址 | 久草在线免费看视频 | 啪啪免费观看网站 | 99久久精品国产亚洲 | 国产夫妻性生活自拍 | 天天干天天操av | 国产一级黄色av | 国产69久久久| 国产一级片久久 | 色人久久 | 伊人首页| 久久精品精品电影网 | 伊人一级 | 久久精品国产一区 | 欧美精品一区二区在线观看 | 国产在线国偷精品产拍 | 亚洲国产影院av久久久久 | 久久久精华网 | 三日本三级少妇三级99 | 最新av网站在线观看 | 涩涩在线 | 欧美日韩亚洲第一页 | 日韩一级网站 | 国产伦精品一区二区三区四区视频 | 9999在线观看 | 日韩欧美国产免费播放 | 国产成人精品久久久久 | 99r在线精品 | 色香网| 精品欧美小视频在线观看 | 天天操夜夜曰 | 久久成人国产精品一区二区 | 午夜精品麻豆 | 日韩国产欧美视频 | 国产精品一区二区在线观看 | 国产精品久久片 | 亚洲一区不卡视频 | 天天草天天摸 | 欧美一性一交一乱 | 99精品在线免费观看 | 天天天天干| 欧美在线视频免费 | 久久在现视频 | 久久久国产精华液 | 国产精品理论视频 | 成人国产精品一区 | 91污污视频在线观看 | 国产精品免费观看国产网曝瓜 | 免费看一级黄色 | 日韩伦理片一区二区三区 | 成年人免费av网站 | 一区二区三区电影大全 | 国产精品一区免费看8c0m | 黄色录像av | 国产精品一区二区在线观看免费 | 婷色| 51精品国自产在线 | 日韩美一区二区三区 | 在线观看视频精品 | 国产精品久久久久国产精品日日 | 国内精自线一二区永久 | 欧美性生活小视频 | 久久试看 | 久久av在线播放 | 久久福利剧场 | 成人小视频在线观看免费 | 婷婷99 | 不卡在线一区 | 免费看一及片 | 91麻豆免费版 | 午夜精品一区二区三区在线观看 | 亚洲精品456在线播放乱码 | 亚洲永久精品视频 | 久久久精品一区二区三区 | 天天天干天天射天天天操 | 激情伊人五月天 | 天天干天天射天天插 | 少妇超碰在线 | 在线成人免费 | 久久嗨 | 日本成人中文字幕在线观看 | 狠狠色噜噜狠狠 | 亚洲精品国产视频 | 在线免费观看视频你懂的 | 国产在线精品国自产拍影院 | 国产69久久久欧美一级 | 91你懂的| 日本美女xx | 国产小视频网站 | 最新av免费在线观看 | 成人欧美一区二区三区黑人麻豆 | 中文字幕资源在线观看 | 欧美日韩不卡在线观看 | 亚洲欧美日韩精品一区二区 | 五月婷婷欧美 | 爱射综合 | 激情五月婷婷综合 | 亚洲综合国产精品 | 免费视频三区 | 久久久2o19精品 | 五月天狠狠操 | 天天拍天天操 | 欧美成人tv | 久久夜色精品国产欧美乱极品 | 亚洲午夜久久久影院 | 国产第一页福利影院 | 91精品国产自产在线观看 | 天天操夜夜爱 | 日韩精品一区二区三区在线播放 | 日韩在线观看影院 | 午夜精品麻豆 | 国产麻豆视频免费观看 | 日韩中文字幕在线看 | 日韩资源在线观看 | 又大又硬又黄又爽视频在线观看 | 91.麻豆视频 | 99精品免费久久久久久久久日本 | 特级西西444www高清大视频 | 日韩区欠美精品av视频 | 欧美日韩不卡在线视频 | 免费av福利| 久久综合射 | 天天伊人网 | 丁香六月婷婷综合 | 天天插天天干天天操 | 日本99热 | 亚洲欧美日本国产 | 日产中文字幕 | 天天操天天操天天操天天操天天操天天操 | 麻豆激情电影 | 视频在线99| 国产在线精品一区二区三区 | 高清免费av在线 | www色com| 日韩av电影免费观看 | 精品uu| 夜夜躁狠狠躁日日躁视频黑人 | 狠狠躁日日躁夜夜躁av | 一性一交视频 | 91视频com| 亚洲精品国产第一综合99久久 | 在线观看亚洲精品 | 国产视频亚洲精品 | 国产精品久久久久久模特 | 丁香激情五月婷婷 | 久久高清免费视频 | 99热在线看| 欧美人zozo | 婷婷免费在线视频 | 日日噜噜噜噜夜夜爽亚洲精品 | 国产性天天综合网 | 久草线| 久久av免费 | 国产精品久久久久久久久久久久冷 | 日韩www在线 | 99精品久久久久久久 | 在线免费观看成人 | 狠狠网亚洲精品 | 9999免费视频 | 色一级片 | 深爱婷婷网 | 亚洲成色| 日韩精品一区二区不卡 | 国产美女精彩久久 | 日本福利视频在线 | 四虎永久免费在线观看 | 97免费在线观看 | 午夜视频免费在线观看 | 啪啪小视频网站 | 探花国产在线 | 久久精品人 | 久久色在线观看 | 亚洲精品www久久久久久 | 中文永久字幕 | 日韩电影中文,亚洲精品乱码 | 精品视频久久 | 最近最新mv字幕免费观看 | 国产精品第二页 | 久久国产美女视频 | 色资源网在线观看 | 亚洲午夜av久久乱码 | 色av资源网 | 久久国产视频网站 | 成人在线观看日韩 | 亚洲国产中文字幕在线观看 | 国产成人久久精品一区二区三区 | 亚洲精品一区二区在线观看 | 日韩爱爱片 | 免费看一级特黄a大片 | 亚洲激情六月 | 午夜黄色大片 | 91精品区 | 亚洲视屏 | 91精品日韩| 亚洲精品视频中文字幕 | 亚洲综合网 | 日韩理论在线 | a在线播放| 亚洲国产中文字幕在线观看 | 韩国精品在线 | 色吊丝在线永久观看最新版本 | 精品一区免费 | 中文字幕在线观看网址 | 久久久久久久久久久电影 | 免费看av片网站 | 亚洲天天草 | 色悠悠久久综合 | 国产日韩欧美在线一区 | 国产精品高潮呻吟久久av无 | 国产不卡在线观看 | 黄色一区二区在线观看 | 欧美在线91| 欧美成人影音 | 国产精品国产三级国产专区53 | 特级西西444www高清大视频 | 黄色电影小说 | av成人免费在线看 | 嫩草伊人久久精品少妇av | 一 级 黄 色 片免费看的 | 97成人啪啪网 | 91黄色免费网站 | 欧美日韩一二三四区 | 成人黄大片视频在线观看 | 亚洲欧美日韩不卡 | 亚洲成人黄色在线观看 | 成人av免费在线观看 | 日韩一区二区三区高清在线观看 | 国产成人精品在线播放 | 国产黄在线看 | 婷婷看片| 一区二区激情视频 | 婷色在线| 在线观看黄网 | 免费电影一区二区三区 | 日本精a在线观看 | 丁香花在线观看视频在线 | 国产成人免费网站 | 亚洲成av人电影 | 久久99国产精品久久 | 麻豆免费在线视频 | 国产精品美女久久久久久久久久久 | 黄色a一级片 | 五月激情av| 午夜黄网 | 美女免费视频观看网站 | av网址最新 | 午夜视频不卡 | 超碰97人 | 国内精品久久久久国产 | 亚洲精品久久久蜜桃直播 | 午夜视频日本 | 亚洲蜜桃av | 亚洲欧洲精品一区二区 | 欧美三级免费 | 97人人视频| 99在线热播| 精品免费视频 | 久久综合久久88 | 在线综合 亚洲 欧美在线视频 | 日本中文字幕网 | 久久免费视频网站 | 夜夜夜夜猛噜噜噜噜噜初音未来 | 婷婷中文字幕在线观看 | 偷拍久久久 | 久久精品美女视频网站 | 一区二三国产 | 日韩在线视频观看免费 | 蜜桃av观看 | 中文字幕超清在线免费 | 麻豆视传媒官网免费观看 | 精品国产免费观看 | 国产一性一爱一乱一交 | 97人人精品 | 欧美另类z0zx | 国产原创av片| 久久黄色小说视频 | 亚洲精品456在线播放 | 欧美一级黄色网 | 亚洲在线免费视频 | 成人综合婷婷国产精品久久免费 | 日本久久免费电影 | 深爱激情婷婷网 | 日韩在线视频精品 | 日日干美女 | 伊人天天操| 亚洲国产精品久久久 | 狠狠色伊人亚洲综合网站野外 | 最近中文字幕国语免费高清6 | 91精品国自产在线观看 | 久久首页 | 91成年人网站 | 国内精品视频免费 | 香蕉视频在线播放 | 久久精品1区2区 | 丁香婷婷射 | www91在线 | 日本成人a | 波多野结衣在线观看一区二区三区 | 欧美日韩视频一区二区三区 | 久久免费试看 | 婷婷久久婷婷 | av中文字幕在线免费观看 | 99热精品国产一区二区在线观看 | av高清在线 | 中文在线字幕免费观 | 香蕉在线观看 | 日韩视频免费在线观看 | 成年人视频在线免费播放 | 波多野结衣日韩 | 伊人亚洲综合 | 欧美福利精品 | 国产原创av在线 | 中文字幕视频在线播放 | 在线观看www. | 在线免费观看亚洲视频 | 国内丰满少妇猛烈精品播 | 亚洲最大av网站 | 久久久免费观看视频 | 欧美俄罗斯性视频 | 麻豆久久精品 | 久久国产系列 | 久久极品 | 九九免费在线观看视频 | 成人性生交大片免费看中文网站 | 美女视频免费精品 | 人人澡视频 | 久久99久久99精品中文字幕 | 久久视| 99精品国产免费久久久久久下载 | 欧美人人爱 | 夜夜躁日日躁狠狠久久av | 激情开心| 精品美女国产在线 | 久久综合色一综合色88 | av中文字幕不卡 | 精品国产精品久久 | 亚洲伦理一区二区 | 国产高清视频在线免费观看 | 日韩中文字幕第一页 | 99爱在线 | 日韩精品一区二区在线观看 | 久久有精品 | 日韩免费一区二区 | 六月丁香社区 | 国产精品亚洲片夜色在线 | 亚洲视频综合在线 | 国产二区免费视频 | 中文字幕在线视频第一页 | 色综合天天狠天天透天天伊人 | 久久免费电影 | 蜜桃视频日韩 | 久久免费视频这里只有精品 | 国产高清日韩 | 能在线观看的日韩av | 天天色天天 | 国产精品欧美一区二区三区不卡 | av日韩在线网站 | 91欧美视频网站 | 久久综合狠狠综合久久激情 | 国产韩国日本高清视频 | 国产91精品看黄网站在线观看动漫 | 精品视频免费看 | av在线免费观看黄 | 在线观看免费国产小视频 | 亚洲精品在线播放视频 | 少妇啪啪av入口 | 国产精品不卡在线观看 | 精品国产一区二区三区在线观看 | 日韩在线一二三区 | 日本三级人妇 | 又色又爽又黄高潮的免费视频 | 97色在线视频 | 国产欧美精品xxxx另类 | 亚洲精品h | 99久久99热这里只有精品 | 人人狠| 最近2019中文免费高清视频观看www99 | 色九九影院 | 久久一区精品 | 中午字幕在线 | 国产一区免费在线观看 | 在线观看视频在线观看 | 国产视频一区在线 | 久久视频6 | 国产成人精品女人久久久 | 天堂av在线网站 | 在线之家免费在线观看电影 | 亚洲国产中文字幕在线观看 | 中文字幕乱码电影 | 国产精品 国内视频 | 中文字幕免费成人 | 激情图片qvod | 人人草在线视频 | 手机在线看永久av片免费 | 97在线观视频免费观看 | 丝袜美腿在线播放 | 中文字幕国产一区 | 91秒拍国产福利一区 | 久日精品| 日韩三级久久 | 日韩动漫免费观看高清完整版在线观看 | 欧美精品一区二区在线播放 | 欧美日韩高清不卡 | 天天射天天干天天操 | 四虎影视国产精品免费久久 | 欧洲黄色片 | 欧美一二区在线 | 欧美少妇的秘密 | 国产麻豆视频免费观看 | 国产中文字幕av | 国产理论免费 | 久久久国产一区二区三区 | 国产特级毛片aaaaaaa高清 | 久久久久久久久久网 | 久久久综合电影 | 精品一区二区影视 | 九九九九九九精品 | 97超碰超碰久久福利超碰 | 国内精品久久久久影院优 | 久久综合久久综合九色 | 黄色大片视频网站 | 97国产精品一区二区 | 99人久久精品视频最新地址 | 伊人天天色 | 99精品在线免费视频 | 九色琪琪久久综合网天天 | 欧美综合色在线图区 | 亚洲精品高清在线观看 | 天天色婷婷 | aaawww| 91亚洲精品久久久蜜桃 | 亚洲视屏在线播放 | 欧美日韩国内在线 | 337p欧美| 亚洲黄色免费电影 | 337p日本大胆噜噜噜噜 | 国产视频一二三 | 国产91免费在线观看 | 九九在线免费视频 | 成年人在线看片 | avcom在线 | 免费涩涩网站 | 婷婷激情影院 | 9999在线观看 | 91麻豆产精品久久久久久 | 成人在线播放免费观看 | 97综合网 | 国产精品一区二区果冻传媒 | 国产黄大片在线观看 | 久久97超碰 | 亚州性色 | 日本中文字幕观看 | 日本午夜在线观看 | 99热在线精品观看 | 日韩激情一二三区 | 九九免费在线观看 | 精品久久久久久亚洲 | 色婷婷中文 | 在线观看中文字幕一区 | 国产青草视频在线观看 | 国产精品日韩高清 | 美女久久久久久久久久 | 日韩高清一 | 免费视频黄 | 亚洲国产婷婷 | 五月婷婷精品 | 国产玖玖视频 | 一色屋精品视频在线观看 | 黄色av大片| 日本一区二区三区免费看 | 日韩一区在线免费观看 | 日韩欧美区 | 一区二区视频在线免费观看 | 视频二区在线视频 | 国产精品女人久久久久久 | 992tv在线 | 在线导航福利 | 国产精品嫩草影视久久久 | 四虎www com | 欧美性性网| 成人国产电影在线观看 | 国产不卡免费av | 久草精品在线观看 | 黄色一级大片免费看 | 亚洲综合在线视频 | 激情电影影院 | 国产精品免费在线视频 | 午夜精品久久久久久99热明星 | 国产自产在线视频 | 国产成人61精品免费看片 | 精品一区av | 久久国产精品免费一区 | 激情五月五月婷婷 | 狠狠狠色丁香婷婷综合久久五月 | 国产精品黑丝在线观看 | 91精品视频免费看 | 美女视频一区二区 | 国产精品亚洲精品 | 欧美夫妻性生活电影 | 五月天激情在线 | 久久av高清 | 国产中文字幕在线观看 | 久久精品美女 | 欧美a级免费视频 | 成人av资源 | 日本中文字幕网址 | 97在线观看视频免费 | 亚洲欧美国产日韩在线观看 | 在线观看中文字幕一区二区 | av先锋影音少妇 | 97在线观看免费视频 | 99视频导航 | 视频在线在亚洲 | 久久er99热精品一区二区 | 在线一区二区三区 | 亚洲精选99 | 久久99日韩 | 免费看的黄色片 | 久久久国产精品视频 | 91精品区| 日韩在线播放视频 | 激情视频网页 | 99精品视频免费观看 | 久久精品国产久精国产 | 伊人狠狠操 | 99免费看片 | 成人在线免费视频 | 黄色不卡av | 日韩精选在线观看 | av免费看网站| 天天狠狠干 | 正在播放亚洲精品 | 国产美女视频免费 | 伊人六月 | 69精品视频在线观看 | 国产成人三级在线观看 | 玖玖在线播放 | av在线官网 | 久久国产日韩 | 久久一精品 | 午夜av激情 | 国产精品久久99综合免费观看尤物 | 91在线中文字幕 | 久久久久久久网 | 国产中文在线视频 | 免费在线观看视频a | 日韩黄色网络 | 深夜免费小视频 | 国产91精品在线播放 | 国产香蕉久久 | 91热爆视频| 在线视频一区观看 | 久久美女免费视频 | 又色又爽又激情的59视频 | 色婷婷国产精品一区在线观看 | 久久免费看a级毛毛片 | 免费看污的网站 | 国产 字幕 制服 中文 在线 | 久久久综合 | wwxxxx日本 | 久久综合色8888 | 久久久精品欧美一区二区免费 | 国产免费观看av | 欧美综合国产 | 亚洲成人av在线播放 | 激情婷婷在线观看 | 91精品专区 | 91九色视频观看 | 97超碰国产精品 | 久久精品国产免费看久久精品 | 久久国产美女视频 | 特级a老妇做爰全过程 | 97视频入口免费观看 | 久久99国产视频 | 午夜精品久久久久久久爽 | 日韩av免费大片 | 99久久精品网 | 成人免费 在线播放 | 国产乱码精品一区二区蜜臀 | 亚洲国产精品va在线看 | 欧洲精品视频一区二区 | 精品主播网红福利资源观看 | 91精品在线免费视频 | 夜夜骑首页 | 亚洲伊人天堂 | 91免费看片黄 | www黄色com| 欧美国产日韩一区 | 波多野结衣一区三区 | 天天插天天爽 | 又黄又爽又湿又无遮挡的在线视频 | 91在线在线观看 | 国产精品激情偷乱一区二区∴ | 2019中文在线观看 | 99视频偷窥在线精品国自产拍 | 国产亚洲激情视频在线 | 成人午夜剧场在线观看 | 狠狠操夜夜操 | 久久久久久网址 | 久久成人高清视频 | 久久夜av| 日b黄色片 | 午夜电影久久久 | 日韩黄色av网站 | 91久久精品一区二区二区 | 久久久久久久久久久影院 | 色综合久久天天 | 国产精品自拍在线 | 五月天六月丁香 | 精品毛片在线 | 亚洲无吗天堂 | 精品国产伦一区二区三区免费 | 香蕉日日| 国产视频综合在线 | 丁香六月婷婷开心婷婷网 | 天天色中文 | 欧美日韩一级在线 | 国产一级二级视频 | 五月天国产精品 | 色wwww| 久久超碰网 | 中文字幕国产在线 | 久久精品人人做人人综合老师 | www.久久色 | 亚洲精品视频中文字幕 | 日韩精品久久中文字幕 | 国产免费久久 | 久久免费成人 | 久久av免费观看 | 久久私人影院 | 国产日韩高清在线 | 亚洲午夜久久久久久久久久久 | 欧美精品一区在线发布 | 国产精品手机看片 | 精品久久久久久久久久岛国gif | 色综合咪咪久久网 | 99久久久国产精品免费观看 | 色射色 | 美国人与动物xxxx | 中文字幕在线观看第一页 | 欧美少妇xxxxxx | 午夜91视频 | 在线视频成人 | 在线久热 | 奇人奇案qvod | 国产手机在线精品 | 天天爱天天 | 久久成人综合 | 国产精品视频永久免费播放 | 中文在线中文a | 在线观看免费一级片 | 99精品在线观看视频 | 亚洲全部视频 | 婷婷干五月 | 亚洲精品xx | 三级a毛片 | 久久成人高清视频 | 黄色a视频 | 久久99亚洲网美利坚合众国 | 国产视频精品免费播放 | 久久精品中文字幕一区二区三区 | 91丨九色丨蝌蚪丨老版 | 国产精品国产三级国产aⅴ无密码 | av免费观看网址 | 精品影院一区二区久久久 | 日韩亚洲国产中文字幕 | 久章草在线观看 | av中文字幕在线看 | 99re亚洲国产精品 | 91精品在线播放 | 最近中文字幕完整视频高清1 | 最近免费中文字幕 | 成年美女黄网站色大片免费看 | 午夜123| 成人黄色电影在线观看 | 亚洲高清视频一区二区三区 | 黄色www | 色婷婷狠狠 | 久久久九九 | 亚洲资源在线观看 | 国产成人一区二区三区在线观看 | 五月开心婷婷网 | 成人小视频在线观看免费 | 国产精品爽爽爽 | h网站免费在线观看 | 国产偷v国产偷∨精品视频 在线草 | 国产剧情一区二区在线观看 | 三级大片网站 | 国产不卡在线观看视频 | 成人av中文字幕在线观看 | 一区二区三区日韩在线观看 | 亚洲视频精品 | 欧美亚洲另类在线视频 | 久草免费看 | 日韩超碰在线 | 日韩精品综合在线 | 激情网站免费观看 | 在线观看黄污 | 91免费看片黄| 91麻豆免费版 | 日韩成片 | 中文字幕在线视频一区二区三区 | 欧美狠狠操 | 久草在线资源网 | 伊人狠狠色丁香婷婷综合 | 天堂激情网 | 国产色综合| 天天天天天天天天操 | 国产中文字幕91 | 久久精品精品电影网 | 97人人爽| 国产超碰在线观看 | 在线观看亚洲国产 | 808电影免费观看三年 | 国产成人精品亚洲精品 | 黄色av电影在线观看 | 国产福利网站 | 中文字幕免费不卡视频 | 欧美国产不卡 | 亚洲性视频 | 91高清免费看| 成人一区不卡 | 天天干天天草天天爽 | 亚洲影视九九影院在线观看 | 一区二区精品在线视频 | 国产尤物视频在线 | 综合网五月天 | 一区二区精品 | 亚洲无吗av | 欧美性生爱 | 欧美性生活小视频 | 久久伊99综合婷婷久久伊 | 91九色在线视频观看 | 视频在线观看一区 | 九九九热精品免费视频观看网站 | 91pony九色丨交换 | 973理论片235影院9 | www.夜夜爱| 天天艹天天干天天 | 国产亚洲人成网站在线观看 | 午夜手机电影 | 天天操夜夜逼 | 日韩精品在线观看视频 | 久久久久亚洲精品国产 | 久久久国产精品网站 | 超碰在线日本 | 又黄又网站 | av中文字幕免费在线观看 | 一区二区免费不卡在线 | 色婷婷午夜 | 国产高清久久久 | 久草在线免费色站 | 黄a网站 | 91精品国自产在线 | 国产黄色观看 | 福利av影院| 美女视频一区 | 国产成人久久av免费高清密臂 | 国产无遮挡又黄又爽馒头漫画 | 欧美成人h版在线观看 | 日韩美在线观看 | 中文字幕电影一区 | 69中文字幕 | 国产精品成人一区二区三区吃奶 | 亚洲精品中文字幕在线观看 | 日韩在线字幕 | 国产亚洲精品xxoo | 懂色av一区二区三区蜜臀 | 日本一区二区高清不卡 | 精品久久久久久久久久 | 成人欧美在线 | 日本aaaa级毛片在线看 |