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

國際財務系統基于ShardingSphere的數據分片和一主多從實踐

開發 架構
每到月初國際財務系統壓力巨大,因為月初有大量補全任務,重算、計算任務、賬單生成任務、推送集成等都要趕在月初1號完成,顯然我們需要一個支持高性能、高并發的方案來解決我們的問題。

作者:京東物流 張廣治

1 背景

傳統的將數據集中存儲至單一數據節點的解決方案,在性能和可用性方面已經難于滿足海量數據的場景,系統最大的瓶頸在于單個節點讀寫性能,許多的資源受到單機的限制,例如連接數、網絡IO、磁盤IO等,從而導致它的并發能力不高,對于高并發的要求不滿足。

每到月初國際財務系統壓力巨大,因為月初有大量補全任務,重算、計算任務、賬單生成任務、推送集成等都要趕在月初1號完成,顯然我們需要一個支持高性能、高并發的方案來解決我們的問題。

2 我們的目標

  1. 支持每月接單量一億以上。
  2. 一億的單量補全,計算,生成賬單在24小時內完成(支持前面說的月初大數據量計算的場景)

3 數據分配規則

現實世界中,每一個資源都有其提供服務能力的上限,當某一個資源達到最大上限后就無法及時處理溢出的需求,這樣就需要使用多個資源同時提供服務來滿足大量的任務。當使用了多個資源來提供服務時,最為關鍵的是如何讓每一個資源比較均勻的承擔壓力,而不至于其中的某些資源壓力過大,所以分配規則就變得非常重要。

制定分配規則:要根據查詢和存儲的場景,一般按照類型、時間、城市、區域等作為分片鍵。

財務系統的租戶以業務線為單位,缺點為拆分的粒度太大,不能實現打散數據的目的,所以不適合做為分片鍵,事件定義作為分片鍵,缺點是非常不均勻,目前2C進口清關,一個事件,每月有一千多萬數據,鯤鵬的事件,每月單量很少,如果按照事件定義拆分,會導致數據極度傾斜。

目前最適合作為分片鍵的就是時間,因為系統中計算,賬單,匯總,都是基于時間的,所以時間非常適合做分片鍵,適合使用月、周、作為Range的周期。目前使用的就是時間分區,但只按照時間分區顯然已經不能滿足我們的需求了。

經過篩選,理論上最適合的分區鍵就剩下時間收付款對象了。

最終我們決定使用收付款對象分庫,時間作為表分區。

數據拆分前結構(圖一):

數據水平拆分后結構(圖二):

分配規則

(payer.toUpperCase()+"_"+payee.toUpperCase()).hashCode().abs()%128

收款對象大寫加分隔符加付款對象大寫,取HASH值的絕對值模分庫數量

重要:payer和payee字母統一大寫,因為大小寫不統一,會導致HASH值不一致,最終導致路由到不同的庫。

4 讀寫分離一主多從

4.1 ShardingSphere對讀寫分離的解釋

對于同一時刻有大量并發讀操作和較少寫操作類型的數據來說,將數據庫拆分為主庫和從庫,主庫負責處理事務性的增刪改操作,從庫負責處理查詢操作,能夠有效的避免由數據更新導致的行鎖,使得整個系統的查詢性能得到極大的改善。

通過一主多從的配置方式,可以將查詢請求均勻的分散到多個數據副本,能夠進一步的提升系統的處理能力。 使用多主多從的方式,不但能夠提升系統的吞吐量,還能夠提升系統的可用性,可以達到在任何一個數據庫宕機,甚至磁盤物理損壞的情況下仍然不影響系統的正常運行。

把數據量大的大表進行數據分片,其余大量并發讀操作且寫入小的數據進行讀寫分離,如(圖三)

左側為主從結構,右側為數據分片

4.2 讀寫分離+數據分片實戰

當我們實際使用sharding進行讀寫分離+數據分片時遇到了一個很大的問題,官網文檔中的實現方式只適合分庫和從庫在一起時的場景如(圖四)

而我們的場景為(圖三)所示,從庫和分庫時徹底分開的,參考官網的實現方法如下:

??https://shardingsphere.apache.org/document/4.1.1/cn/manual/sharding-jdbc/configuration/config-spring-boot/#%E6%95%B0%E6%8D%AE%E5%88%86%E7%89%87--%E8%AF%BB%E5%86%99%E5%88%86%E7%A6%BB??

官網給出的讀寫分離+數據分片方案不能配置
spring.shardingsphere.sharding.default-data-source-name默認數據源,如果配置了,所有讀操作將全部指向主庫,無法達到讀寫分離的目的。

當我們困擾在讀從庫的查詢會被輪詢到分庫中,我們實際的場景從庫和分庫是分離的,分庫中根本就不存在從庫中的表。此問題困擾了我近兩天的時間,我閱讀源碼發現
spring.shardingsphere.sharding.default-data-source-name可以被賦值一個DataNodeGroup,不僅僅支持配置datasourceName,sharding源碼如下圖:

由此spring.shardingsphere.sharding.default-data-source-name配置為讀寫分離的groupname1,問題解決

從庫和分庫不在一起的場景下,讀寫分離+數據分配的配置如下:

#數據源名稱
spring.shardingsphere.datasource.names= defaultmaster,ds0,ds1,ds2,ds3,ds4,ds5,ds6,ds7,ds8,ds9,ds10,ds11,ds12,ds13,ds14,ds15,ds16,ds17,ds18,ds19,ds20,ds21,ds22,ds23,ds24,ds25,ds26,ds27,ds28,ds29,ds30,ds31,slave0,slave1
#未配置分片規則的表將通過默認數據源定位,注意值必須配置為讀寫分離的分組名稱groupname1
spring.shardingsphere.sharding.default-data-source-name=groupname1
#主庫
spring.shardingsphere.datasource.defaultmaster.jdbc-url=jdbc:mysql:
spring.shardingsphere.datasource.defaultmaster.type= com.zaxxer.hikari.HikariDataSource
spring.shardingsphere.datasource.defaultmaster.driver-class-name= com.mysql.jdbc.Driver
#分庫ds0
spring.shardingsphere.datasource.ds0.jdbc-url=jdbc:mysql:
spring.shardingsphere.datasource.ds0.type= com.zaxxer.hikari.HikariDataSource
spring.shardingsphere.datasource.ds0.driver-class-name= com.mysql.jdbc.Driver
#從庫slave0
spring.shardingsphere.datasource.slave0.jdbc-url=jdbc:mysql:
spring.shardingsphere.datasource.slave0.type= com.zaxxer.hikari.HikariDataSource
spring.shardingsphere.datasource.slave0.driver-class-name= com.mysql.jdbc.Driver
#從庫slave1
spring.shardingsphere.datasource.slave1.jdbc-url=jdbc:mysql:
spring.shardingsphere.datasource.slave1.type= com.zaxxer.hikari.HikariDataSource
spring.shardingsphere.datasource.slave1.driver-class-name= com.mysql.jdbc.Driver


#由數據源名 + 表名組成,以小數點分隔。多個表以逗號分隔,支持inline表達式。缺省表示使用已知數據源與邏輯表名稱生成數據節點,用于廣播表(即每個庫中都需要一個同樣的表用于關聯查詢,多為字典表)或只分庫不分表且所有庫的表結構完全一致的情況
spring.shardingsphere.sharding.tables.incident_ar.actual-data-nodes=ds$->{0..127}.incident_ar
#行表達式分片策略 分庫策略,缺省表示使用默認分庫策略
spring.shardingsphere.sharding.tables.incident_ar.database-strategy.inline.sharding-column= dept_no
#分片算法行表達式,需符合groovy語法
spring.shardingsphere.sharding.tables.incident_ar.database-strategy.inline.algorithm-expression=ds$->{dept_no.toUpperCase().hashCode().abs() % 128}
#讀寫分離配置
spring.shardingsphere.sharding.master-slave-rules.groupname1.master-data-source-name=defaultmaster
spring.shardingsphere.sharding.master-slave-rules.groupname1.slave-data-source-names[0]=slave0
spring.shardingsphere.sharding.master-slave-rules.groupname1.slave-data-source-names[1]=slave1
spring.shardingsphere.sharding.master-slave-rules.groupname1.load-balance-algorithm-type=round_robin

可以看到讀操作可以被均勻的路由到slave0、slave1中,分片的讀會被分配到ds0,ds1中如下圖:

4.3 實現自己的讀寫分離負載均衡算法

Sharding提供了SPI形式的接口
org.apache.shardingsphere.spi.masterslave.MasterSlaveLoadBalanceAlgorithm實現讀寫分離多個從的具體負載均衡規則,代碼如下:

import lombok.Getter;
import lombok.RequiredArgsConstructor;
import lombok.Setter;
import org.apache.shardingsphere.spi.masterslave.MasterSlaveLoadBalanceAlgorithm;
import org.springframework.stereotype.Component;
import java.util.List;
import java.util.Properties;


@Component
@Getter
@Setter
@RequiredArgsConstructor
public final class LoadAlgorithm implements MasterSlaveLoadBalanceAlgorithm {


private Properties properties = new Properties();


@Override
public String getType() {return "loadBalance";}


@Override
public String getDataSource(final String name, final String masterDataSourceName, final List<String> slaveDataSourceNames) {
//自己的負載均衡規則
return slaveDataSourceNames.get(0);

RoundRobinMasterSlaveLoadBalanceAlgorithm 實現為所有從輪詢負載

RandomMasterSlaveLoadBalanceAlgorithm 實現為所有從隨機負載均衡

4.4 關于某些場景下必須讀主庫的解決方案

某些場景比如分布式場景下寫入馬上讀取的場景,可以使用hint方式進行強制讀取主庫,Sharding源碼使用ThreadLocal實現強制路由標記。

下面封裝了一個注解可以直接使用,代碼如下:

@Documented
@Target({ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
public @interface SeekMaster {
}


import lombok.extern.slf4j.Slf4j;
import org.apache.shardingsphere.api.hint.HintManager;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
import org.springframework.stereotype.Component;
/**
* ShardingSphere >讀寫分離自定義注解>用于實現讀寫分離時>需要強制讀主庫的場景(注解實現類)
*
* @author zhangguangzhi1
**/
@Slf4j
@Aspect
@Component
public class SeekMasterAnnotation {

@Around("@annotation(seekMaster)")
public Object doInterceptor(ProceedingJoinPoint joinPoint, SeekMaster seekMaster) throws Throwable {


Object object = null;
Throwable t = null;
try {
HintManager.getInstance().setMasterRouteOnly();
log.info("強制查詢主庫");


object = joinPoint.proceed();


} catch (Throwable throwable) {
t = throwable;
} finally {


HintManager.clear();


if (t != null) {
throw t;
}
}
return object;

使用時方法上打SeekMaster注解即可,方法下的所有讀操作將自動路由到主庫中,方法外的所有查詢還是讀取從庫,如下圖:

4.5 關于官網對讀寫分離描述不夠明確的補充說明

版本4.1.1

經實踐補充說明為:

同一線程且同一數據庫連接且一個事務中,如有寫入操作,以后的讀操作均從主庫讀取,只限存在寫入的表,沒有寫入的表,事務中的查詢會繼續路由至從庫中,用于保證數據一致性。

5 關于分庫的JOIN操作

方法1

使用default-data-source-name配置默認庫,即沒有配置數據分片策略的表都會使用默認庫。默認庫中表禁止與拆分表進行JOIN操作,此處需要做一些改造,目前系統有一些JOIN操作。(推薦使用此方法)

方法2

使用全局表,廣播表,讓128個庫中冗余基礎庫中的表,并實時改變。

方法3

分庫表中冗余需要JOIN表中的字段,可以解決JOIN問題,此方案單個表字段會增加。

6 分布式事務

6.1 XA事務管理器參數配置

XA是由X/Open組織提出的分布式事務的規范。 XA規范主要定義了(全局)事務管理器(TM)和(局 部)資源管理器(RM)之間的接口。主流的關系型 數據庫產品都是實現了XA接口的。

分段提交

XA需要兩階段提交: prepare 和 commit.

第一階段為 準備(prepare)階段。即所有的參與者準備執行事務并鎖住需要的資源。參與者ready時,向transaction manager報告已準備就緒。

第二階段為提交階段(commit)。當transaction manager確認所有參與者都ready后,向所有參與者發送commit命令。

ShardingSphere默認的XA事務管理器為Atomikos,在項目的logs目錄中會生成xa_tx.log, 這是XA崩潰恢復時所需的日志,請勿刪除。

6.2 BASE柔性事務管理器(SEATA-AT配置)

Seata 是一款開源的分布式事務解決方案,提供簡單易用的分布式事務服務。隨著業務的快速發展,應用單體架構暴露出代碼可維護性差,容錯率低,測試難度大,敏捷交付能力差等諸多問題,微服務應運而生。微服務的誕生一方面解決了上述問題,但是另一方面卻引入新的問題,其中主要問題之一就是如何保證微服務間的業務數據一致性。Seata 注冊配置服務中心均使用 Nacos。Seata 0.2.1+ 開始支持 Nacos 注冊配置服務中心。

  • 按照seata-work-shop中的步驟,下載并啟動seata server。
  • 在每一個分片數據庫實例中執創建undo_log表(以MySQL為例)
CREATE TABLE IF NOT EXISTS `undo_log`
(
`id` BIGINT(20) NOT NULL AUTO_INCREMENT COMMENT 'increment id',
`branch_id` BIGINT(20) NOT NULL COMMENT 'branch transaction id',
`xid` VARCHAR(100) NOT NULL COMMENT 'global transaction id',
`context` VARCHAR(128) NOT NULL COMMENT 'undo_log context,such as serialization',
`rollback_info` LONGBLOB NOT NULL COMMENT 'rollback info',
`log_status` INT(11) NOT NULL COMMENT '0:normal status,1:defense status',
`log_created` DATETIME NOT NULL COMMENT 'create datetime',
`log_modified` DATETIME NOT NULL COMMENT 'modify datetime',
PRIMARY KEY (`id`),
UNIQUE KEY `ux_undo_log` (`xid`, `branch_id`)
) ENGINE = InnoDB
AUTO_INCREMENT = 1
DEFAULT CHARSET = utf8 COMMENT ='AT transaction mode undo table';
  • 在classpath中增加seata.conf
client {
application.id = example ## 應用唯一id
transaction.service.group = my_test_tx_group ## 所屬事務組
}

6.3 Sharding-Jdbc默認提供弱XA事務

官方說明:

完全支持非跨庫事務,例如:僅分表,或分庫但是路由的結果在單庫中。

完全支持因邏輯異常導致的跨庫事務。例如:同一事務中,跨兩個庫更新。更新完畢后,拋出空指針,則兩個庫的內容都能回滾。

不支持因網絡、硬件異常導致的跨庫事務。例如:同一事務中,跨兩個庫更新,更新完畢后、未提交之前,第一個庫死機,則只有第二個庫數據提交。

6.4 分布式事務場景

  • 保存場景

推薦使用第三種弱XA事務,盡量設計時避免跨庫事務,目前設計為事件和事件數據為同庫(分庫時,將一個線索號的事件和事件數據HASH進入同一個分庫),盡量避免跨庫事務。

事件和計費結果本身設計為異步,非同一事務,所以事件和對應的結果不涉及跨庫事務。

保存多個計費結果,每次保存都屬于一個事件,一個事件的計費結果都屬于一個收付款對象,天然同庫。

弱XA事務的性能最佳。

  • 更新場景

對一些根據ID IN的更新場景,根據收付款對象分組執行,可以避免在所有分庫執行更新。

  • 刪除場景

無,目前都是邏輯刪除,實際為更新。

7 總結

1.推薦使用Sharding-Sphere進行分庫,分表可以考慮使用MYSQL分區表,對于研發來講完全是透明的,可以規避JOIN\分布式事務等問題。(分區表需要為分區鍵+ID建立了一個聯合索引)MYSQL分區得到了大量的實踐印證,沒有BUG,包括我在新計費初期,一直堅持推動使用的分表方案,不會引起一些難以發現的問題,在同庫同磁盤下性能與分表相當。

2.對于同一時刻有大量并發讀操作和較少寫操作類型的數據來說,適合使用讀寫分離,增加多個讀庫,緩解主庫壓力,要注意的是必須讀主庫的場景使用SeekMaster注解來實現。

3.數據分庫選擇合適的分片鍵非常重要,要根據業務需求選擇好分庫鍵,盡力避免數據傾斜,數據不均勻是目前數據拆分的一個共同問題,不可能實現數據的完全均勻;當查詢條件沒有分庫鍵時會遍歷所有分庫,查詢盡量帶上分庫鍵。

4.在我們使用中間件時,不要只看官網解釋,要多做測試,用實際來驗證,有的時候官網解釋話術可能存在歧義或表達不夠全面的地方,分析源碼和實際測試可以清晰的獲得想要的結果。

責任編輯:武曉燕 來源: 今日頭條
相關推薦

2025-11-21 08:02:39

2022-04-07 18:49:56

項目場景數據庫

2019-02-19 10:12:41

Redis分片數據

2025-01-08 08:02:12

2013-05-17 11:43:55

主數據數據管理

2021-10-26 08:00:00

數據庫架構技術

2019-10-23 09:02:49

BIONIO單線程

2017-09-01 18:27:36

前端 RxJs數據層

2019-06-19 16:01:14

Spark數據分析SparkSQL

2024-11-15 08:00:00

2023-04-14 09:59:01

傳感器智能

2020-06-17 10:38:11

云計算云遷移IT

2016-01-06 09:44:08

青云QingCloud數據庫服務升級

2016-01-05 16:08:40

青云QingCloud

2024-12-25 08:00:44

Python抽象基類JSON

2022-09-14 09:37:22

數據系統

2025-09-02 00:30:00

系統視頻技術

2022-07-27 22:56:45

前端應用緩存qiankun

2019-05-21 10:45:44

Docker架構容器
點贊
收藏

51CTO技術棧公眾號

亚洲欧美一区二区原创| 国产精品成久久久久三级| 日韩女优在线视频| 欧美一级大黄| 亚洲男同性恋视频| 精品在线视频一区二区| 在线观看不卡的av| 亚洲视频狠狠| 自拍偷拍亚洲在线| 国产乱国产乱老熟300部视频| 一二三四视频在线中文| 亚洲日本va在线观看| 久久久久资源| 性猛交富婆╳xxx乱大交天津| 香蕉久久国产| 欧美肥臀大乳一区二区免费视频| 三级电影在线看| 欧美成人精品一级| 欧美色涩在线第一页| 欧美一区二区激情| 国产cdts系列另类在线观看| 99久久久国产精品| 91色在线视频| 国产精华7777777| 亚洲免费大片| 欧美大片第1页| 男人天堂资源网| 夜夜春成人影院| 精品成人a区在线观看| 国内外成人免费在线视频| 中文在线中文资源| 午夜精彩视频在线观看不卡| 男插女免费视频| 91激情在线| 久久精品夜夜夜夜久久| 精品婷婷色一区二区三区蜜桃| 一区二区国产欧美| 日韩主播视频在线| 日韩免费在线播放| 东京热一区二区三区四区| 亚洲日本欧美| 国内精品小视频| 国产亚洲精品久久久久久打不开| 久久精品影视| 久久久91精品国产一区不卡| 国产三级aaa| 日韩精品不卡一区二区| 国产一区二区日韩| 色欲AV无码精品一区二区久久| 亚洲综合图色| 亚洲人成电影网站色www| 91精彩刺激对白露脸偷拍| 日韩有码一区| 亚洲男人天堂2024| 国产精成人品免费观看| 成人毛片免费看| 日韩视频在线观看免费| 人与动物性xxxx| 亚洲女同中文字幕| 欧美成人午夜剧场免费观看| 538任你躁在线精品视频网站| 午夜国产精品视频| 午夜精品www| 国产又黄又猛又粗又爽| 丝瓜av网站精品一区二区| 国产aⅴ夜夜欢一区二区三区| 五月天婷婷导航| 久久久久久夜| 国产日韩欧美91| www.蜜臀av| 成+人+亚洲+综合天堂| 久久婷婷开心| 高清日韩av电影| 亚洲色图制服诱惑| 日韩亚洲欧美视频| 欧美成人ⅴideosxxxxx| 欧美日韩你懂的| 国产伦理在线观看| 蜜桃视频欧美| 操日韩av在线电影| 日本网站在线免费观看| 久久久久91| 成人午夜在线视频一区| 你懂的网站在线| 国产欧美日韩在线视频| 精品日韩在线播放| 碰碰在线视频| 在线电影院国产精品| 国产成人av无码精品| 欧美色图在线播放| 欧美激情精品久久久久久免费印度| 亚洲综合一二三| 蜜桃视频一区二区三区在线观看 | 日本一区二区三区四区在线观看| 尤物网址在线观看| 亚洲大片在线观看| 国产一二三区av| 精品国产一区二区三区成人影院| 永久免费毛片在线播放不卡 | 18免费在线视频| 午夜精品一区二区三区免费视频 | 国产精品12区| 欧美日韩国产综合视频在线| 午夜激情在线| 欧美丝袜丝交足nylons| 一级少妇精品久久久久久久| 欧美一区二区三区高清视频| 久久久久九九九九| 国产一区二区波多野结衣| 高清不卡在线观看| 正在播放国产精品| 成人美女视频| 欧美sm美女调教| 天海翼在线视频| 日韩精品午夜视频| 精品欧美国产一区二区三区不卡| 国产三区视频在线观看| 日本韩国一区二区三区视频| 免费看黄色片的网站| 五月开心六月丁香综合色啪 | 日韩精品在线中文字幕| 欧美激情三区| 在线精品视频视频中文字幕| 日韩欧美三级在线观看| 国产盗摄一区二区三区| 中文字幕99| 久久久国产精品网站| 亚洲人成在线一二| 97久久久久久久| 成人av中文字幕| av一区二区三区免费观看| 色8久久久久| 亚洲系列中文字幕| 中文字幕视频网| 99热这里都是精品| 国产freexxxx性播放麻豆| 综合伊人久久| 欧美高清视频免费观看| av综合在线观看| 亚洲欧美日韩国产一区二区三区| 三上悠亚在线一区二区| 成人羞羞网站| 茄子视频成人在线| 九色蝌蚪在线| 欧美在线色视频| 阿v天堂2014| 蜜桃视频在线观看一区二区| 性欧美videosex高清少妇| 久久久成人av毛片免费观看| 亚洲人成电影网站色…| 欧美超碰在线观看| 国产女人水真多18毛片18精品视频| 动漫av免费观看| 欧美日韩中文一区二区| 国产精品视频不卡| 日本韩国在线视频爽| 337p亚洲精品色噜噜| 99久久99久久精品国产| 国产成人自拍网| 草b视频在线观看| 天天躁日日躁成人字幕aⅴ| 欧美亚洲激情在线| 成年人在线视频免费观看| 欧美性videosxxxxx| 美国黄色片视频| 国产一区二区三区国产| www.在线观看av| 天天躁日日躁狠狠躁欧美| 国产成人极品视频| 国产区在线观看| 欧美sm美女调教| 国产精品一区无码| 亚洲欧洲日韩av| 黑人玩弄人妻一区二区三区| 久久福利精品| 亚洲欧洲国产日韩精品| 日韩高清在线观看一区二区| 97婷婷大伊香蕉精品视频| 黄色在线小视频| 欧美一级高清片| 久久久久久少妇| 国产精品无遮挡| 国产精品嫩草69影院| 亚洲一区观看| 一本一本久久a久久精品综合妖精| 成人污污www网站免费丝瓜| 韩剧1988免费观看全集| 午夜视频在线观看免费视频| 日韩欧美色综合| 亚洲欧美另类在线视频| 一区二区三区四区蜜桃| 少妇精品一区二区三区| 黄网站免费久久| 青青草原成人网| 91精品电影| 日本不卡一区二区三区视频| 美女精品久久| 国产精品成人在线| 99热99re6国产在线播放| 中文国产亚洲喷潮| 午夜小视频在线播放| 欧美久久久久久久久中文字幕| 欧美日韩综合在线观看| 1024精品合集| 无码人妻丰满熟妇啪啪欧美| 成人高清视频免费观看| 中文字幕免费高清在线| 久久精品麻豆| 91免费黄视频| 重囗味另类老妇506070| 亚洲欧美国产精品桃花| 免费一区二区| 国产亚洲欧美另类一区二区三区| 图片一区二区| 国产精品美女视频网站| 亚洲插插视频| 97国产精品久久| 在线观看电影av| 最近更新的2019中文字幕| 深夜视频在线免费| 亚洲精品在线电影| 性一交一乱一精一晶| 在线电影院国产精品| 中文字幕网址在线| 色婷婷精品久久二区二区蜜臂av| 国产精品白浆一区二小说| 亚洲视频小说图片| 日本黄色录像视频| 国产精品入口麻豆九色| 久久久久久久久久久久| 91亚洲精品久久久蜜桃| 美女黄色一级视频| 成人免费视频一区二区| 国产精品一级无码| 国产精品2024| 久久黄色一级视频| 国产高清久久久| 91香蕉视频免费看| 国产一区二区在线免费观看| 日韩av卡一卡二| 久久国产福利国产秒拍| 一区二区三区 欧美| 蜜臀av性久久久久蜜臀aⅴ| 日本老熟妇毛茸茸| 日韩黄色小视频| 熟女少妇精品一区二区| 日韩中文字幕区一区有砖一区| 国产免费一区二区三区视频| 国产毛片一区| 无码人妻丰满熟妇区五十路百度| 蜜桃视频一区| 精品亚洲一区二区三区四区| 蜜臀久久久久久久| www.51色.com| 国产精品18久久久| 国产老熟女伦老熟妇露脸| 99久久免费视频.com| 国产美女喷水视频| 久久精品视频在线看| 欧美三级视频网站| 亚洲视频一区二区在线观看| jizz亚洲少妇| 精品免费在线观看| 亚洲成熟少妇视频在线观看| 欧美性猛片xxxx免费看久爱| 国产美女明星三级做爰| 欧美videofree性高清杂交| 日韩av视屏| 在线观看精品自拍私拍| 成人看av片| 97香蕉超级碰碰久久免费软件| 女生影院久久| 成人欧美在线观看| 精品国产午夜肉伦伦影院| 欧美一区二区三区精美影视| 久久国产成人精品| 欧美中日韩在线| 亚洲免费影院| 亚洲综合av在线播放| 成人中文字幕在线| 亚洲国产日韩一区无码精品久久久| 自拍av一区二区三区| 日韩和一区二区| 欧美三级午夜理伦三级中视频| 国产精品一区二区人人爽| 精品国产一区a| 国产高清美女一级毛片久久| 久久6精品影院| 成人教育av| 99re视频| sdde在线播放一区二区| 男女日批视频在线观看| 日韩电影在线观看网站| 91精品啪在线观看国产| 国产精品美女久久久久久| 国产无遮挡aaa片爽爽| 欧美日本在线视频| 性猛交xxxx| 欧美美最猛性xxxxxx| 日韩视频网站在线观看| 国产精品久久久久久久久久直播 | 久久深夜福利免费观看| 在线天堂新版最新版在线8| 亚洲综合在线做性| 欧美在线免费看视频| www.国产在线视频| 精品一区二区av| 国产免费看av| 午夜影院久久久| 99在线观看免费| 深夜成人在线观看| 亚洲黄色中文字幕| 国产精品果冻传媒潘| 99久久久久国产精品| 国产97色在线 | 日韩| 成人av在线电影| 高h视频免费观看| 7777精品伊人久久久大香线蕉完整版 | 国产一级中文字幕| 7777精品久久久大香线蕉| 国内av一区二区三区| 午夜精品久久久久久久99热| 久久久久久爱| 异国色恋浪漫潭| 免费成人在线影院| 蜜桃传媒一区二区亚洲| 动漫精品一区二区| 国产综合无码一区二区色蜜蜜| 久久夜精品va视频免费观看| jizz欧美| 亚洲国产一区二区在线| 日日夜夜精品免费视频| 偷拍女澡堂一区二区三区| 午夜欧美大尺度福利影院在线看| 精品人妻一区二区三区换脸明星| 日韩亚洲欧美成人| 色成人综合网| 先锋影音男人资源| 国产剧情在线观看一区二区| 色老板免费视频| 91麻豆精品国产自产在线观看一区 | 粉嫩aⅴ一区二区三区四区| 国产av无码专区亚洲av毛网站| 欧美三级一区二区| 国产欧美久久久久久久久| 91精品在线影院| 中文无码久久精品| 欧美体内she精高潮| 亚洲伦理在线精品| 成人乱码一区二区三区| 欧美国产日本在线| 久久久精品国产**网站| 九色在线视频观看| 久久久九九九九| 欧美日韩 一区二区三区| 在线视频精品一| 色综合久久久| 乱熟女高潮一区二区在线| 东方欧美亚洲色图在线| 亚洲一区欧美在线| 一区二区三区四区精品| 在线观看亚洲精品福利片| 欧美做受777cos| 不卡一卡二卡三乱码免费网站| 国产成人精品一区二三区| 一区二区三欧美| 国产精品久久久久久久久久久久久久久| 日韩不卡一二区| 91网站在线观看视频| 欧美男人天堂网| 久久久精品一区二区| 国产精品一区二区三区美女| 久草资源站在线观看| 国产精品久久一级| 国产黄色片网站| 欧洲中文字幕国产精品| 99久久婷婷这里只有精品| 制服丝袜av在线| 欧美亚洲综合色| 在线看福利影| 欧美不卡福利| 国产一区二区在线视频| 日韩 欧美 综合| 久久国内精品一国内精品| 成人资源在线| 久久久久国产一区| 亚洲电影一级黄| fc2在线中文字幕| 国产日韩三区| 久久se精品一区精品二区| 精品人妻在线播放| 色婷婷久久一区二区| 国产精品香蕉| 捷克做爰xxxⅹ性视频| 亚洲成av人综合在线观看| av电影在线播放高清免费观看| 国产精品国色综合久久| 久久激情综合网| 男人天堂2024| 欧美黑人xxxx|