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

為Spring Cloud Config插上管理的翅膀

開發 開發工具
最近一致在更新Spring Cloud Config的相關內容,主要也是為這篇埋個伏筆,相信不少調研過Spring Cloud Config的用戶都會吐槽它的管理能力太弱。因此,就有了下面為講推薦的這個開源項目,希望對已經入坑Spring Cloud Config的童鞋們有所幫助!

 最近一致在更新Spring Cloud Config的相關內容,主要也是為這篇埋個伏筆,相信不少調研過Spring Cloud Config的用戶都會吐槽它的管理能力太弱。因此,就有了下面為講推薦的這個開源項目,希望對已經入坑Spring Cloud Config的童鞋們有所幫助!

[[238181]]

簡介

在Spring Cloud的微服務架構方案中雖然提供了Spring Cloud Config來擔任配置中心的角色,但是該項目的功能在配置的管理層面還是非常欠缺的。初期我們可以依賴選取的配置存儲系統(比如:Gitlab、Github)給我們提供的配置管理界面來操作所有的配置信息,但是這樣的管理還是非常粗粒度的,因此這個項目的目的就是解決這個問題,通過此項目,我們將提供一套基于Spring Cloud Config配置中心的可視化管理系統。

在該項目中,我們對于服務治理、配置存儲、可視化操作都做了抽象,只要目的就是為了盡可能的兼容所有Spring Cloud Config的用戶。任何Spring Cloud Config僅需要通過一些簡單的配置,或者遷移工具就能將原來正在使用的配置中心統一的管理起來。

項目地址

Github: https://github.com/dyc87112/spring-cloud-config-admin

Gitee:https://gitee.com/didispace/spring-cloud-config-admin

前端Github: https://github.com/stone-jin/spring-cloud-config-admin-web

前端Gitee: https://gitee.com/stone-jin/spring-cloud-config-admin-web

架構概覽

本項目采用了前后端分離的架構,通過core模塊抽象了前端需要的操作,再通過persistence和discovery模塊隔離不同的配置倉庫和不同的服務注冊中心,從而達到前端程序不需要關心到底使用了什么存儲配置以及使用了什么注冊中心,這樣用戶可以根據自己的需要自由的組合不同的配置存儲和服務治理機制,盡可能的匹配大部分Spring Cloud用戶的需求。

部署方式

由于SCCA的架構對各個功能模塊做了比較細致的拆分,所以它存在多種不同模式的部署方式,所以它既可以為已經在使用Spring Cloud Config提供服務,也可以為從零開始使用Spring Cloud Config的用戶。

在SCCA中我們的可部署內容自底向上分為三個部分:

  • Spring Cloud 配置中心:基于Spring Cloud Config構建的配置中心服務端。
  • SCCA REST 服務端:SCCA的核心模塊,實現了SCCA配置管理的持久化內容以及所有的管理操作API。
  • SCCA UI 服務端:SCCA的前端模塊,實現了可視化的配置管理操作界面。

下面我們來看看SCCA支持哪些多樣的部署方式。

全分離模式

全分離模式就是將上述三個部分都以獨立的進程進行部署,每一個部分都可以做高可用,具體部署結構可以如下圖所示:

 

這種模式既可以適用于已經在使用Spring Cloud Config的用戶,也適用于正準備開始適用的用戶。其中,位于***層的Spring Cloud配置中心就是一個最原始的Spring Cloud Config Server。所以,對于已經在使用Spring Cloud Config的用戶只需要再部署一套SCCA REST 服務端和SCCA UI 服務端,并做一些配置就可以使用SCCA來管理所有的配置信息了。

案例

SCCA UI 服務端

SCCA REST 服務端(對接DB存儲的配置中心)

SCCA REST 服務端(對接Git存儲的配置中心)

Spring Cloud 配置中心(DB存儲)

Spring Cloud 配置中心(Git存儲)

半分離模式

所謂的半分離模式就是將上述的三個模塊中的兩個進行組合部署,以降低復雜度的部署方式。

SCCA UI模塊與SCCA REST模塊合并

如下圖所示,我們可以將SCCA UI服務端與SCCA REST服務端組合在一個程序中來部署,這樣可以有效的降低全分離模式的部署復雜度,同時對于已經在使用Spring Cloud Config的用戶來說非常友好,已經部署的配置中心可以繼續沿用。

案例

SCCA UI與SCCA REST合并的服務端

Spring Cloud 配置中心(DB存儲)

Spring Cloud 配置中心(Git存儲)

注意:對接不同存儲配置中心的配置參考分離部署中兩個SCCA REST服務端的不同配置內容進行調整。

All-In-One模式

***介紹一種比較暴力的使用模式,SCCA支持將所有三個模塊整合在一起使用和部署,在一個Spring Boot應用中同時包含:Spring Cloud 配置中心、SCCA REST 服務端以及SCCA UI 服務端,具體如下所示:

案例

All-In-One服務端

配置詳解

本章節分別對三個核心模塊的構建方式以及核心的配置內容。下面所有的構建都是基于Spring Boot構建的,所以您需要對Spring Boot項目的構建有基本的認識,這里不做介紹。

Spring Cloud配置中心的構建與配置

在SCCA的架構中,配置中心的核心完全采用Spring Cloud Config,所以如何構建一個配置中心完全遵循Spring Cloud Config的使用方法。由于目前SCCA的REST模塊主要實現了對Git存儲和DB存儲的綜合管理,所以對于Spring Cloud Config的使用也只能支持這兩種模式。下面分別介紹兩種配置中心的搭建與配置。

Git存儲模式

這里主要介紹幾種主要的并且SCCA能夠比較好支持的配置模式:

***種:多個項目使用多個不同Git倉庫存儲的模式

  1. spring.cloud.config.server.git.uri=https://github.com/dyc87112/{application}.git 
  2. spring.cloud.config.server.git.username= 
  3. spring.cloud.config.server.git.password

這種模式下不同的項目會對應的不同的Git倉庫,如果項目中spring.application.name=user-service,那么它的配置倉庫會定位到https://github.com/dyc87112/user-service.git倉庫下的配置。配置文件按application-{profile}.properties的格式存儲,{profile}代表環境名。

第二種:多個項目公用一個Git倉庫不同目錄的存儲模式

  1. spring.cloud.config.server.git.uri=https://github.com/dyc87112/config-repo.git 
  2. spring.cloud.config.server.git.search-paths=/{application} 
  3. spring.cloud.config.server.git.username= 
  4. spring.cloud.config.server.git.password

這種模式下不同的項目會對應到https://github.com/dyc87112/config-repo.git倉庫下的不同目錄,如果項目中spring.application.name=user-service,那么它的配置倉庫會定位到https://github.com/dyc87112/config-repo.git倉庫下的/user-service目錄。配置文件按application-{profile}.properties的格式存儲,{profile}代表環境名。

案例:Spring Cloud 配置中心(Git存儲)

Db存儲模式

在使用Db存儲模式的時候,必須使用Spring Cloud的Edgware版本以上。比如,可以采用下面的配置:

  1. # config server with jdbc 
  2. spring.profiles.active=jdbc 
  3. spring.cloud.config.server.jdbc.sql=SELECT `p_key`, `p_value` FROM property a, project b, env c, label d where a.project_id=b.id and a.env_id=c.id and a.label_id=d.id and b.name=? and c.name=? and d.name=? 
  4.  
  5. # Datasource, share with scca-rest-server 
  6. spring.datasource.url=jdbc:mysql://localhost:3306/config-db 
  7. spring.datasource.username=root 
  8. spring.datasource.password
  9. spring.datasource.driver-class-name=com.mysql.jdbc.Driver 

主要分為兩個部分:

  • 激活采用DB存儲的模式:將spring.profiles.active設置為jdbc,同時指定獲取配置的SQL,用戶直接復制采用一樣的配置即可。
  • 指定存儲配置的DB連接信息,除了mysql之外也可以使用其他主流關系型數據庫。

這里需要注意的,使用的DB要與后續介紹的SCCA REST模塊采用同一個DB

案例:Spring Cloud 配置中心(DB存儲)

SCCA REST服務端的構建與配置

在構建SCCA REST服務端的時候針對對接不同的配置存儲有一些不同的配置要求,所以下面按目前支持的存儲模式做不同的介紹。

Git存儲模式

當對接的配置中心采用Git存儲的時候,需要引入以下核心依賴:

  1. <dependency> 
  2.     <groupId>com.didispace</groupId> 
  3.     <artifactId>scca-rest</artifactId> 
  4.     <version>1.0.0-RELEASE</version> 
  5. </dependency> 
  6.  
  7. <!-- scca persistence dependency --> 
  8. <dependency> 
  9.     <groupId>com.didispace</groupId> 
  10.     <artifactId>scca-persistence-git</artifactId> 
  11.     <version>1.0.0-RELEASE</version> 
  12. </dependency> 

需要按如下配置:

  1. # if config server use git, need config these properties 
  2. scca.git.username= 
  3. scca.git.password
  4. scca.git.repo-uri=https://github.com/dyc87112/{application}.git 
  5. scca.git.base-path= 
  6. scca.git.file-pattern=application-{profile}.properties 
  7.  
  8. # Datasource 
  9. spring.datasource.url=jdbc:mysql://localhost:3306/config-db 
  10. spring.datasource.username=root 
  11. spring.datasource.password
  12. spring.datasource.driver-class-name=com.mysql.jdbc.Driver 

主要兩部分:

對接的git存儲的配置:

  • scca.git.username:訪問git的用戶名
  • scca.git.password:訪問git的密碼
  • scca.git.repo-uri:配置git倉庫的地址,與配置中心的spring.cloud.config.server.git.uri配置一致
  • scca.git.base-path:配置文件存儲的相對路徑,與配置中心的spring.cloud.config.server.git.search-paths配置一致
  • scca.git.file-pattern:配置文件的命名規則

SCCA內部邏輯的存儲庫數據源信息

案例:SCCA REST 服務端(對接Git存儲的配置中心)

Db存儲模式

當對接的配置中心采用Git存儲的時候,需要引入以下核心依賴:

  1. <dependency> 
  2.     <groupId>com.didispace</groupId> 
  3.     <artifactId>scca-rest</artifactId> 
  4.     <version>1.0.0-RELEASE</version> 
  5. </dependency> 
  6.  
  7. <!-- scca persistence dependency --> 
  8. <dependency> 
  9.     <groupId>com.didispace</groupId> 
  10.     <artifactId>scca-persistence-db</artifactId> 
  11.     <version>1.0.0-RELEASE</version> 
  12. </dependency> 

需要按如下配置:

  1. # Datasource 
  2. spring.datasource.url=jdbc:mysql://localhost:3306/config-db 
  3. spring.datasource.username=root 
  4. spring.datasource.password
  5. spring.datasource.driver-class-name=com.mysql.jdbc.Driver 

需要注意,當配置中心采用DB存儲的時候,這里的數據源需要一致

案例:SCCA REST 服務端(對接DB存儲的配置中心)

服務發現支持

如果SCCA REST模塊在訪問配置中心的時候基于服務發現的話還需要引入對應的支持依賴和配置

與Eureka的整合

如果使用eureak,那么需要引入如下依賴:

  1. <!-- scca discovery dependency--> 
  2. <dependency> 
  3.     <groupId>com.didispace</groupId> 
  4.     <artifactId>scca-discovery-eureka</artifactId> 
  5.     <version>1.0.0-RELEASE</version> 
  6. </dependency> 

并且在配置中加入eureka的配置,比如:

  1. eureka.client.serviceUrl.defaultZone=http://eureka.didispace.com/eureka/ 

更多相關配置請參與Spring Cloud Netflix Eureka的配置文檔。

與Consul的整合

如果使用consul,那么需要引入如下依賴:

  1. <!-- scca discovery dependency--> 
  2. <dependency> 
  3.     <groupId>com.didispace</groupId> 
  4.     <artifactId>scca-discovery-consul</artifactId> 
  5.     <version>1.0.0-RELEASE</version> 
  6. </dependency> 

并且在配置中加入consul的相關配置,比如:

  1. spring.cloud.consul.host=localhost 
  2. spring.cloud.consul.port=8500 

更多相關配置請參與Spring Cloud Consul的配置文檔。

公共配置

SCCA REST模塊還有一個特別的配置scca.rest.context-path=/xhr,該配置主要用來配置所有SCCA REST模塊接口的前綴,該接口主要用于與SCCA UI模塊對接時候使用,兩邊必須對接一致才能順利對接。

SCCA UI服務端的構建與配置

SCCA UI服務端需要引入以下核心依賴:

  1. <dependency> 
  2.     <groupId>com.didispace</groupId> 
  3.     <artifactId>scca-ui</artifactId> 
  4.     <version>1.0.0-RELEASE</version> 
  5. </dependency> 

另外,還需要在配置中指定具體要訪問的SCCA REST模塊的位置,主要有兩種模式:

指定地址的配置:

  1. scca.ui.rest-server-url=http://localhost:10130 

基于服務發現的配置:

  1. scca.ui.rest-server-name=scca-rest-server 

除了上面的配置之后,還需要引入eureka或consul的依賴以及做對應的配置

***,還有一個scca.ui.rest-server-context-path=/xhr配置,用來描述要訪問的SCCA REST模塊接口的前綴,與SCCA REST服務端的scca.rest.context-path=/xhr配置相對應。

案例:SCCA UI 服務端

管理功能

通過之前介紹的任何一個部署方式搭建了配置中心和管理端之后,我們就可以打開瀏覽器訪問我們的UI模塊實現對配置中心的管理了。

訪問地址為:http://localhost:10032/admin/,ip與端口根據實際部署UI模塊的情況進行調整。

系統配置

在管理各個項目的配置之前,我們需要先做一些基礎配置,比如:環境的配置、環境所屬的參數配置,加密相關的配置等。

環境配置

環境配置主要用來維護要使用SCCA統一管理的環境以及對應的Spring Cloud Config服務端信息。

環境配置

如上圖所示,通過“新增環境”按鈕可以添加一個部署環境。當我們使用了Eureka、Consul等注冊中心時,只需要配置注冊中心的訪問地址和配置中心的服務名以及配置中心訪問的前綴,后續就可以方便的使用這個環境的配置中心來進行加密解密、拉取配置等一系列的操作了。

如果不采用服務發現的機制取找到配置中心,也可以將注冊中心地址留空,配置中心服務名一欄直接配置訪問注冊中心的URL即可。

環境參數配置

環境參數配置主要用來配置每個環境所屬的一些特有配置信息,比如:redis的地址,eureka的地址等等。這些配置信息將用戶后續為各項目在各個環境配置的時候給予參考和快捷的替換操作提供元數據。

環境參數配置

加密管理

加密管理主要用來維護一些通常需要加密的Key,這樣可以在后續編輯配置內容的時候,方便的進行批量加密操作。

加密管理

配置中心

在完成了上面的系統配置之后,用戶就可以進入配置中心模塊,這里會提供具體的管理配置內容的功能。目前主要有兩部分組成:項目管理和配置管理。

項目管理

項目管理主要用來維護需要在各個環境部署的應用的配置信息,這里可以維護這個項目需要部署在什么環境,有多少配置的版本。

項目管理

這里的三個基本概念與Spring Cloud Config的幾個概念的對應關系如下:

  • 項目名稱:application
  • 部署環境:profile
  • 配置版本:label

這里配置版本(label),我們會默認采用master。需要同時存在多個配置版本,實現灰度配置的時候,用戶也可以自己添加label。

配置管理

配置管理功能是SCCA的核心,在這里用戶可以方便對各個應用、各個環境、各個版本的配置進行編輯、加密等操作。同時,也提供了一些快捷的操作,比如:根據環境參數配置一鍵替換、根據加密Key清單實現一鍵加密、通過配置中心可以加載到的配置信息等(更多便捷功能持續添加中…)

配置管理

客戶端接入

本頁主要提供給沒有使用過Spring Cloud Config的用戶閱讀。如果您已經使用過Spring Cloud Config,那么客戶端如何通過Spring Cloud Config的配置中心加載配置相信已經掌握,在使用本項目的時候,無非就是搭建SCCA-REST模塊和SCCA-UI模塊來幫助管理您目前的配置內容。

客戶端加載

通過前面幾節內容,如果您已經完成了SCCA中幾個要素的搭建,下面就來看看如何創建一個Spring Boot項目并通過配置中心來加載配置信息。

絕對地址接入

1. 創建一個基本的Spring Boot項目,并在pom.xml中引入依賴

  1. <dependency> 
  2.     <groupId>org.springframework.cloud</groupId> 
  3.     <artifactId>spring-cloud-starter-config</artifactId> 
  4. </dependency> 

2. 創建應用主類

  1. @SpringBootApplication 
  2. public class Application { 
  3.  
  4.     public static void main(String[] args) { 
  5.         new SpringApplicationBuilder(Application.class).web(true).run(args); 
  6.     } 
  7.  

3. 創建bootstrap.properties配置文件(也可以使用yaml可以)

  1. spring.application.name=config-client 
  2. server.port=12000 
  3.  
  4. spring.cloud.config.uri=http://localhost:10032/scca-config-server 
  5. spring.cloud.config.profile=stage 
  6. spring.cloud.config.label=master 

上述配置參數與scca中維護元素的對應關系如下:

  • spring.application.name:對應scca中的項目名
  • spring.cloud.config.profile:項目配置的環境名
  • spring.cloud.config.label:項目配置的版本名
  • spring.cloud.config.uri:配置中心的訪問絕對地址

服務發現接入

1. 創建一個基本的Spring Boot項目,并在pom.xml中引入依賴

  1. <dependency> 
  2.     <groupId>org.springframework.cloud</groupId> 
  3.     <artifactId>spring-cloud-starter-config</artifactId> 
  4. </dependency> 
  5. <dependency> 
  6.     <groupId>org.springframework.cloud</groupId> 
  7.     <artifactId>spring-cloud-starter-eureka</artifactId> 
  8. </dependency> 

上面以通過eureka做注冊中心的依賴,如果用consul,只需要將spring-cloud-starter-eureka換成spring-cloud-starter-consul-discovery即可。

2. 創建應用主類

  1. @EnableDiscoveryClient 
  2. @SpringBootApplication 
  3. public class Application { 
  4.  
  5.     public static void main(String[] args) { 
  6.         new SpringApplicationBuilder(Application.class).web(true).run(args); 
  7.     } 
  8.  

3. 創建bootstrap.properties配置文件(也可以使用yaml可以)

  1. spring.application.name=config-client 
  2. server.port=12000 
  3.  
  4. spring.cloud.config.discovery.enabled=true 
  5. spring.cloud.config.discovery.serviceId=config-server 
  6. spring.cloud.config.profile=stage 
  7. spring.cloud.config.label=master 

上述配置參數與scca中維護元素的對應關系如下:

  • spring.application.name:對應scca中的項目名
  • spring.cloud.config.profile:項目配置的環境名
  • spring.cloud.config.label:項目配置的版本名
  • spring.cloud.config.discovery.enabled:開啟服務發現功能
  • spring.cloud.config.discovery.serviceId:配置中心的服務名

讀取配置

通過上面的兩種方式從配置中心拉取配置之后,在Spring Boot項目中就可以輕松的使用所有配置內容了,比如:

  1. @RefreshScope 
  2. @RestController 
  3. public class TestController { 
  4.  
  5.     @Value("${a.b.c}"
  6.     private String abc; 
  7.  
  8.     @RequestMapping("/abc"
  9.     public String abc() { 
  10.         return this.abc; 
  11.     } 
  12.  

兩個主要注解的說明:

  • @Value("${a.b.c}"):讀取配置key為a.b.c的value值
  • @RefreshScope:下面的配置信息可以通過/refresh端點實現動態刷新

【本文為51CTO專欄作者“翟永超”的原創稿件,轉載請通過51CTO聯系作者獲取授權】

戳這里,看該作者更多好文

責任編輯:武曉燕 來源: 51CTO專欄
相關推薦

2010-05-24 12:16:21

視頻會議

2015-06-25 17:19:34

云機器人浙江大學華為

2017-04-13 12:37:17

智能制造石油和化工智慧云

2017-12-04 21:17:51

華為

2019-06-12 12:08:50

戴爾

2018-09-12 16:10:05

2017-04-20 14:26:29

互聯網智能制造制造業

2019-07-04 11:46:44

智慧安防云存儲軟件

2018-11-12 15:17:10

華為云

2013-11-08 17:59:56

SAP中國商業同略會

2009-03-24 13:20:56

Nehalem多核Intel

2024-09-26 17:50:33

2024-11-21 15:36:49

微軟AI Shell

2014-10-11 16:30:49

機場信息化華為

2013-07-02 11:45:29

2016-10-20 08:57:17

網頁ChromeIE

2009-06-16 10:33:30

IPv6無線寬帶阿德利亞

2013-02-04 11:06:07

山牡澤牡互聯網視頻服務

2016-01-13 10:09:18

原生應用HTML5
點贊
收藏

51CTO技術棧公眾號

欧美猛男性生活免费| 欧美系列日韩一区| 精品国产一区二区三区四区vr | 亚洲黄色av一区| 国产三区精品| fc2成人免费人成在线观看播放| 欧美精品日韩综合在线| 一二三四中文字幕| 亚州精品国产精品乱码不99按摩| 乱人伦精品视频在线观看| 久久精品国产免费观看| 成人免费无码大片a毛片| 久久91视频| 精品福利在线视频| 91制片厂免费观看| 你懂的免费在线观看视频网站| 另类成人小视频在线| 欧美激情视频在线| 内射毛片内射国产夫妻| 国产精品白丝av嫩草影院| 欧美亚洲禁片免费| 欧美综合在线播放| 黄色一级大片在线免费看产| xfplay精品久久| 99国产在线| 在线免费av网| 久久男女视频| 97在线精品视频| 久久久久亚洲av无码专区体验| 五月天亚洲色图| 日韩美女天天操| 免费av不卡在线| 电影亚洲精品噜噜在线观看| 亚洲一区二区高清| 国产一二三四区在线观看| 久草在线青青草| 97se狠狠狠综合亚洲狠狠| 97人人模人人爽人人少妇| 一本色道久久综合无码人妻| 久久国产精品亚洲77777| 久久久久久久久久国产| 欧美黄色aaa| 五月婷婷六月综合| 日韩视频在线一区| 国产精品20p| 免费视频亚洲| 亚洲精品视频久久| 中文字幕人妻一区二区| 亚洲aaa级| 亚洲精品大尺度| 丝袜熟女一区二区三区| 亚洲精品福利| 精品国产伦一区二区三区免费| 91精品视频国产| 在线视频成人| 欧美剧在线免费观看网站| 91精品无人成人www| 97精品国产综合久久久动漫日韩| 色先锋资源久久综合| 久久久免费视频网站| 最新中文字幕在线播放| 在线亚洲免费视频| 亚洲这里只有精品| 亚洲最大的免费视频网站| 91精品国产免费久久综合| 在线免费观看av网| 亚洲精品a区| 亚洲精品久久久久久久久| 日本xxx在线播放| 自拍自偷一区二区三区| 这里只有精品在线播放| 国产精品综合激情| 亚洲成人精选| 欧美激情精品久久久久久蜜臀 | av中文字幕免费观看| 黄色成人在线观看网站| 欧美乱妇一区二区三区不卡视频| 五月天视频在线观看| 视频二区欧美毛片免费观看| 亚洲精品一区二区三区四区高清 | 日韩在线亚洲| 亚洲第一免费网站| 人妻少妇无码精品视频区| 日韩精品水蜜桃| 欧美日韩成人在线视频| 欧美性猛交bbbbb精品| 日韩和欧美一区二区| 成人激情视频网| 懂色av蜜臀av粉嫩av分享吧| 久久综合网色—综合色88| 亚洲精品在线免费| 国产盗摄一区二区| 欧美视频在线播放| 天天躁日日躁狠狠躁av| 欧美中文一区二区| 久久久亚洲网站| 国产裸体美女永久免费无遮挡| 黄色精品一二区| 久久亚洲午夜电影| 高潮毛片在线观看| 色综合久久99| 日批视频在线看| 综合综合综合综合综合网| 久久精品成人一区二区三区| 日韩 欧美 综合| 久久激情五月激情| 久久久久久久久一区| 老司机在线永久免费观看| 香蕉久久一区二区不卡无毒影院 | 精品无码av在线| 日韩成人一区二区| 国产欧美一区二区三区不卡高清| 一级毛片视频在线| 精品国产成人在线| 精产国品一二三区| 欧美亚洲在线日韩| 欧美在线观看视频| www.精品久久| 国产精品久久一卡二卡| 北条麻妃69av| 99re热精品视频| 操人视频在线观看欧美| 啪啪小视频网站| 95精品视频在线| 黄色一级片在线看| 亚洲网一区二区三区| 精品国产网站地址| 在线观看国产成人| 国产亚洲欧洲一区高清在线观看| 国产精品久久中文字幕| 午夜视频在线观看精品中文| 精品国产一区二区三区四区在线观看 | 牛夜精品久久久久久久| 免费电影一区二区三区| 午夜精品久久久久久久久久久久久 | 亚洲国产精品精华素| 欧美精品1区2区3区| 日本美女bbw| 美女爽到高潮91| 日韩欧美一区二区在线观看| 综合久久2023| 亚洲美女av网站| 国产一级片毛片| 久久免费国产精品| 无码aⅴ精品一区二区三区浪潮 | 粉嫩高潮美女一区二区三区| 好吊色这里只有精品| 四虎国产精品免费久久| 日韩在线视频导航| 88av在线视频| 亚洲视频小说图片| 欧美xxxxxbbbbb| 欧美激情第二页| 国产高清不卡av| 888av在线视频| 精品视频一区在线视频| 青青青国产在线| 久久久久久日产精品| 男女啪啪网站视频| 日韩理论电影| 3d动漫啪啪精品一区二区免费 | 97视频免费在线观看| 亚洲欧美日韩成人在线| 色婷婷综合激情| 影音先锋男人在线| 久久99国产精品麻豆| 手机在线视频你懂的| 亚洲高清在线一区| 91精品国产沙发| 国产三级在线免费| 欧美老年两性高潮| 欧美日韩成人免费观看| 91天堂素人约啪| 国产精品免费观看久久| 清纯唯美综合亚洲| 91超碰在线电影| 国产一二三在线| 亚洲图片欧美午夜| 国产精品视频无码| 亚洲v日本v欧美v久久精品| 中文精品在线观看| 捆绑变态av一区二区三区| 色哟哟免费网站| 欧美变态挠脚心| 国产精品福利久久久| www在线免费观看视频| 亚洲精品电影在线观看| 中国女人真人一级毛片| 一区二区三区在线观看视频| 91精彩刺激对白露脸偷拍| 九色|91porny| 中国丰满人妻videoshd| 日韩三级在线| 韩国成人av| 日本一区二区三区中文字幕 | 日韩一区二区三区在线免费观看| 久久精品国产综合| 香港三日本三级少妇66| 欧美色综合久久| 日本熟妇成熟毛茸茸| 国产午夜精品一区二区| 国产成人精品一区二区三区在线观看| 久久一区激情| 东北少妇不带套对白| 日韩大片在线观看| 激情小说综合区| 国产电影一区| 国产成人精品亚洲精品| 麻豆av在线免费观看| 中文字幕一区二区精品| 亚洲欧洲综合在线| 日韩色在线观看| 91精品国产综合久| 91成人国产精品| 日韩欧美激情视频| 亚洲精品成人悠悠色影视| 男人舔女人下部高潮全视频| 不卡av电影在线播放| 巨乳女教师的诱惑| 精品在线观看视频| 一本色道久久亚洲综合精品蜜桃| 制服诱惑一区二区| 菠萝蜜视频在线观看入口| 久久中文视频| 日韩三级电影网站| 亚州av日韩av| 精品国产一区二区三区四区精华| 久久三级中文| 国产欧美日韩综合精品| 日韩国产激情| 97视频在线观看视频免费视频| av在线麻豆| www.xxxx精品| 99reav在线| 中文字幕亚洲精品| jizz在线免费观看| 亚洲日韩欧美视频一区| 爽爽视频在线观看| 亚洲精品久久久久久下一站| 亚洲免费不卡视频| 欧美成人bangbros| 亚洲av无码乱码国产麻豆| 制服丝袜亚洲色图| 国产日韩免费视频| 日韩一区二区在线播放| 国产永久免费视频| 91精品欧美久久久久久动漫| 亚洲综合视频在线播放| 欧美日韩亚洲另类| 91麻豆国产在线| 日韩一区二区三区电影 | 国产美女精品一区二区三区| 91插插插插插插插插| 久久99最新地址| 特种兵之深入敌后| 国产69精品久久久久777| 免费观看一区二区三区| 不卡的av在线播放| 美女久久久久久久久久| 国产日产精品一区| 日本激情视频一区二区三区| 自拍偷在线精品自拍偷无码专区| 成人在线观看高清| 一区二区三区成人在线视频| 久久久久久国产精品视频| 亚洲成人av资源| 欧美性猛交xxxx乱大交hd| 欧美日韩一区二区三区四区五区 | 日本综合字幕| 国产在线不卡精品| 第一区第二区在线| 久久综合毛片| 久久久久久久久久久9不雅视频| 日韩视频一二三| 午夜在线精品| 91国内在线播放| 国产91在线观看丝袜| 一本加勒比北条麻妃| 亚洲国产高清不卡| 久久久综合久久久| 色婷婷综合久久久中文一区二区| 国产精品一二三四五区| 亚洲高清免费观看高清完整版| 国产51人人成人人人人爽色哟哟| 久久精品人人爽| 日本在线影院| 成人久久精品视频| 欧美电影免费网站| 亚洲精品第一区二区三区| 国产精品大片| 日本999视频| 国产91在线|亚洲| 日韩欧美黄色网址| 亚洲国产精品一区二区久久恐怖片 | 欧美丝袜一区二区三区| 91 中文字幕| 精品无码久久久久久国产| а√中文在线8| 国产成人在线精品| 一区二区三区视频播放| 色爱区成人综合网| 亚洲美女一区| 国产精品久久久久久久99| xfplay精品久久| 久久久99精品| 欧美精品在线一区二区三区| 视频福利在线| 欧美精品在线看| 国产成人福利夜色影视| 久久久久一区二区| 欧美日本三区| 国内av一区二区| 久久精品无码一区二区三区| 国产一级特黄a高潮片| 欧美日韩国产免费一区二区| 久久精品国产亚洲a∨麻豆| 欧美疯狂性受xxxxx另类| 亚洲欧美一级| 天天久久人人| 老鸭窝91久久精品色噜噜导演| 亚洲日本久久久| 一区二区不卡在线视频 午夜欧美不卡在| 国产精华7777777| 精品亚洲一区二区三区在线观看| 日本在线视频www鲁啊鲁| 成人免费在线视频网址| 视频一区中文| 日本三级免费观看| 成人av在线影院| 久久国产精品二区| 欧美成人一区二区三区片免费 | 国精产品乱码一区一区三区四区| www.亚洲免费视频| 国产精品传媒麻豆hd| 日本一区二区三区四区在线观看| 久久精品道一区二区三区| 538国产视频| 天天av天天翘天天综合网色鬼国产 | 蜜桃传媒一区二区| 午夜影院日韩| 国产熟妇久久777777| 精品国产乱码久久久久久婷婷| 亚洲午夜18毛片在线看| 精品香蕉一区二区三区| 国产精品一二三产区| 狠狠干一区二区| 午夜影院日韩| 日韩在线免费观看av| 欧美性高潮在线| 久热av在线| 国产精品99导航| 日本一二区不卡| 手机av在线免费| 亚洲精品国产一区二区精华液| 精品人妻av一区二区三区| 欧美高清第一页| 久久亚洲道色| 免费黄色一级网站| 国产精品久久久久久久久免费相片| 91theporn国产在线观看| 久久手机免费视频| 国产一区丝袜| 久久国产乱子伦免费精品| 国产欧美视频一区二区| 一级特黄色大片| 欧美美女18p| 亚洲欧洲色图| 午夜免费看视频| 亚洲伦理在线精品| 特黄aaaaaaaaa真人毛片| 91chinesevideo永久地址| 精品国精品国产自在久国产应用| 在线观看免费不卡av| 亚洲激情图片qvod| 午夜黄色小视频| 国产精品视频播放| 欧美1区视频| 欧美成人午夜精品免费| 欧美日本一区二区| 91资源在线观看| 色综合久久av| 国产99一区视频免费| 一级片免费在线播放| 久久九九国产精品怡红院 | 看黄在线观看| 一区精品在线| 波多野结衣视频一区| 日韩xxx视频| 久久久久久久国产| 久久视频国产| 中文字幕一区三区久久女搜查官| 欧美吻胸吃奶大尺度电影| 青青青国内视频在线观看软件| 欧美成人蜜桃| 国产盗摄精品一区二区三区在线| 男人天堂2024| 九九久久综合网站| jvid福利在线一区二区| 在线观看亚洲免费视频| 欧美人与禽zozo性伦|