• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    高實(shí)時(shí)國(guó)產(chǎn)數(shù)據(jù)庫數(shù)據(jù)同步共享

    2025-03-06 00:00:00崔宇何偉栗高尚姚萬華姚克
    無線互聯(lián)科技 2025年1期

    摘要:面對(duì)部分國(guó)產(chǎn)非公開數(shù)據(jù)庫日志格式的數(shù)據(jù)庫數(shù)據(jù)高實(shí)時(shí)共享同步問題,文章設(shè)計(jì)了一種基于ThreadLocal和雙切面的數(shù)據(jù)同步共享方案。通過在Dao層切面采集Web請(qǐng)求響應(yīng)過程中對(duì)數(shù)據(jù)庫的所有變更記錄,暫存在ThreadLocal中;在Controller層切面攔截響應(yīng),從ThreadLocal提取出所有變更記錄,最后通過傳輸管理模塊將變更記錄共享發(fā)送給其他系統(tǒng),實(shí)現(xiàn)數(shù)據(jù)庫數(shù)據(jù)的增量共享。實(shí)驗(yàn)對(duì)比發(fā)現(xiàn)方案采集時(shí)間、發(fā)送時(shí)間相對(duì)于業(yè)務(wù)操作時(shí)間占比極低,這是因?yàn)閿?shù)據(jù)采集、發(fā)送等操作均在本地內(nèi)存中進(jìn)行,而業(yè)務(wù)操作依賴于數(shù)據(jù)庫網(wǎng)絡(luò)IO,所以該方案能夠?qū)崿F(xiàn)國(guó)產(chǎn)數(shù)據(jù)庫數(shù)據(jù)同步共享,具備較高的實(shí)時(shí)性和較低的侵入性。

    關(guān)鍵詞:數(shù)據(jù)共享;切面;ThreadLocal;國(guó)產(chǎn)數(shù)據(jù)庫;高實(shí)時(shí)

    中圖分類號(hào):TP39 "文獻(xiàn)標(biāo)志碼:A

    0 引言

    數(shù)據(jù)是維系企業(yè)生存的“血液”[1],要想提高企業(yè)生命力,必須重視數(shù)據(jù)的同步共享。通常的數(shù)據(jù)同步共享方式可分為同源數(shù)據(jù)同步和異構(gòu)數(shù)據(jù)同步2種。同源數(shù)據(jù)庫解決方案主要包括基于數(shù)據(jù)庫觸發(fā)器或者數(shù)據(jù)庫日志系統(tǒng)進(jìn)行數(shù)據(jù)同步共享,如劉鵬等[2]利用canal基于數(shù)據(jù)庫日志系統(tǒng)實(shí)現(xiàn)數(shù)據(jù)雙向同步;異構(gòu)數(shù)據(jù)同步解決方案主要為基于ETL工具進(jìn)行數(shù)據(jù)同步,如陶慧玲等[3]采用DataX進(jìn)行異構(gòu)數(shù)據(jù)同步,王天舉等[4]基于Kettle實(shí)現(xiàn)鐵路系統(tǒng)異構(gòu)數(shù)據(jù)同步。

    在國(guó)產(chǎn)化背景下使用國(guó)產(chǎn)關(guān)系型數(shù)據(jù)庫存儲(chǔ)業(yè)務(wù)數(shù)據(jù),根據(jù)業(yè)務(wù)需要將國(guó)產(chǎn)關(guān)系型數(shù)據(jù)庫中數(shù)據(jù)實(shí)時(shí)同步共享出去。其中,基于數(shù)據(jù)庫觸發(fā)器數(shù)據(jù)同步方式耗費(fèi)數(shù)據(jù)庫資源高[5],基于數(shù)據(jù)庫日志系統(tǒng)同步方式不適用于非公開數(shù)據(jù)庫日志格式的場(chǎng)景[6],基于ETL異構(gòu)數(shù)據(jù)源共享的機(jī)制決定了其難以解決高實(shí)時(shí)性問題[7]。而筆者面臨場(chǎng)景就是常規(guī)的Web請(qǐng)求下,使用國(guó)產(chǎn)關(guān)系型數(shù)據(jù)庫持久化業(yè)務(wù)數(shù)據(jù),但并未提供數(shù)據(jù)同步工具,也未開放數(shù)據(jù)庫日志格式,同時(shí)又對(duì)數(shù)據(jù)實(shí)時(shí)共享要求非常高。傳統(tǒng)的方法不管是ETL還是利用公開日志格式進(jìn)行數(shù)據(jù)同步共享均不能很好地滿足需求,因此需要設(shè)計(jì)一種新的高實(shí)時(shí)非公開日志格式的國(guó)產(chǎn)關(guān)系型數(shù)據(jù)庫同步共享方案,該方案要具較高的實(shí)時(shí)性同時(shí)對(duì)業(yè)務(wù)代碼侵入較低。

    1 原理

    1.1 相關(guān)理論

    在典型的Web請(qǐng)求-響應(yīng)流程中,一個(gè)Web Request進(jìn)入服務(wù)端到Response返回前端的生命周期中,依次經(jīng)過Controller、Service、Dao等組件層,通過Dao層將數(shù)據(jù)變更寫入數(shù)據(jù)庫,再反過來經(jīng)Dao、Service、Controller層,完成一次Web請(qǐng)求響應(yīng)過程。通常請(qǐng)求-響應(yīng)模式中,為提高響應(yīng)效率,服務(wù)端請(qǐng)求響應(yīng)線程由服務(wù)端從線程池中分配而來,響應(yīng)結(jié)束后又歸還給服務(wù)端線程池,由單個(gè)線程完成整個(gè)處理過程。該方案的技術(shù)路徑是通過依次采集該Web請(qǐng)求響應(yīng)過程中對(duì)數(shù)據(jù)庫的所有變更記錄(如增加、修改、刪除等操作),然后將變更記錄同步共享出去,完成數(shù)據(jù)的同步共享,整體過程如圖1所示。

    如果直接在程序中通過編碼的方式記錄下對(duì)數(shù)據(jù)庫的操作,無疑會(huì)對(duì)原有業(yè)務(wù)代碼侵入較大,導(dǎo)致業(yè)務(wù)邏輯不清晰,后期維護(hù)成本增大,因此須要采用 Aspect Oriented Programming(AOP),即面向切面編程[8]。將與核心業(yè)務(wù)無關(guān)卻多次使用的功能模塊抽取分離成切面,和核心業(yè)務(wù)模塊進(jìn)行解耦,降低代碼復(fù)雜度,提高程序的后期可維護(hù)性[9]?,F(xiàn)代程序大量使用切面編程方式,在實(shí)現(xiàn)一些與核心業(yè)務(wù)弱相關(guān)功能的同時(shí)又降低了程序的復(fù)雜性。這里將數(shù)據(jù)庫變更記錄和采集過程使用AOP技術(shù)從業(yè)務(wù)中剝離出來,能夠提高程序可讀性以及可維護(hù)性。

    為了提高程序的實(shí)時(shí)性,結(jié)合請(qǐng)求-響應(yīng)的單線程過程,這里采用線程局部量(ThreadLocal)技術(shù)。通過在線程內(nèi)部存儲(chǔ)變量,能夠減少同一個(gè)線程內(nèi)多個(gè)函數(shù)或者組件之間一些公共變量傳遞的復(fù)雜度[10]。白曉濤等[11]用ThreadLocal存儲(chǔ)當(dāng)前用戶信息,方便處理過程中進(jìn)行存儲(chǔ)使用。線程局部量存儲(chǔ)的數(shù)據(jù)可以很方便地在本線程運(yùn)行過程獲取,不會(huì)受到其他線程的影響。因此,使用ThreadLocal存儲(chǔ)數(shù)據(jù)庫變更記錄,能夠提高程序的響應(yīng)速度,同時(shí)進(jìn)一步降低對(duì)業(yè)務(wù)代碼的侵入。

    1.2 實(shí)現(xiàn)原理

    該解決方案由Controller層切面、Dao層切面、ThreadLocal管理、數(shù)據(jù)傳輸管理等模塊組成,如圖2所示。

    Controller層切面架設(shè)在Controller和Service之間,攔截進(jìn)入的請(qǐng)求,初始化ThreadLocal,清理該ThreadLocal中的臟數(shù)據(jù)(來自線程池中的復(fù)用線程,會(huì)攜帶上次請(qǐng)求處理中的臟數(shù)據(jù))。Dao層切面架設(shè)在Service和Dao之間,采集Dao層對(duì)數(shù)據(jù)庫所做的所有變更操作,抽象出變更的數(shù)據(jù)內(nèi)容(add操作、delete操作、modify操作)并將其存儲(chǔ)在線程局部量ThreadLocal中,以便于后續(xù)的數(shù)據(jù)打包發(fā)送。在請(qǐng)求返回Controller層切面時(shí),提取Dao層切面采集的變更記錄數(shù)據(jù),將其序列化打包,通過數(shù)據(jù)傳輸模塊將數(shù)據(jù)變更記錄發(fā)送出去,通過Kafka或者其他數(shù)據(jù)中心將數(shù)據(jù)變更記錄同步到共享出去,通過這4個(gè)模塊的配合實(shí)現(xiàn)高實(shí)時(shí)國(guó)產(chǎn)數(shù)據(jù)庫數(shù)據(jù)同步共享功能,具體實(shí)現(xiàn)原理如圖3所示。

    2 技術(shù)實(shí)現(xiàn)與實(shí)驗(yàn)

    2.1 偽代碼

    筆者使用Spring后端服務(wù)框架,實(shí)現(xiàn)Controller層切面、Dao層切面,ThreadLocal管理、數(shù)據(jù)傳輸管理等模塊。

    2.1.1 ThreadLocal管理

    線程局部量ThreadLocal中保存的是解決方案的核心數(shù)據(jù)結(jié)構(gòu),包含操作的數(shù)據(jù)對(duì)象(table)、操作方式(add、delete、modify)、操作內(nèi)容(變更的內(nèi)容)等信息。通過ThreadLocalDataHolder管理器可以方便地在同一個(gè)線程中任何時(shí)間地點(diǎn)存入和取出變更數(shù)據(jù)內(nèi)容,進(jìn)一步降低程序內(nèi)部邏輯的耦合。

    public class ThreadLocalData {//線程局部量

    private Listlt;DataContentOperatergt; dataOperaterLst = new ArrayList();//數(shù)據(jù)操作集合

    private String operaterDescription;// 數(shù)據(jù)操作說明

    public class DataContentOperater {

    private int operator = -1;// 操作標(biāo)識(shí),1:新增 2更新 3刪除

    private Object object;// 操作實(shí)體

    private String themeName;// 操作表對(duì)象

    }

    }

    public class ThreadLocalDataHolder {//ThreadLocal管理器

    private static final ThreadLocallt;ThreadLocalDatagt; THREAD_threadLocalData = new ThreadLocal() {

    protected ThreadLocalData initialValue() {

    return new ThreadLocalData(); }

    };

    public static ThreadLocalData getThreadLocalData() {

    return (ThreadLocalData)THREAD_threadLocalData.get();

    }

    }

    2.1.2 Controller層切面

    Controller層切面攔截Web請(qǐng)求,初始化ThreadLocal變量,在請(qǐng)求返回時(shí),提取ThreadLocal變量中保存的數(shù)據(jù)變更記錄,然后將變更記錄數(shù)據(jù)發(fā)送出去。在該模塊能夠計(jì)算出整體耗時(shí)。

    @Aspect

    public class ControllerAop {//Controller層切面

    @Autowired

    SendService mSendService;

    @Pointcut(\"execution(* controller.*.*(..)) \")

    public void Pointcut() {}//Cortoller層切面定義,攔截切面數(shù)據(jù)

    @Around(\"Pointcut()\")

    public ReturnBean Around(ProceedingJoinPoint point) {

    ReturnBean ret = 1;

    long startTime = System.currentTimeMillis();

    Object returnObject = point.proceed(); //調(diào)用業(yè)務(wù)邏輯

    ret = (ReturnBean)returnObject;

    if (ret.getCode() == 200) {//處理失敗,無須處理數(shù)據(jù)

    return ret;

    } else {

    this.mSendService.sendMessgae(); //同步共享數(shù)據(jù)

    long AllTime = System.currentTimeMillis() -startTime;//計(jì)算整體耗時(shí)

    }

    return ret;

    }

    }

    2.1.3 Dao層切面

    Dao層切面攔截?cái)?shù)據(jù)庫操作,通過反射技術(shù)采集增加、修改、刪除等操作的數(shù)據(jù)庫對(duì)象[12],保存在ThreadLocal中。記錄單次數(shù)據(jù)庫操作的時(shí)間以及單次采集時(shí)間。

    @Aspect

    public class DaoAop {//Dao層切面

    @Pointcut(\"execution(* *.dao.*.*(..))\")

    public void Pointcut() {} //攔截所有save、update、delete方法

    @After(\"Pointcut()\")

    public void Around(JoinPoint point) {

    long startTime = System.currentTimeMillis();//單次業(yè)務(wù)操作數(shù)據(jù)庫耗時(shí)

    Object returnObject = point.proceed();

    long endTime = System.currentTimeMillis();

    long businessTime = System.currentTimeMillis() -startTime;

    MethodSignature signature = (MethodSignature)point.getSignature();

    Method method = signature.getMethod();

    Object[] args = point.getArgs();

    if (!BlankUtil.isBlank(args)) {

    DataContentOperater datacontentoperater = new DataContentOperater();

    String methodName = method.getName();

    Classlt;?gt; clazz = point.getTarget().getClass();

    datacontentoperater.setThemeName(clazz.getSimpleName());

    if (methodName.contains(\"save\")) {//提取add數(shù)據(jù)

    datacontentoperater.setOperator(1);

    datacontentoperater.setObject(args[0]);

    } else if (methodName.contains(\"update\")) {//提取modify數(shù)據(jù)

    datacontentoperater.setOperator(2);

    datacontentoperater.setObject(args[0]);

    } else if (methodName.contains(\"delete\")) {//提取delete數(shù)據(jù)

    datacontentoperater.setOperator(3);

    datacontentoperater.setObject(args[0]);

    }

    if (datacontentoperater.getOperator() != -1) {

    ThreadLocalDataHolder.getThreadLocalData().getDataOperaterLst()

    .add(datacontentoperater);

    }

    }

    long extractTime = System.currentTimeMillis()-endTime; //采集耗時(shí)

    }

    }

    2.1.4 數(shù)據(jù)傳輸管理

    數(shù)據(jù)傳輸管理是對(duì)數(shù)據(jù)進(jìn)行打包發(fā)送,該方案采用多線程技術(shù)進(jìn)行優(yōu)化,將打包和發(fā)送過程放在單獨(dú)的發(fā)送線程中,和請(qǐng)求響應(yīng)線程隔離開,以進(jìn)一步降低對(duì)程序的侵入影響,縮短程序返回時(shí)間,提高程序響應(yīng)速度。

    public class SendDataService {//數(shù)據(jù)傳輸管理

    ThreadPoolExecutor executor = new ThreadPoolExecutor(1, 1, 0L, TimeUnit.MILLISECONDS);

    @Autowire

    DataSenderProxy proxy;

    public void sendMessgae() {

    ThreadLocalData threadLocalData = Thread LocalDataHolder

    .getThreadLocalData(); ""http://提取線程局部數(shù)據(jù)

    long startTime = System.currentTimeMillis();

    Runnable task = new SendDataService.sendDataTask(data, proxy);

    this.executor.execute(task);

    long sendTime = System.currentTimeMillis() -startTime;//發(fā)送時(shí)間

    }

    private class SendDataTask implements Runnable {

    private ThreadLocalData data;//數(shù)據(jù)內(nèi)容

    private DataSenderProxy proxy; //數(shù)據(jù)中心代理

    public SendDataTask(ThreadLocalData data, DataSenderProxy proxy) {

    this.data = data; this.proxy = proxy;

    }

    public void run() {

    Codec codec = ProtobufProxy.create(ThreadLocalData.class);

    byte[] dateByte =codec.encode(data);

    proxy.send(dateByte); //數(shù)據(jù)發(fā)送--

    }

    }

    }

    2.2 實(shí)驗(yàn)過程

    以Add場(chǎng)景為例,通過swagger頁面[13],模擬業(yè)務(wù)請(qǐng)求,并在Service層循環(huán)調(diào)用Add操作,調(diào)用次數(shù)分別為100次、200次、300次,400次、500次,采集整體運(yùn)行時(shí)間、業(yè)務(wù)操作時(shí)間(對(duì)單次Add操作數(shù)據(jù)庫時(shí)間進(jìn)行累加)、數(shù)據(jù)采集時(shí)間(對(duì)單次Add操作數(shù)據(jù)采集時(shí)間進(jìn)行累加)、數(shù)據(jù)發(fā)送時(shí)間,計(jì)算數(shù)據(jù)采集時(shí)間、數(shù)據(jù)發(fā)送時(shí)間、業(yè)務(wù)處理時(shí)間相對(duì)于整體運(yùn)行時(shí)間占比,詳細(xì)的實(shí)驗(yàn)過程如圖4所示,所得結(jié)果如表1所示。

    2.3 實(shí)驗(yàn)結(jié)果分析

    執(zhí)行Add操作100次、200次、300次,400次、500次,業(yè)務(wù)操作時(shí)間/整體運(yùn)行時(shí)間從98.98%上漲至99.90%,采集和發(fā)送時(shí)間相對(duì)整體運(yùn)行時(shí)間的占比隨著操作次數(shù)增多,整體呈下降趨勢(shì),從不足1%到不足0.1%,說明該方案對(duì)原有程序的影響較低,業(yè)務(wù)邏輯越復(fù)雜,影響越低。

    業(yè)務(wù)處理過程依賴于數(shù)據(jù)庫網(wǎng)絡(luò)IO,該過程較為耗時(shí);數(shù)據(jù)的采集過程完全在內(nèi)存中進(jìn)行,采集的數(shù)據(jù)是原始數(shù)據(jù)的引用,因此數(shù)據(jù)采集時(shí)間占比較低;數(shù)據(jù)發(fā)送過程,對(duì)傳輸發(fā)送過程進(jìn)行多線程優(yōu)化,發(fā)送過程中數(shù)據(jù)打包以及網(wǎng)絡(luò)傳輸?shù)群臅r(shí)操作均在多線程中進(jìn)行,不占用原有請(qǐng)求響應(yīng)線程時(shí)間,因此發(fā)送時(shí)間占比也較低。綜上,該方案利用雙切面和ThreadLocal實(shí)現(xiàn)了國(guó)產(chǎn)數(shù)據(jù)庫數(shù)據(jù)同步共享,具備較高的實(shí)時(shí)性和較低的侵入性。

    3 結(jié)語

    在國(guó)產(chǎn)化背景下,面對(duì)部分未開放數(shù)據(jù)庫日志格式國(guó)產(chǎn)數(shù)據(jù)庫系統(tǒng),難以高實(shí)時(shí)共享同步數(shù)據(jù)庫數(shù)據(jù)的問題,本文設(shè)計(jì)了一種高實(shí)時(shí)國(guó)產(chǎn)數(shù)據(jù)庫同步共享方案,在Dao層切面采集Web請(qǐng)求響應(yīng)過程中對(duì)數(shù)據(jù)庫的所有變更記錄并放入ThreadLocal;在Controller層切面攔截響應(yīng),從ThreadLocal提取出所有變更記錄,最后通過傳輸管理模塊將變更記錄同步共享給其他系統(tǒng),實(shí)現(xiàn)數(shù)據(jù)的高實(shí)時(shí)性增量共享。通過實(shí)驗(yàn)對(duì)比發(fā)現(xiàn)采集時(shí)間、發(fā)送時(shí)間相對(duì)于業(yè)務(wù)操作時(shí)間占比極低,這是因?yàn)閿?shù)據(jù)采集、發(fā)送等操作均在本地內(nèi)存中進(jìn)行,而業(yè)務(wù)操作依賴于數(shù)據(jù)庫網(wǎng)絡(luò)IO,所以該方案能夠?qū)崿F(xiàn)國(guó)產(chǎn)數(shù)據(jù)庫數(shù)據(jù)同步共享,同時(shí)具備較高的實(shí)時(shí)性和較低的侵入性。

    參考文獻(xiàn)

    [1]彭雅芳.FC上舞動(dòng)的NVMe:存儲(chǔ)部署的創(chuàng)新之舉[J].計(jì)算機(jī)與網(wǎng)絡(luò),2015(24):62.

    [2]劉鵬,李凡平,王堃.一種基于canal的數(shù)據(jù)庫雙向同步方法,介質(zhì)及設(shè)備:CN202211313441.8[P].2024-06-09.

    [3]陶慧玲,馬依琳,王曄,等.基于微服務(wù)的研究生信息系統(tǒng)數(shù)據(jù)同步方案研究與設(shè)計(jì)[J].華東師范大學(xué)學(xué)報(bào)(自然科學(xué)版),2024(2):42-52.

    [4]王天舉,許丹亞,尹文志,等.基于Kettle的鐵路數(shù)據(jù)接入的設(shè)計(jì)與實(shí)現(xiàn)[J].無線互聯(lián)科技,2023(8):79-82.

    [5]劉勝.基于增量ETL的分布式數(shù)據(jù)交換平臺(tái)的研究與實(shí)現(xiàn)[D].長(zhǎng)沙:國(guó)防科學(xué)技術(shù)大學(xué),2024.

    [6]滕歡.基于Spring3的數(shù)據(jù)讀寫分離技術(shù)研究[D].哈爾濱:哈爾濱工程大學(xué),2016.

    [7]龍濤,戴牡紅.Improving the Quality of Data in the Data Warehouse:2009國(guó)際信息技術(shù)與應(yīng)用論壇論文集(下)[C].重慶:計(jì)算機(jī)科學(xué),2009.

    [8]PATEL S,KATIYAR S K,SHARMA N.Metric Analysis for AOP and OOP programming paradigm[J].Journal of The Institution of Engineers,2023(1):215-220.

    [9]唐瑤.基于AOP攔截技術(shù)的精準(zhǔn)信息推送服務(wù)研究[D].哈爾濱:哈爾濱工程大學(xué),2016.

    [10]魏可源.深入分析ThreadLocal內(nèi)存泄漏問題[J].計(jì)算機(jī)與網(wǎng)絡(luò),2018(21):56.

    [11]白曉濤,陶智勇.高效Java后臺(tái)程序緩存用戶信息的研究[J].網(wǎng)絡(luò)新媒體技術(shù),2020(5):35-38.

    [12]周志明.深入理解Java虛擬機(jī)[M].北京:機(jī)械工業(yè)出版社,2011.

    [13]王志軍,姚文達(dá).Web API后端接口管理與應(yīng)用[J].智能計(jì)算機(jī)與應(yīng)用,2024(5):247-251.

    (編輯 "沈 強(qiáng))

    High real-time data synchronization sharing scheme of domestic database

    CUI" Yu, HE" Wei, LI" Gaoshang, YAO" Wanhua, YAO" Ke

    (The 28th Research Institute of China Electronics Technology Group Corporation, Nanjing 210028, China)

    Abstract: Faced with the problem of high real-time sharing and synchronization of database data in log format of some domestic non-public databases, a data synchronization sharing scheme based on ThreadLocal and dual aspects was designed. Collect all change records to the database in the process of Web request response in the Dao layer aspect, and temporarily store them in ThreadLocal; Intercept the response at the Controller layer, extract all change records from ThreadLocal, and finally share the change records to other systems through the transmission management module to achieve incremental sharing of database data. Through experimental comparison, it is found that the acquisition time and transmission time of the scheme account for a very low proportion compared with the business operation time. This is because the data acquisition and transmission operations are carried out in the local memory, and the business operation depends on the database network IO. Therefore, the scheme can realize the synchronous sharing of data in the domestic database, with high real-time and low intrusion.

    Key words: data sharing; aspect; ThreadLocal; domestic database; high real-time

    在线 av 中文字幕| 一个人免费在线观看的高清视频 | 国产免费一区二区三区四区乱码| 亚洲专区中文字幕在线| 捣出白浆h1v1| 欧美成狂野欧美在线观看| 窝窝影院91人妻| 久久久久久久久久久久大奶| 人人妻人人澡人人看| 高潮久久久久久久久久久不卡| 欧美激情久久久久久爽电影 | 99re6热这里在线精品视频| 大型av网站在线播放| 操美女的视频在线观看| 搡老熟女国产l中国老女人| 久久久精品区二区三区| 考比视频在线观看| 1024视频免费在线观看| 国产人伦9x9x在线观看| 国产精品一二三区在线看| h视频一区二区三区| 免费女性裸体啪啪无遮挡网站| 亚洲国产av新网站| 午夜91福利影院| 狠狠精品人妻久久久久久综合| 久久av网站| 男女边摸边吃奶| 大片电影免费在线观看免费| 欧美性长视频在线观看| 久久狼人影院| 色精品久久人妻99蜜桃| 久久久国产一区二区| 夜夜骑夜夜射夜夜干| 国产在线一区二区三区精| 啦啦啦 在线观看视频| 免费人妻精品一区二区三区视频| 91老司机精品| 久久久久久人人人人人| 日韩三级视频一区二区三区| 日本一区二区免费在线视频| 国产精品一区二区在线不卡| 另类精品久久| 亚洲av美国av| 99香蕉大伊视频| 50天的宝宝边吃奶边哭怎么回事| 每晚都被弄得嗷嗷叫到高潮| 久久久国产精品麻豆| 美女主播在线视频| 精品高清国产在线一区| 精品亚洲成a人片在线观看| 成人亚洲精品一区在线观看| 国产成人一区二区三区免费视频网站| 国产1区2区3区精品| 老司机靠b影院| 99精品欧美一区二区三区四区| 丝袜人妻中文字幕| 黄色a级毛片大全视频| 国产亚洲一区二区精品| 精品人妻熟女毛片av久久网站| a在线观看视频网站| 国产精品免费大片| 老司机在亚洲福利影院| 宅男免费午夜| 久9热在线精品视频| 人人澡人人妻人| 国产亚洲一区二区精品| 国产在线视频一区二区| 亚洲av男天堂| 岛国在线观看网站| 精品少妇黑人巨大在线播放| 欧美精品人与动牲交sv欧美| 国产精品 欧美亚洲| 9热在线视频观看99| 精品国产一区二区三区四区第35| 麻豆av在线久日| 熟女少妇亚洲综合色aaa.| 一本大道久久a久久精品| 丁香六月天网| 美女大奶头黄色视频| 亚洲avbb在线观看| 亚洲成人免费电影在线观看| 亚洲精品国产精品久久久不卡| 久久久国产成人免费| 天堂8中文在线网| 在线观看www视频免费| 亚洲第一青青草原| 制服诱惑二区| 中文字幕高清在线视频| 天天影视国产精品| 又大又爽又粗| 久久 成人 亚洲| 91字幕亚洲| 国产成人精品在线电影| 欧美黄色淫秽网站| 少妇 在线观看| 91麻豆精品激情在线观看国产 | 乱人伦中国视频| 亚洲性夜色夜夜综合| 桃花免费在线播放| 99热全是精品| 国产亚洲欧美在线一区二区| 人妻久久中文字幕网| 老司机在亚洲福利影院| 国产欧美日韩一区二区三 | a级毛片黄视频| 狠狠精品人妻久久久久久综合| 人妻 亚洲 视频| 国产免费福利视频在线观看| 三级毛片av免费| 精品少妇内射三级| 精品一区二区三卡| 欧美精品一区二区免费开放| xxxhd国产人妻xxx| 天天影视国产精品| 国产av又大| 中文字幕av电影在线播放| 丝瓜视频免费看黄片| 黑丝袜美女国产一区| 国产精品亚洲av一区麻豆| 超碰成人久久| 亚洲,欧美精品.| 欧美日韩福利视频一区二区| 人妻人人澡人人爽人人| 另类亚洲欧美激情| 香蕉国产在线看| 啦啦啦视频在线资源免费观看| 国产深夜福利视频在线观看| 一级片免费观看大全| 亚洲国产精品一区三区| 成人av一区二区三区在线看 | a 毛片基地| 免费在线观看完整版高清| 麻豆国产av国片精品| 美女福利国产在线| 午夜福利乱码中文字幕| 亚洲五月婷婷丁香| 国产1区2区3区精品| 精品亚洲成国产av| 十八禁人妻一区二区| 亚洲精品久久午夜乱码| 亚洲欧美色中文字幕在线| 美女大奶头黄色视频| 青青草视频在线视频观看| 午夜视频精品福利| 国产成人精品无人区| 男女国产视频网站| av线在线观看网站| 久久天躁狠狠躁夜夜2o2o| 国产精品一区二区免费欧美 | 777米奇影视久久| 亚洲欧美精品综合一区二区三区| 国产精品.久久久| 久久久久久亚洲精品国产蜜桃av| 亚洲精品第二区| 亚洲久久久国产精品| 视频区图区小说| 高清欧美精品videossex| h视频一区二区三区| tocl精华| 五月天丁香电影| 久久天堂一区二区三区四区| 久久这里只有精品19| 高清欧美精品videossex| 热99久久久久精品小说推荐| 菩萨蛮人人尽说江南好唐韦庄| 免费在线观看视频国产中文字幕亚洲 | 天天操日日干夜夜撸| 中国国产av一级| 亚洲精品国产av蜜桃| 51午夜福利影视在线观看| 男女国产视频网站| 久久久国产欧美日韩av| 成年人黄色毛片网站| 一区二区三区乱码不卡18| 精品一品国产午夜福利视频| 国产色视频综合| 99久久综合免费| 日韩 欧美 亚洲 中文字幕| 桃红色精品国产亚洲av| 亚洲自偷自拍图片 自拍| 欧美变态另类bdsm刘玥| 免费不卡黄色视频| 99热全是精品| 大陆偷拍与自拍| 国产成人啪精品午夜网站| 婷婷色av中文字幕| 久久精品国产亚洲av高清一级| 青春草亚洲视频在线观看| 亚洲 国产 在线| 精品国产一区二区三区久久久樱花| 老司机午夜十八禁免费视频| 国产欧美日韩一区二区精品| 中文字幕人妻丝袜一区二区| 国产一区二区三区综合在线观看| 男女免费视频国产| 三级毛片av免费| 欧美久久黑人一区二区| 老司机在亚洲福利影院| 日韩 欧美 亚洲 中文字幕| 国产亚洲欧美在线一区二区| 亚洲精品自拍成人| 如日韩欧美国产精品一区二区三区| 可以免费在线观看a视频的电影网站| 久久青草综合色| 亚洲自偷自拍图片 自拍| www.自偷自拍.com| 五月天丁香电影| 乱人伦中国视频| 日韩三级视频一区二区三区| 欧美亚洲 丝袜 人妻 在线| 久久久国产一区二区| 久久精品国产综合久久久| 国产一级毛片在线| 宅男免费午夜| 视频在线观看一区二区三区| 91大片在线观看| 久久久久久人人人人人| a在线观看视频网站| 国产亚洲精品一区二区www | 麻豆乱淫一区二区| 国产亚洲精品久久久久5区| 91老司机精品| 美女中出高潮动态图| 亚洲一卡2卡3卡4卡5卡精品中文| 久久久久国产精品人妻一区二区| 免费观看人在逋| 亚洲情色 制服丝袜| 国产野战对白在线观看| 最黄视频免费看| 国产老妇伦熟女老妇高清| 久久久久精品人妻al黑| 丰满人妻熟妇乱又伦精品不卡| 好男人电影高清在线观看| 免费看十八禁软件| 下体分泌物呈黄色| 最近中文字幕2019免费版| 久久影院123| 国产亚洲精品第一综合不卡| 午夜精品久久久久久毛片777| 在线十欧美十亚洲十日本专区| 亚洲国产日韩一区二区| 多毛熟女@视频| av在线app专区| 亚洲美女黄色视频免费看| 免费在线观看视频国产中文字幕亚洲 | 欧美亚洲 丝袜 人妻 在线| 91大片在线观看| 亚洲欧美色中文字幕在线| 久久人妻熟女aⅴ| 国产男人的电影天堂91| 亚洲欧美日韩另类电影网站| 婷婷成人精品国产| 亚洲色图综合在线观看| 美女福利国产在线| 伊人久久大香线蕉亚洲五| 国产真人三级小视频在线观看| 久久女婷五月综合色啪小说| 午夜福利在线观看吧| 中文字幕人妻熟女乱码| 久久久久精品国产欧美久久久 | 久久精品亚洲熟妇少妇任你| 蜜桃国产av成人99| 国产真人三级小视频在线观看| 90打野战视频偷拍视频| 亚洲美女黄色视频免费看| www.熟女人妻精品国产| 一区二区三区激情视频| 十八禁网站免费在线| 极品人妻少妇av视频| 国产精品久久久久成人av| 午夜福利视频在线观看免费| 亚洲人成77777在线视频| 亚洲精品乱久久久久久| 久久人人爽人人片av| 国产一区二区三区综合在线观看| 免费高清在线观看视频在线观看| 777米奇影视久久| 老熟妇乱子伦视频在线观看 | 国产精品久久久人人做人人爽| 亚洲精品日韩在线中文字幕| 99国产精品99久久久久| 国产淫语在线视频| 中文字幕人妻熟女乱码| 手机成人av网站| 免费在线观看完整版高清| 欧美在线一区亚洲| 男女高潮啪啪啪动态图| 下体分泌物呈黄色| 在线精品无人区一区二区三| 久9热在线精品视频| 国产成人免费无遮挡视频| 欧美精品高潮呻吟av久久| 亚洲精品中文字幕一二三四区 | 成人黄色视频免费在线看| 窝窝影院91人妻| 韩国精品一区二区三区| 黄色视频不卡| 国产黄色免费在线视频| 在线观看免费高清a一片| 亚洲第一av免费看| 后天国语完整版免费观看| 亚洲成人手机| 午夜影院在线不卡| 国产欧美日韩一区二区精品| 成年人午夜在线观看视频| 久久亚洲国产成人精品v| 老司机午夜十八禁免费视频| 亚洲va日本ⅴa欧美va伊人久久 | 亚洲黑人精品在线| 人人澡人人妻人| 久久久久久人人人人人| 最近最新免费中文字幕在线| 亚洲av片天天在线观看| 久热这里只有精品99| 一区二区av电影网| 亚洲专区国产一区二区| 国产精品九九99| 亚洲国产欧美在线一区| 久久久久久久大尺度免费视频| 亚洲av欧美aⅴ国产| 中文字幕高清在线视频| 亚洲精品久久成人aⅴ小说| 18禁黄网站禁片午夜丰满| 一级黄色大片毛片| 午夜福利免费观看在线| 伦理电影免费视频| 欧美日韩亚洲高清精品| 69av精品久久久久久 | 国产成+人综合+亚洲专区| 18禁国产床啪视频网站| 国产97色在线日韩免费| 悠悠久久av| 一级片免费观看大全| 91精品国产国语对白视频| 日韩欧美一区二区三区在线观看 | 精品亚洲成a人片在线观看| 18在线观看网站| 一本大道久久a久久精品| 人人妻人人爽人人添夜夜欢视频| 丝袜在线中文字幕| 亚洲成人国产一区在线观看| 三级毛片av免费| 黑人巨大精品欧美一区二区mp4| 亚洲国产日韩一区二区| 久久精品久久久久久噜噜老黄| 91精品国产国语对白视频| 老汉色∧v一级毛片| 精品少妇黑人巨大在线播放| 日韩中文字幕视频在线看片| 国产成人欧美| 日本a在线网址| 精品少妇久久久久久888优播| 亚洲伊人色综图| 亚洲激情五月婷婷啪啪| 热re99久久国产66热| h视频一区二区三区| 免费观看人在逋| 高清av免费在线| 美女视频免费永久观看网站| 国产精品自产拍在线观看55亚洲 | 国产日韩欧美在线精品| 日韩人妻精品一区2区三区| 国产精品 欧美亚洲| 欧美日韩黄片免| 国产精品.久久久| 首页视频小说图片口味搜索| 亚洲成人免费电影在线观看| 在线看a的网站| 亚洲精品国产一区二区精华液| 亚洲精品中文字幕在线视频| 国产一区二区三区综合在线观看| 黄色片一级片一级黄色片| 99九九在线精品视频| 青春草视频在线免费观看| 老鸭窝网址在线观看| www.熟女人妻精品国产| 飞空精品影院首页| 精品视频人人做人人爽| 精品国产一区二区三区久久久樱花| 午夜老司机福利片| 多毛熟女@视频| 秋霞在线观看毛片| 成人免费观看视频高清| 久久这里只有精品19| 久久精品亚洲熟妇少妇任你| 亚洲第一av免费看| 久久精品成人免费网站| 国产1区2区3区精品| 天天躁狠狠躁夜夜躁狠狠躁| 亚洲一区二区三区欧美精品| 黄色a级毛片大全视频| 日本91视频免费播放| 中亚洲国语对白在线视频| 亚洲色图综合在线观看| 亚洲国产毛片av蜜桃av| 亚洲黑人精品在线| 久久久久久久精品精品| tube8黄色片| av福利片在线| 久久精品亚洲熟妇少妇任你| 国产欧美日韩精品亚洲av| 久久这里只有精品19| 久久精品亚洲熟妇少妇任你| 人人妻人人爽人人添夜夜欢视频| 最新在线观看一区二区三区| 久热爱精品视频在线9| 欧美老熟妇乱子伦牲交| 大香蕉久久成人网| 国产在视频线精品| 欧美午夜高清在线| 中文欧美无线码| 国产精品久久久久成人av| kizo精华| 在线观看免费午夜福利视频| 在线十欧美十亚洲十日本专区| 啦啦啦 在线观看视频| 亚洲avbb在线观看| 999久久久国产精品视频| 日本a在线网址| 欧美国产精品一级二级三级| 亚洲伊人色综图| 中文字幕人妻熟女乱码| 黄网站色视频无遮挡免费观看| cao死你这个sao货| 夜夜骑夜夜射夜夜干| 欧美黄色片欧美黄色片| 中文字幕人妻熟女乱码| 国产精品久久久久成人av| 人妻一区二区av| 各种免费的搞黄视频| 不卡一级毛片| 男女之事视频高清在线观看| 免费在线观看日本一区| 97在线人人人人妻| 国产精品成人在线| 欧美精品啪啪一区二区三区 | 中文字幕另类日韩欧美亚洲嫩草| 国产高清国产精品国产三级| 亚洲专区中文字幕在线| 视频在线观看一区二区三区| 天天躁日日躁夜夜躁夜夜| 久久久精品免费免费高清| bbb黄色大片| 久久久久国产精品人妻一区二区| 亚洲人成77777在线视频| 中国国产av一级| 巨乳人妻的诱惑在线观看| 中文欧美无线码| 女性被躁到高潮视频| 国产精品九九99| 男女国产视频网站| 国产精品麻豆人妻色哟哟久久| 成年人黄色毛片网站| 亚洲午夜精品一区,二区,三区| 精品福利永久在线观看| 窝窝影院91人妻| 日韩欧美一区二区三区在线观看 | 巨乳人妻的诱惑在线观看| 亚洲人成电影免费在线| 每晚都被弄得嗷嗷叫到高潮| 香蕉国产在线看| 999精品在线视频| 免费高清在线观看视频在线观看| 一级黄色大片毛片| 午夜福利在线观看吧| 水蜜桃什么品种好| 一级片免费观看大全| 午夜激情av网站| 交换朋友夫妻互换小说| 男人爽女人下面视频在线观看| 最近最新中文字幕大全免费视频| 免费在线观看视频国产中文字幕亚洲 | 久久精品亚洲av国产电影网| 99热全是精品| 亚洲av国产av综合av卡| 黄色视频在线播放观看不卡| 免费观看av网站的网址| 高清欧美精品videossex| 亚洲 国产 在线| 午夜精品久久久久久毛片777| 韩国高清视频一区二区三区| 制服诱惑二区| 少妇粗大呻吟视频| 久久九九热精品免费| 亚洲精品第二区| 这个男人来自地球电影免费观看| 亚洲午夜精品一区,二区,三区| 成在线人永久免费视频| 亚洲情色 制服丝袜| 精品一区二区三卡| 18禁裸乳无遮挡动漫免费视频| 12—13女人毛片做爰片一| 久久久久久久久久久久大奶| 一边摸一边抽搐一进一出视频| 国产精品久久久久久人妻精品电影 | 免费久久久久久久精品成人欧美视频| 精品一品国产午夜福利视频| 免费久久久久久久精品成人欧美视频| 一区福利在线观看| 亚洲免费av在线视频| 精品人妻1区二区| 热99re8久久精品国产| 国产无遮挡羞羞视频在线观看| 亚洲精华国产精华精| 久久久久网色| 最近最新中文字幕大全免费视频| 欧美性长视频在线观看| 久久99一区二区三区| 国产成+人综合+亚洲专区| 国产男女超爽视频在线观看| 男男h啪啪无遮挡| kizo精华| 国产精品免费大片| 无遮挡黄片免费观看| 国产区一区二久久| 丝袜在线中文字幕| 两性夫妻黄色片| 国产亚洲一区二区精品| 国产黄频视频在线观看| 午夜两性在线视频| a级毛片在线看网站| 五月天丁香电影| 最近中文字幕2019免费版| 美女福利国产在线| 国产亚洲欧美在线一区二区| av在线播放精品| 亚洲精品美女久久久久99蜜臀| 久久久久久久久免费视频了| 日韩电影二区| 久久九九热精品免费| 亚洲自偷自拍图片 自拍| 90打野战视频偷拍视频| 久久久久视频综合| 国产视频一区二区在线看| 亚洲五月婷婷丁香| 纯流量卡能插随身wifi吗| 国产极品粉嫩免费观看在线| 妹子高潮喷水视频| 亚洲国产精品一区二区三区在线| 搡老熟女国产l中国老女人| 国产精品自产拍在线观看55亚洲 | 欧美老熟妇乱子伦牲交| 欧美精品av麻豆av| 男女无遮挡免费网站观看| 中文字幕色久视频| 精品人妻一区二区三区麻豆| 女人精品久久久久毛片| videos熟女内射| 亚洲成国产人片在线观看| 波多野结衣av一区二区av| av片东京热男人的天堂| 欧美日韩亚洲高清精品| 国产欧美日韩综合在线一区二区| 国产在线一区二区三区精| 老司机福利观看| 欧美黑人精品巨大| 亚洲欧美日韩高清在线视频 | 亚洲av日韩在线播放| 夜夜夜夜夜久久久久| 精品一品国产午夜福利视频| 亚洲情色 制服丝袜| 欧美黑人欧美精品刺激| 伦理电影免费视频| 19禁男女啪啪无遮挡网站| 美国免费a级毛片| 1024视频免费在线观看| 久久久久久人人人人人| 久久久久视频综合| 国产不卡av网站在线观看| 亚洲欧美日韩高清在线视频 | 一区二区日韩欧美中文字幕| 一级片'在线观看视频| 久久精品国产亚洲av香蕉五月 | 久久久久精品人妻al黑| 中文字幕高清在线视频| 国产精品自产拍在线观看55亚洲 | 成年人免费黄色播放视频| 高潮久久久久久久久久久不卡| videosex国产| 欧美 亚洲 国产 日韩一| 少妇裸体淫交视频免费看高清 | 成人免费观看视频高清| 亚洲欧美日韩高清在线视频 | 高清黄色对白视频在线免费看| 一级黄色大片毛片| 久久久国产成人免费| 97在线人人人人妻| 美女扒开内裤让男人捅视频| 亚洲av美国av| 精品国产国语对白av| 男女下面插进去视频免费观看| 天堂俺去俺来也www色官网| 黄色片一级片一级黄色片| 在线观看一区二区三区激情| svipshipincom国产片| 国产又色又爽无遮挡免| 国产成人a∨麻豆精品| 亚洲七黄色美女视频| 妹子高潮喷水视频| 首页视频小说图片口味搜索| 久久天堂一区二区三区四区| 色视频在线一区二区三区| 亚洲男人天堂网一区| 国精品久久久久久国模美| 51午夜福利影视在线观看| 建设人人有责人人尽责人人享有的| 在线观看免费午夜福利视频| 黑人巨大精品欧美一区二区蜜桃| 色婷婷av一区二区三区视频| 久久精品国产亚洲av香蕉五月 | 成人亚洲精品一区在线观看| 欧美人与性动交α欧美软件| 在线看a的网站| 午夜激情av网站| 制服诱惑二区|