一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|JavaScript|易語言|

服務器之家 - 編程語言 - JAVA教程 - SpringBoot四大神器之Actuator的使用小結

SpringBoot四大神器之Actuator的使用小結

2021-02-06 11:40xixicat JAVA教程

這篇文章主要介紹了SpringBoot四大神器之Actuator的使用小結,詳細的介紹了Actuator的使用和端點的使用,有興趣的可以了解一下

Spring Boot有四大神器,分別是auto-configuration、starters、cli、actuator,本文主要講actuator。actuator是spring boot提供的對應用系統的自省和監控的集成功能,可以對應用系統進行配置查看、相關功能統計等。

spring-boot-starter-actuator模塊的實現對于實施微服務的中小團隊來說,可以有效地減少監控系統在采集應用指標時的開發量。當然,它也并不是萬能的,有時候我們也需要對其做一些簡單的擴展來幫助我們實現自身系統個性化的監控需求。下面,在本文中,我們將詳解的介紹一些關于spring-boot-starter-actuator模塊的內容,包括它的原生提供的端點以及一些常用的擴展和配置方式。

使用actuator

添加依賴

?
1
2
3
4
<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>

主要暴露的功能

 

HTTP方法 路徑 描述 鑒權
GET /autoconfig 查看自動配置的使用情況 true
GET /configprops 查看配置屬性,包括默認配置 true
GET /beans 查看bean及其關系列表 true
GET /dump 打印線程棧 true
GET /env 查看所有環境變量 true
GET /env/{name} 查看具體變量值 true
GET /health 查看應用健康指標 false
GET /info 查看應用信息 false
GET /mappings 查看所有url映射 true
GET /metrics 查看應用基本指標 true
GET /metrics/{name} 查看具體指標 true
POST /shutdown 關閉應用 true
GET /trace 查看基本追蹤信息 true

 

/autoconfig

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
{
  "positiveMatches": {
    "AuditAutoConfiguration.AuditEventRepositoryConfiguration": [
      {
        "condition": "OnBeanCondition",
        "message": "@ConditionalOnMissingBean (types: org.springframework.boot.actuate.audit.AuditEventRepository; SearchStrategy: all) found no beans"
      }
    ]
  },
  "negativeMatches": {
    "CacheStatisticsAutoConfiguration": [
      {
        "condition": "OnBeanCondition",
        "message": "@ConditionalOnBean (types: org.springframework.cache.CacheManager; SearchStrategy: all) found no beans"
      }
    ]
  }
}

/configprops

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
{
  "management.health.status.CONFIGURATION_PROPERTIES": {
    "prefix": "management.health.status",
    "properties": {
      "order": null
    }
  },
  "multipart.CONFIGURATION_PROPERTIES": {
    "prefix": "multipart",
    "properties": {
      "enabled": false,
      "maxRequestSize": "10Mb",
      "location": null,
      "fileSizeThreshold": "0",
      "maxFileSize": "1Mb"
    }
  },
  "environmentEndpoint": {
    "prefix": "endpoints.env",
    "properties": {
      "id": "env",
      "enabled": true,
      "sensitive": true
    }
  }
}

/beans

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
[
  {
    "context": "application:8080",
    "parent": null,
    "beans": [
      {
        "bean": "appMain",
        "scope": "singleton",
        "type": "com.xixicat.AppMain$$EnhancerBySpringCGLIB$$29382b14",
        "resource": "null",
        "dependencies": [ ]
      },
      {
        "bean": "videoInfoMapper",
        "scope": "singleton",
        "type": "com.xixicat.dao.VideoInfoMapper",
        "resource": "file [/Users/xixicat/workspace/video-uber/target/classes/com/xixicat/dao/VideoInfoMapper.class]",
        "dependencies": [
          "sqlSessionFactory"
        ]
      }
    ]
  }
]

/dump

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
[
  {
    "threadName": "Signal Dispatcher",
    "threadId": 4,
    "blockedTime": -1,
    "blockedCount": 0,
    "waitedTime": -1,
    "waitedCount": 0,
    "lockName": null,
    "lockOwnerId": -1,
    "lockOwnerName": null,
    "inNative": false,
    "suspended": false,
    "threadState": "RUNNABLE",
    "stackTrace": [ ],
    "lockedMonitors": [ ],
    "lockedSynchronizers": [ ],
    "lockInfo": null
  },
  {
    "threadName": "Reference Handler",
    "threadId": 2,
    "blockedTime": -1,
    "blockedCount": 217,
    "waitedTime": -1,
    "waitedCount": 9,
    "lockName": "java.lang.ref.Reference$Lock@45de945",
    "lockOwnerId": -1,
    "lockOwnerName": null,
    "inNative": false,
    "suspended": false,
    "threadState": "WAITING",
    "stackTrace": [
      {
        "methodName": "wait",
        "fileName": "Object.java",
        "lineNumber": -2,
        "className": "java.lang.Object",
        "nativeMethod": true
      },
      {
        "methodName": "wait",
        "fileName": "Object.java",
        "lineNumber": 503,
        "className": "java.lang.Object",
        "nativeMethod": false
      },
      {
        "methodName": "run",
        "fileName": "Reference.java",
        "lineNumber": 133,
        "className": "java.lang.ref.Reference$ReferenceHandler",
        "nativeMethod": false
      }
    ],
    "lockedMonitors": [ ],
    "lockedSynchronizers": [ ],
    "lockInfo": {
      "className": "java.lang.ref.Reference$Lock",
      "identityHashCode": 73263429
    }
  }
]

/env

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
{
 profiles: [],
 server.ports: {
  local.server.port: 8080
 },
 servletContextInitParams: {},
 systemProperties: {
  java.runtime.name: "Java(TM) SE Runtime Environment",
   sun.boot.library.path: "/Library/Java/JavaVirtualMachines/jdk1.7.0_79.jdk/Contents/Home/jre/lib",
   java.vm.version: "24.79-b02",
   gopherProxySet: "false",
   maven.multiModuleProjectDirectory: "/Users/xixicat/workspace/video-uber",
   java.vm.vendor: "Oracle Corporation",
   java.vendor.url: "http://java.oracle.com/",
   guice.disable.misplaced.annotation.check: "true",
   path.separator: ":",
   java.vm.name: "Java HotSpot(TM) 64-Bit Server VM",
   file.encoding.pkg: "sun.io",
   user.country: "CN",
   sun.java.launcher: "SUN_STANDARD",
   sun.os.patch.level: "unknown",
   PID: "763",
   java.vm.specification.name: "Java Virtual Machine Specification",
   user.dir: "/Users/xixicat/workspace/video-uber",
   java.runtime.version: "1.7.0_79-b15",
   java.awt.graphicsenv: "sun.awt.CGraphicsEnvironment",
   java.endorsed.dirs: "/Library/Java/JavaVirtualMachines/jdk1.7.0_79.jdk/Contents/Home/jre/lib/endorsed",
   os.arch: "x86_64",
   java.io.tmpdir: "/var/folders/tl/xkf4nr61033gd6lk5d3llz080000gn/T/",
   line.separator: " ",
   java.vm.specification.vendor: "Oracle Corporation",
   os.name: "Mac OS X",
   classworlds.conf: "/Users/xixicat/devtool/maven-3.3.3/bin/m2.conf",
   sun.jnu.encoding: "UTF-8",
   spring.beaninfo.ignore: "true",
   java.library.path: "/Users/xixicat/Library/Java/Extensions:/Library/Java/Extensions:/Network/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java:.",
   java.specification.name: "Java Platform API Specification",
   java.class.version: "51.0",
   sun.management.compiler: "HotSpot 64-Bit Tiered Compilers",
   os.version: "10.10.5",
   user.home: "/Users/xixicat",
   user.timezone: "Asia/Shanghai",
   java.awt.printerjob: "sun.lwawt.macosx.CPrinterJob",
   file.encoding: "UTF-8",
   java.specification.version: "1.7",
   java.class.path: "/Users/xixicat/devtool/maven-3.3.3/boot/plexus-classworlds-2.5.2.jar",
   user.name: "xixicat",
   java.vm.specification.version: "1.7",
   sun.java.command: "org.codehaus.plexus.classworlds.launcher.Launcher spring-boot:run",
   java.home: "/Library/Java/JavaVirtualMachines/jdk1.7.0_79.jdk/Contents/Home/jre",
   sun.arch.data.model: "64",
   user.language: "zh",
   java.specification.vendor: "Oracle Corporation",
   awt.toolkit: "sun.lwawt.macosx.LWCToolkit",
   java.vm.info: "mixed mode",
   java.version: "1.7.0_79",
   java.ext.dirs: "/Users/xixicat/Library/Java/Extensions:/Library/Java/JavaVirtualMachines/jdk1.7.0_79.jdk/Contents/Home/jre/lib/ext:/Library/Java/Extensions:/Network/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java",
   sun.boot.class.path: "/Library/Java/JavaVirtualMachines/jdk1.7.0_79.jdk/Contents/Home/jre/lib/resources.jar:/Library/Java/JavaVirtualMachines/jdk1.7.0_79.jdk/Contents/Home/jre/lib/rt.jar:/Library/Java/JavaVirtualMachines/jdk1.7.0_79.jdk/Contents/Home/jre/lib/sunrsasign.jar:/Library/Java/JavaVirtualMachines/jdk1.7.0_79.jdk/Contents/Home/jre/lib/jsse.jar:/Library/Java/JavaVirtualMachines/jdk1.7.0_79.jdk/Contents/Home/jre/lib/jce.jar:/Library/Java/JavaVirtualMachines/jdk1.7.0_79.jdk/Contents/Home/jre/lib/charsets.jar:/Library/Java/JavaVirtualMachines/jdk1.7.0_79.jdk/Contents/Home/jre/lib/jfr.jar:/Library/Java/JavaVirtualMachines/jdk1.7.0_79.jdk/Contents/Home/jre/classes",
   java.awt.headless: "true",
   java.vendor: "Oracle Corporation",
   maven.home: "/Users/xixicat/devtool/maven-3.3.3",
   file.separator: "/",
   LOG_EXCEPTION_CONVERSION_WORD: "%wEx",
   java.vendor.url.bug: "http://bugreport.sun.com/bugreport/",
   sun.io.unicode.encoding: "UnicodeBig",
   sun.cpu.endian: "little",
   sun.cpu.isalist: ""
 },
 systemEnvironment: {
  TERM: "xterm-256color",
  ZSH: "/Users/xixicat/.oh-my-zsh",
  GVM_BROKER_SERVICE: "http://release.gvm.io",
  GRIFFON_HOME: "/Users/xixicat/.gvm/griffon/current",
  JAVA_MAIN_CLASS_763: "org.codehaus.plexus.classworlds.launcher.Launcher",
  JAVA_HOME: "/Library/Java/JavaVirtualMachines/jdk1.7.0_79.jdk/Contents/Home",
  SHLVL: "1",
  MAVEN_CMD_LINE_ARGS: " spring-boot:run",
  __CF_USER_TEXT_ENCODING: "0x1F5:0x19:0x34",
  GROOVY_HOME: "/Users/xixicat/.gvm/groovy/current",
  XPC_FLAGS: "0x0",
  GVM_INIT: "true",
  JBAKE_HOME: "/Users/xixicat/.gvm/jbake/current",
  PWD: "/Users/xixicat/workspace/video-uber",
  GVM_DIR: "/Users/xixicat/.gvm",
  GVM_VERSION: "2.4.3",
  MAVEN_PROJECTBASEDIR: "/Users/xixicat/workspace/video-uber",
  LOGNAME: "xixicat",
  SSH_AUTH_SOCK: "/private/tmp/com.apple.launchd.93xr1duECQ/Listeners",
  SPRINGBOOT_HOME: "/Users/xixicat/.gvm/springboot/current",
  GAIDEN_HOME: "/Users/xixicat/.gvm/gaiden/current",
  LAZYBONES_HOME: "/Users/xixicat/.gvm/lazybones/current",
  OLDPWD: "/Users/xixicat/workspace/video-uber",
  SHELL: "/bin/zsh",
  JBOSSFORGE_HOME: "/Users/xixicat/.gvm/jbossforge/current",
  LC_CTYPE: "zh_CN.UTF-8",
  TMPDIR: "/var/folders/tl/xkf4nr61033gd6lk5d3llz080000gn/T/",
  GVM_SERVICE: "http://api.gvmtool.net",
  GVM_PLATFORM: "Darwin",
  CLASSPATH: ".:/Users/xixicat/.m2/repository/co/paralleluniverse/quasar-core/0.7.2/quasar-core-0.7.2.jar",
  GLIDE_HOME: "/Users/xixicat/.gvm/glide/current",
  PATH: "/Users/xixicat/.gvm/vertx/current/bin:/Users/xixicat/.gvm/springboot/current/bin:/Users/xixicat/.gvm/lazybones/current/bin:/Users/xixicat/.gvm/jbossforge/current/bin:/Users/xixicat/.gvm/jbake/current/bin:/Users/xixicat/.gvm/groovyserv/current/bin:/Users/xixicat/.gvm/groovy/current/bin:/Users/xixicat/.gvm/griffon/current/bin:/Users/xixicat/.gvm/grails/current/bin:/Users/xixicat/.gvm/gradle/current/bin:/Users/xixicat/.gvm/glide/current/bin:/Users/xixicat/.gvm/gaiden/current/bin:/Users/xixicat/.gvm/crash/current/bin:/Users/xixicat/.gvm/asciidoctorj/current/bin:/Users/xixicat/bin:/usr/local/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/git/bin:/Users/xixicat/devtool/maven-3.3.3/bin:/Users/xixicat/devtool/gradle-2.6/bin:/Users/xixicat/devtool/android-sdk/platform-tools",
  GRADLE_HOME: "/Users/xixicat/.gvm/gradle/current",
  GROOVYSERV_HOME: "/Users/xixicat/.gvm/groovyserv/current",
  GRAILS_HOME: "/Users/xixicat/.gvm/grails/current",
  USER: "xixicat",
  LESS: "-R",
  PAGER: "less",
  HOME: "/Users/xixicat",
  CRASH_HOME: "/Users/xixicat/.gvm/crash/current",
  XPC_SERVICE_NAME: "0",
  VERTX_HOME: "/Users/xixicat/.gvm/vertx/current",
  GVM_BROADCAST_SERVICE: "http://cast.gvm.io",
  Apple_PubSub_Socket_Render: "/private/tmp/com.apple.launchd.y6fNwP8Sk6/Render",
  LSCOLORS: "Gxfxcxdxbxegedabagacad",
  ASCIIDOCTORJ_HOME: "/Users/xixicat/.gvm/asciidoctorj/current"
 },
 applicationConfig: [classpath: /application.properties]: {
  pool.acquireIncrement: "1",
  pool.minPoolSize: "5",
  pool.initialPoolSize: "1",
  database.username: "root",
  pool.maxIdleTime: "60",
  database.url: "jdbc:mysql://127.0.0.1:3307/video_uber?autoReconnect=true&useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull",
  spring.jackson.dateFormat: "yyyy-MM-dd'T'HH:mm:ss",
  database.slave.username: "root",
  spring.jackson.serialization.write - dates - as - timestamps: "false",
  pool.idleTimeout: "30000",
  database.slave.url: "jdbc:mysql://127.0.0.1:3307/demo?autoReconnect=true&useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull",
  server.port: "8080",
  database.slave.password: "******",
  database.password: "******",
  database.driverClassName: "com.mysql.jdbc.Driver",
  pool.maxPoolSize: "50",
  database.dataSourceClassName: "com.mysql.jdbc.jdbc2.optional.MysqlDataSource"
 }
}

/health

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
{
 status: "UP",
 diskSpace: {
  status: "UP",
  total: 249779191808,
  free: 193741590528,
  threshold: 10485760
 },
 db: {
  status: "UP",
  database: "MySQL",
  hello: 1
 }
}

/info

需要自己在application.properties里頭添加信息,比如

?
1
2
3
4
info:
 contact:
  email: [email protected]
  phone: 0755-82890987

然后請求就可以出來了

?
1
2
3
4
5
6
{
 "contact": {
   "phone": "0755-82890987",
   "email": "[email protected]"
 }
}

/mappings

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
{
 {
  [/metrics || /metrics.json], methods = [GET], produces = [application / json]
 }: {
  bean: "endpointHandlerMapping",
  method: "public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.EndpointMvcAdapter.invoke()"
 }, {
  [/beans || /beans.json], methods = [GET], produces = [application / json]
 }: {
  bean: "endpointHandlerMapping",
  method: "public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.EndpointMvcAdapter.invoke()"
 }, {
  [/health || /health.json], produces = [application / json]
 }: {
  bean: "endpointHandlerMapping",
  method: "public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.HealthMvcEndpoint.invoke(java.security.Principal)"
 }, {
  [/info || /info.json], methods = [GET], produces = [application / json]
 }: {
  bean: "endpointHandlerMapping",
  method: "public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.EndpointMvcAdapter.invoke()"
 }, {
  [/trace || /trace.json], methods = [GET], produces = [application / json]
 }: {
  bean: "endpointHandlerMapping",
  method: "public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.EndpointMvcAdapter.invoke()"
 }, {
  [/autoconfig || /autoconfig.json], methods = [GET], produces = [application / json]
 }: {
  bean: "endpointHandlerMapping",
  method: "public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.EndpointMvcAdapter.invoke()"
 }
}

/metrics

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
{
mem: 499404,
mem.free: 257591,
processors: 8,
instance.uptime: 4284997,
uptime: 4294909,
systemload.average: 1.84521484375,
heap.committed: 437248,
heap.init: 262144,
heap.used: 179656,
heap: 3728384,
nonheap.committed: 62848,
nonheap.init: 24000,
nonheap.used: 62156,
nonheap: 133120,
threads.peak: 18,
threads.daemon: 6,
threads.totalStarted: 176,
threads: 16,
classes: 10294,
classes.loaded: 10294,
classes.unloaded: 0,
gc.ps_scavenge.count: 11,
gc.ps_scavenge.time: 405,
gc.ps_marksweep.count: 0,
gc.ps_marksweep.time: 0,
datasource.primary.active: 0,
datasource.primary.usage: 0,
counter.status.200.autoconfig: 1,
counter.status.200.beans: 1,
counter.status.200.configprops: 1,
counter.status.200.dump: 1,
counter.status.200.env: 1,
counter.status.200.health: 1,
counter.status.200.info: 1,
counter.status.200.mappings: 1,
gauge.response.autoconfig: 81,
gauge.response.beans: 15,
gauge.response.configprops: 105,
gauge.response.dump: 76,
gauge.response.env: 4,
gauge.response.health: 43,
gauge.response.info: 1,
gauge.response.mappings: 4
}

/shutdown

要真正生效,得配置文件開啟

?
1
endpoints.shutdown.enabled: true

/trace

記錄最近100個請求的信息

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
[{
 "timestamp": 1452955704922,
 "info": {
  "method": "GET",
  "path": "/metrics",
  "headers": {
   "request": {
    "Accept - Encoding": "gzip, deflate, sdch",
     "Upgrade - Insecure - Requests": "1",
     "Accept - Language": "zh-CN,zh;q=0.8,en;q=0.6",
     "User - Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.111 Safari/537.36",
     "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8",
     "Connection": "keep-alive",
     "Host": "localhost:8080"
   },
   "response": {
    "Content - Type": "application/json; charset=UTF-8",
     "X - Application - Context": "application:8080",
     "Date": "Sat, 16 Jan 2016 14:48:24 GMT",
     "status": "200"
   }
  }
 }
}, {
 "timestamp": 1452951489549,
 "info": {
  "method": "GET",
  "path": "/autoconfig",
  "headers": {
   "request": {
    "Accept - Encoding": "gzip, deflate, sdch",
     "Upgrade - Insecure - Requests": "1",
     "Accept - Language": "zh-CN,zh;q=0.8,en;q=0.6",
     "User - Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.111 Safari/537.36",
     "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8",
     "Connection": "keep-alive",
     "Host": "localhost:8080"
   },
   "response": {
    "Content - Type": "application/json; charset=UTF-8",
     "X - Application - Context": "application:8080",
     "Date": "Sat, 16 Jan 2016 13:38:09 GMT",
     "status": "200"
   }
  }
 }
}]

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

原文鏈接:https://segmentfault.com/a/1190000004318360

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产99视频精品免费视频免里 | 碰91精品国产91久久婷婷 | aaaa大片 | 日本黄色一区 | 日本韩国推理片免费观看网站 | 日韩精品在线一区二区 | 咪咪爱在线视频 | 恩不要好大好硬好爽3p | 福利国产精品 | 亚洲AV无码一区二区三区乱子伦 | www.国产自拍 | 国产欧美视频一区二区三区 | 成人精品一区二区三区中文字幕 | 五月天婷婷亚洲 | 九九99热久久999精品 | 免费抽搐一进一出印度 | 国产精品久久久久影视不卡 | kayden·kross hd在线 | 免费午夜影片在线观看影院 | 无人区1免费完整观看 | 向日葵视频app下载18岁以下勿看 | 男人插曲女人身体 | 98pao强力打造高清免费 | 91精品国产色综合久久 | 操双性人| 国产亚洲小视频 | 欧美人曾交| 亚洲成色爱我久久 | 国产男人搡女人免费视频 | 99精品久久精品一区二区小说 | 亚洲成在人线久久综合 | 欧美同志网址 | julianann办公室| 国产精品天天看天天爽 | 波多野结衣一区免费作品 | 无限资源在线观看播放 | 秀婷程仪公欲息肉婷在线观看 | 高清国产欧美一v精品 | 日韩福利一区 | 午夜一区二区免费视频 | 亚洲狠狠婷婷综合久久久久网站 |