久久福利_99r_国产日韩在线视频_直接看av的网站_中文欧美日韩_久久一

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

Spring Batch遠(yuǎn)程分區(qū)的本地Jar包模式的代碼詳解

瀏覽:33日期:2023-08-14 14:35:11

1 前言

Spring Batch遠(yuǎn)程分區(qū)對(duì)于大量數(shù)據(jù)的處理非常擅長(zhǎng),它的實(shí)現(xiàn)有多種方式,如本地Jar包模式、MQ模式、Kubernetes模式。這三種模式的如下:

(1)本地Jar包模式:分區(qū)處理的worker為一個(gè)Java進(jìn)程,從jar包啟動(dòng),通過(guò)jvm參數(shù)和數(shù)據(jù)庫(kù)傳遞參數(shù);官方提供示例代碼。

(2)MQ模式:worker是一個(gè)常駐進(jìn)程,Manager和Worker通過(guò)消息隊(duì)列來(lái)傳遞參數(shù);網(wǎng)上有不少相關(guān)示例代碼。

(3)Kubernetes模式:worker為K8s中的Pod,Manager直接啟動(dòng)Pod來(lái)處理;網(wǎng)上并沒(méi)有找到任何示例代碼。

本文將通過(guò)代碼來(lái)講解第一種模式(本地Jar包模式),其它后續(xù)再介紹。

Spring Batch遠(yuǎn)程分區(qū)的本地Jar包模式的代碼詳解

建議先看下面文章了解一下:

Spring Batch入門:Spring Batch入門教程篇

Spring Batch并行處理介紹:詳解SpringBoot和SpringBatch 使用

2 代碼講解

本文代碼中,Manager和Worker是放在一起的,在同一個(gè)項(xiàng)目里,也只會(huì)打一個(gè)jar包而已;我們通過(guò)profile來(lái)區(qū)別是manager還是worker,也就是通過(guò)Spring Profile實(shí)現(xiàn)一份代碼,兩份邏輯。實(shí)際上也可以拆成兩份代碼,但放一起更方便測(cè)試,而且代碼量不大,就沒(méi)有必要了。

2.1 項(xiàng)目準(zhǔn)備

2.1.1 數(shù)據(jù)庫(kù)

首先我們需要準(zhǔn)備一個(gè)數(shù)據(jù)庫(kù),因?yàn)镸anager和Worker都需要同步狀態(tài)到DB上,不能直接使用嵌入式的內(nèi)存數(shù)據(jù)庫(kù)了,需要一個(gè)外部可共同訪問(wèn)的數(shù)據(jù)庫(kù)。這里我使用的是H2 Database,安裝可參考:把H2數(shù)據(jù)庫(kù)從jar包部署到Kubernetes,并解決Ingress不支持TCP的問(wèn)題。

2.1.2 引入依賴

maven引入依賴如下所示:

<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-batch</artifactId></dependency><dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-task</artifactId></dependency><dependency> <groupId>com.h2database</groupId> <artifactId>h2</artifactId> <scope>runtime</scope></dependency><dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-deployer-local</artifactId> <version>2.4.1</version></dependency><dependency> <groupId>org.springframework.batch</groupId> <artifactId>spring-batch-integration</artifactId></dependency>

spring-cloud-deployer-local用于部署和啟動(dòng)worker,非常關(guān)鍵;其它就是Spring Batch和Task相關(guān)的依賴;以及數(shù)據(jù)庫(kù)連接。

2.1.3 主類入口

Springboot的主類入口如下:

@EnableTask@SpringBootApplication@EnableBatchProcessingpublic class PkslowRemotePartitionJar { public static void main(String[] args) { SpringApplication.run(PkslowRemotePartitionJar.class, args); }}

在Springboot的基礎(chǔ)上,添加了Spring Batch和Spring Cloud Task的支持。

2.2 關(guān)鍵代碼編寫

前面的數(shù)據(jù)庫(kù)搭建和其它代碼沒(méi)有太多可講的,接下來(lái)就開(kāi)始關(guān)鍵代碼的編寫。

2.2.1 分區(qū)管理Partitioner

Partitioner是遠(yuǎn)程分區(qū)中的核心bean,它定義了分成多少個(gè)區(qū)、怎么分區(qū),要把什么變量傳遞給worker。它會(huì)返回一組<分區(qū)名,執(zhí)行上下文>的鍵值對(duì),即返回Map<String, ExecutionContext>。把要傳遞給worker的變量放在ExecutionContext中去,支持多種類型的變量,如String、int、long等。實(shí)際上,我們不建議通過(guò)ExecutionContext來(lái)傳遞太多數(shù)據(jù);可以傳遞一些標(biāo)識(shí)或主鍵,然后worker自己去拿數(shù)據(jù)即可。

具體代碼如下:

private static final int GRID_SIZE = 4;@Beanpublic Partitioner partitioner() { return new Partitioner() { @Override public Map<String, ExecutionContext> partition(int gridSize) { Map<String, ExecutionContext> partitions = new HashMap<>(gridSize); for (int i = 0; i < GRID_SIZE; i++) { ExecutionContext executionContext = new ExecutionContext(); executionContext.put('partitionNumber', i); partitions.put('partition' + i, executionContext); } return partitions; } };}

上面分成4個(gè)區(qū),程序會(huì)啟動(dòng)4個(gè)worker來(lái)處理;給worker傳遞的參數(shù)是partitionNumber。

2.2.2 分區(qū)處理器PartitionHandler

PartitionHandler也是核心的bean,它決定了怎么去啟動(dòng)worker,給它們傳遞什么jvm參數(shù)(跟之前的ExecutionContext傳遞不一樣)。

@Beanpublic PartitionHandler partitionHandler(TaskLauncher taskLauncher, JobExplorer jobExplorer, TaskRepository taskRepository) throws Exception { Resource resource = this.resourceLoader.getResource(workerResource); DeployerPartitionHandler partitionHandler = new DeployerPartitionHandler(taskLauncher, jobExplorer, resource, 'workerStep', taskRepository); List<String> commandLineArgs = new ArrayList<>(3); commandLineArgs.add('--spring.profiles.active=worker'); commandLineArgs.add('--spring.cloud.task.initialize-enabled=false'); commandLineArgs.add('--spring.batch.initializer.enabled=false'); partitionHandler .setCommandLineArgsProvider(new PassThroughCommandLineArgsProvider(commandLineArgs)); partitionHandler .setEnvironmentVariablesProvider(new SimpleEnvironmentVariablesProvider(this.environment)); partitionHandler.setMaxWorkers(2); partitionHandler.setApplicationName('PkslowWorkerJob'); return partitionHandler;}

上面代碼中:

resource是worker的jar包地址,表示將啟動(dòng)該程序;

workerStep是worker將要執(zhí)行的step;

commandLineArgs定義了啟動(dòng)worker的jvm參數(shù),如--spring.profiles.active=worker;

environment是manager的系統(tǒng)環(huán)境變量,可以傳遞給worker,當(dāng)然也可以選擇不傳遞;

MaxWorkers是最多能同時(shí)啟動(dòng)多少個(gè)worker,類似于線程池大??;設(shè)置為2,表示最多同時(shí)有2個(gè)worker來(lái)處理4個(gè)分區(qū)。

2.2.3 Manager和Worker的Batch定義

完成了分區(qū)相關(guān)的代碼,剩下的就只是如何定義Manager和Worker的業(yè)務(wù)代碼了。

Manager作為管理者,不用太多業(yè)務(wù)邏輯,代碼如下:

@Bean@Profile('!worker')public Job partitionedJob(PartitionHandler partitionHandler) throws Exception { Random random = new Random(); return this.jobBuilderFactory.get('partitionedJob' + random.nextInt()) .start(step1(partitionHandler)) .build();}@Beanpublic Step step1(PartitionHandler partitionHandler) throws Exception { return this.stepBuilderFactory.get('step1') .partitioner(workerStep().getName(), partitioner()) .step(workerStep()) .partitionHandler(partitionHandler) .build();}

Worker主要作用是處理數(shù)據(jù),是我們的業(yè)務(wù)代碼,這里就演示一下如何獲取Manager傳遞過(guò)來(lái)的partitionNumber:

@Beanpublic Step workerStep() { return this.stepBuilderFactory.get('workerStep') .tasklet(workerTasklet(null, null)) .build();}@Bean@StepScopepublic Tasklet workerTasklet(final @Value('#{stepExecutionContext[’partitionNumber’]}') Integer partitionNumber) { return new Tasklet() { @Override public RepeatStatus execute(StepContribution contribution, ChunkContext chunkContext) throws Exception { Thread.sleep(6000); //增加延時(shí),查看效果,通過(guò)jps:在jar情況下會(huì)新起java進(jìn)程 System.out.println('This tasklet ran partition: ' + partitionNumber); return RepeatStatus.FINISHED; } };}

通過(guò)表達(dá)式@Value('#{stepExecutionContext[’partitionNumber’]}') 獲取Manager傳遞過(guò)來(lái)的變量;注意要加注解@StepScope。

3 程序運(yùn)行

因?yàn)槲覀兎譃镸anager和Worker,但都是同一份代碼,所以我們先打包一個(gè)jar出來(lái),不然manager無(wú)法啟動(dòng)。配置數(shù)據(jù)庫(kù)和Worker的jar包地址如下:

spring.datasource.url=jdbc:h2:tcp://localhost:9092/testspring.datasource.username=pkslowspring.datasource.password=pkslowspring.datasource.driver-class-name=org.h2.Driverpkslow.worker.resource=file://pkslow/target/remote-partitioning-jar-1.0-SNAPSHOT.jar

執(zhí)行程序如下:

Spring Batch遠(yuǎn)程分區(qū)的本地Jar包模式的代碼詳解

可以看到啟動(dòng)了4次Java程序,還給出日志路徑。

通過(guò)jps命令查看,能看到一個(gè)Manager進(jìn)程,還有兩個(gè)worker進(jìn)程:

Spring Batch遠(yuǎn)程分區(qū)的本地Jar包模式的代碼詳解

4 復(fù)雜變量傳遞

前面講了Manager可以通過(guò)ExecutionContext傳遞變量,如簡(jiǎn)單的String、long等。但其實(shí)它也是可以傳遞復(fù)雜的Java對(duì)象的,但對(duì)應(yīng)的類需要可序列化,如:

import java.io.Serializable;public class Person implements Serializable { private Integer age; private String name; private String webSite; //getter and setter}

Manager傳遞:

executionContext.put('person', new Person(0, 'pkslow', 'www.pkslow.com'));

Worker接收:

@Value('#{stepExecutionContext[’person’]}') Person person

5 總結(jié)

本文介紹了Spring Batch遠(yuǎn)程分區(qū)的本地Jar包模式,只能在一臺(tái)機(jī)器上運(yùn)行,所以也是無(wú)法真正發(fā)揮出遠(yuǎn)程分區(qū)的作用。但它對(duì)我們后續(xù)理解更復(fù)雜的模式是有很大幫助的;同時(shí),我們也可以使用本地模式進(jìn)行開(kāi)發(fā)測(cè)試,畢竟它只需要一個(gè)數(shù)據(jù)庫(kù)就行了,依賴很少。

標(biāo)簽: Spring
相關(guān)文章:
主站蜘蛛池模板: 欧美亚洲一区 | 欧美视频三区 | 欧美精品在线一区 | 国产在线2 | 国产成人综合一区二区三区 | av黄色在线免费观看 | 三级视频在线观看 | 大象视频成人在线观看 | 人人射人人舔 | 日本色网址 | 91在线电影| 亚洲高清视频一区二区三区 | www国产高清 | 毛片网站大全 | 久久精品一区二区三区四区 | 久久久久久久一区 | 久久精品视频网站 | 综合久久99 | 亚洲国产精品99久久久久久久久 | 国产精品国产三级国产aⅴ 精品91 | 国产一区二区三区免费在线 | 亚洲综合色视频在线观看 | 影音先锋国产 | 99久久免费视频在线观看 | 在线播放三级 | 久久伊人一区 | 成人亚洲精品久久久久软件 | 狠狠爱www人成狠狠爱综合网 | 久久综合一区 | 欧美成a| 国产性色av | 午夜影院在线 | 久久小视频 | 免费观看特级毛片 | 亚洲精品国产剧情久久9191 | 一区二区三区在线 | 国内自拍视频在线观看 | 丁香婷婷在线 | av在线免费看片 | 欧美在线不卡 | 亚洲福利小视频 | 毛片av片 | 国产精品久久久久久久 | 午夜在线电影 | 偷拍做爰吃奶视频免费看 | 亚洲午夜性视频 | 国产精品毛片久久久久久久 | 国产精品美女av | 精品亚洲一区二区三区 | 91精品一区二区三区久久久久久 | 91精品国产综合久久久亚洲 | www.久久精品视频 | 亚洲中出 | 日韩城人免费 | 国产精品成人在线 | 国产人成精品一区二区三 | 国产欧美日韩综合精品一区二区 | 免费观看日韩av | 久久久99精品免费观看 | 精品视频久久 | 午夜爽爽爽| 亚洲一区二区免费看 | 一级黄色片子看看 | 羞羞网页| 在线精品亚洲欧美日韩国产 | 国产真实乱全部视频 | 国产精品视频一二三区 | 久久99国产精品 | 国产午夜视频 | 毛片网| 精品国产成人 | 天天干夜夜操 | 国产91在线播放精品91 | 噜噜噜噜狠狠狠7777视频 | 国产精品一区亚洲二区日本三区 | 四虎影院网站 | 欧美日韩国产精品一区二区 | 一区二区三区国产精品 | 久久亚洲国产 | 天堂中文资源在线 | 在线中文字幕视频 | 精品久久久免费视频 | 国产精品毛片久久久久久 | 国产一区二区三区四区五区加勒比 | 国产精品免费观看 | 欧美视频在线一区 | 欧美日韩国产一区二区三区 | 国产精品无码专区在线观看 | 日韩美女av在线 | 国产高清精品在线 | 激情五月综合网 | 精品在线一区二区 | 少妇精品久久久久久久久久 | 国产午夜视频 | 福利视频一 | 成人免费黄色小视频 | 九九99九九精彩46 | 欧美久久精品 | 成人免费视频网站在线观看 | 成人a级网站 | 日韩av一区二区三区在线观看 | 国产精品一区二区久久 | 国产一级黄色大片 | 欧美亚洲日本 | 久久视频在线 | 欧美视频免费在线 | 久久精品小视频 | 久久精品亚洲精品国产欧美 | www久久久久久久 | 青青操天天干 | 在线亚洲成人 | 美女天堂| 91视频8mav | 人人干在线| 中国大陆高清aⅴ毛片 | 亚洲二区在线 | 欧美一区二区三区在线观看视频 | 先锋影音在线观看 | 人人人人人你人人人人人 | 无码日韩精品一区二区免费 | 日韩av一区二区在线观看 | 91久久国产综合久久蜜月精品 | 天堂av中文在线 | 一级做a爰片毛片 | 在线日韩欧美 | 91免费版在线观看 | 日本涩涩网站 | 狠狠综合久久 | 一区二区国产精品 | 日韩成人免费 | 99re6热在线精品视频播放 | 国产视频三区 | 自拍视频网 | 国产精品久久久久国产a级 欧美日本韩国一区二区 | 国产四区 | 懂色av一区二区三区在线播放 | 精品少妇一区二区三区日产乱码 | 成人免费毛片嘿嘿连载视频 | 国产亚洲欧美一区二区三区 | 国产二区在线播放 | 日韩在线欧美 | 国产日韩欧美一区二区在线观看 | 免费看的毛片 | 91麻豆精品国产91久久久资源速度 | 日韩电影一区二区三区 | 欧美日韩一区电影 | 91在线精品一区二区 | 美女超碰| 国产午夜精品一区二区三区视频 | 人妖天堂狠狠ts人妖天堂狠狠 | www.日韩在线观看 | 亚洲国产成人久久综合一区,久久久国产99 | 国精品一区 | av在线网址观看 | 精品一区免费 | 欧美一级欧美三级在线观看 | 不卡一区| 欧美精品成人一区二区三区四区 | 精品成人| 国产精品国产精品国产专区不卡 | av天天干| а_天堂中文最新版地址 | 免费一区二区三区 | 欧美一区二区三区黄色 | 成人美女免费网站视频 | 欧美aaa一级片 | 日韩久久综合 | 一区在线视频观看 | 国产精品国产三级国产aⅴ中文 | 中文字幕国产视频 | 青青草久草在线 | 国产成年人小视频 | 成人午夜精品久久久久久久蜜臀 | 天天干天天草 | 一区二区日本 | 狠狠爱天天操 | 欧美国产日韩一区 | 亚洲一区久久久 | 亚洲精品久久久久久一区二区 | 国产高清视频一区 | 久草青青 | 国产精品日韩精品 | 日本三级做a全过程在线观看 | a一级免费视频 | 亚洲视频中文字幕 | 在线高清av | 超碰97免费在线 | 97久久精品午夜一区二区 | av午夜电影| 国产成在线观看免费视频 | 精品护士一区二区三区 | 国产精品久久久久久亚洲调教 | 老妇激情毛片免费 | 国产乱码精品一区二区三 | 国产一级特黄aaa | 日操| 亚洲欧美日韩另类精品一区二区三区 | 国产三级自拍 | 影音先锋亚洲资源 | 亚洲久久一区 | 亚洲成人av | 手机久久看片 | 国产成人免费视频 | 91免费看| 亚洲精品国精品久久99热 | 国产欧美精品区一区二区三区 | 欧美理论片在线观看 | 久在草视频 | 亚洲精品久久久久久一区二区 | 中文字幕一区二区三区乱码在线 | 国产成人精品在线 | 亚洲激情一区二区 | 国产欧美精品一区二区三区 | 国产激情久久久久久 | 日韩另类| 亚洲欧美日韩天堂 | 亚洲精品福利视频 | 国产精品美女久久久久久久久久久 | 91中文字幕在线 | 探花在线观看 | 最新国产在线视频 | 国内精品久久久久 | 国产精品久久久久久久久久久免费看 | 成人午夜免费视频 | 国产精品亚洲一区二区三区在线 | 欧美区国产| 香蕉久久久久久 | 亚洲精品视频在线看 | 日韩一区二区在线观看 | 男人的天堂视频 | 成人精品久久 | 精品国产三级 | 国产一区二区在线免费观看 | 久久久久久亚洲精品 | 中文字幕2021 | av在线中文 | 欧美天堂在线观看 | 91精品国产综合久久精品 | 国产欧美日本 | 亚洲精品成人 | 久久国产欧美一区二区三区精品 | 国产一区二区影院 | 亚洲一级黄色 | 天天草av| 国产 亚洲 网红 主播 | 日韩不卡在线 | 欧美一区二区三区精品免费 | 亚洲福利av| 欧美二区在线 | 日韩欧美一级 | 亚洲国产精品99久久久久久久久 | 香蕉视频在线看 | 欧美八区 | 久久综合成人精品亚洲另类欧美 | 日本午夜网 | 国产精品成人国产乱一区 | 精品一区二区视频 | 色综合久久久久综合99 | 日本一二三区在线 | 久久久蜜桃 | 国产激情在线观看 | 国产精品久久久久aaaa九色 | 国产高清视频在线 | 国产精品国产三级国产aⅴ 羞羞的视频在线 | 亚洲久草 | 国产片淫级awww | 一二三区视频 | 亚洲午夜精品在线观看 | 日韩一级电影在线 | 国产精品s色 | 国产精品视频免费 | 久久男人天堂 | 欧美成人精品一区二区三区 | 免费观看一区二区三区毛片 | 亚洲a网| 狠狠综合 | 天天操天天插天天干 | 亚洲精品国产高清 | www.788.com色淫免费 | 国产在线观看 | 久久精品在线 | 午夜免费电影 | 韩国精品一区 | 成人在线看片 | 中文在线一区 | 亚洲欧洲一区二区 | 国产精品久久嫩一区二区免费 | 91短视频版在线观看免费大全 | 久久草视频 | 欧美精品在线观看 | 日韩a级免费视频 | 国产精品视频久久久 | 91精品久久| 成人综合在线观看 | 久久成人精品视频 | 国产精品美女视频 | 午夜资源 | 精品国产31久久久久久 | 久久国产精品视频 | 天堂久久久久 | 日韩一二三区 | 蜜臀视频在线观看 | 99久久电影| 一级在线| 久草精品视频 | 99精品视频在线 | 91高清视频在线观看 | 欧美高清视频在线观看 | 久久亚洲天堂 | av在线毛片 | 日韩精品一区二区三区在线观看 | 久久久久久日产精品 | 亚洲国产精品va在线看黑人 | 亚洲二区在线 | 精品国产91乱码一区二区三区 | 97视频在线免费观看 | 久久国产亚洲 | 99热精品在线| 久久久久久久一区 | 欧美一区二区三区在线看 | 久久久国产精品 | 日韩h视频 | www日韩| 国产精品第2页 | 美女诱惑av| 国产精品夜间视频香蕉 | 呦一呦二在线精品视频 | 亚洲人成人一区二区在线观看 | 在线观看欧美一区二区三区 | 中文字幕 在线观看 | 婷婷色国产偷v国产偷v小说 | 中文字字幕在线观看 | 欧美成人高清视频 | 午夜视频| 美女福利视频网站 | 成人亚洲在线观看 | 视频在线一区 | 日韩成人在线播放 | 欧美一级淫片007 | 国产精品久久久久久久一区探花 | 国产精品1区2区3区 中文字幕一区二区三区四区 | 国产一级黄色 | 怡红院成人影院 | 很黄很色很爽的视频 | 亚洲 欧美 综合 | 中文字幕欧美日韩 | 精品国产三级 | 婷婷久久综合九色综合绿巨人 | 日韩精品 电影一区 亚洲 | 久久久久九九九九九 | 欧美在线视频三区 | 日本一区二区不卡 | 四虎免费紧急入口观看 | 日韩第1页 | 国产精品成人在线观看 | 亚洲欧洲tv | 米奇狠狠狠狠8877 | 久久久久久亚洲精品 | 亚洲黄色免费 | 久久一区 | 婷婷久久综合九色综合绿巨人 | 欧美性受 | 亚洲视频在线观看 | 日韩久久精品一区二区 | 91在线视频播放 | 四虎免费紧急入口观看 | 久久久久亚洲一区二区三区 | 一级毛片在线播放 | 91精品久久久久久9s密挑 | 欧美成人影院在线 | 精品一区二区三区久久 | 国产精品久久久久久久久免费桃花 | 欧美国产在线观看 | 色成人免费网站 | 国产精品久久久久无码av | 高清av网站 | 亚洲综合无码一区二区 | 欧美成年黄网站色视频 | 国产高清在线精品一区二区三区 | 久久综合色88 | 精品一区二区久久久久久久网站 | 精品久久久久久久 | 9久久| 国产精品1 | 黄色免费在线观看网址 | 久久蜜桃精品一区二区三区综合网 | 欧美激情伊人 | 四虎成人在线视频 | 91色视频在线观看 | 日本久久精品视频 | 国产黄色一级大片 | 不卡一区 | 精品国产一区二区三区久久久久久 | 成年视频在线观看福利资源 | 国产欧美精选 | 国产精品不卡一区 | 亚洲国产精品一区二区久久 | 欧美在线一区二区 | 国产欧美一区二区精品性色 | www.av欧美 | 欧美一区二区三区免费在线观看 | 99久久99热这里只有精品 | 日韩理论在线 | 久久精品一区二区三区四区 | 精品久久久久久久久久久久久久 | 亚洲欧美激情精品一区二区 | 日韩欧美中文 | 亚洲欧美一区二区精品中文字幕 | 国产精品777| 免费av在线网 | 精品一区在线视频 | 二区免费视频 | 91麻豆精品国产91久久久更新资源速度超快 | 日本黄色a级 | 欧美一级裸体视频 | 国产精品视频久久久 | 中文字幕视频在线播放 | 精品国产一区二区三区性色av | 青草福利| 国产色| 国产精品一区av | 99精品免费观看 | 欧美日韩免费一区二区三区 | 久在线草 | cao视频| 国产精品视频免费 | 日韩在线精品 | 黄色大片视频网站 | 日夜夜精品视频 | 国产精品欧美一区二区三区 | 亚洲国产精品久久久男人的天堂 | 日本精品免费 | 精品国产乱码久久久久久密桃99 | 亚洲97色| 亚洲人免费视频 | 欧美一区二区日韩 | 亚洲欧美日韩另类一区二区 | 国产精品久久久久影院色老大 | 欧美日韩不卡在线 | 精品国产31久久久久久 | 一区二区三区在线看 | 久久精选视频 | 中文字幕亚洲欧美日韩在线不卡 | 精品视频在线观看 | 亚洲视频免费在线观看 | 久久久久黄 | 噜噜噜噜狠狠狠7777视频 | 中文字幕av一区二区三区 | www国产亚洲精品久久网站 | 岛国视频 | 欧美日韩一区二区在线 | 免费中文字幕日韩欧美 | 久久亚洲精品中文字幕 | 日韩精品一区二区三区第95 | 99热精品在线 | 自拍偷拍亚洲欧洲 | 国产精品日产欧美久久久久 | 日本一区二区三区免费观看 | 天天插天天操天天干 | 日韩欧美在线一区 | 欧美日韩电影一区二区 | ririsao亚洲国产中文 | 日韩国产 | 久久夜夜 | 久久久久综合 | 一本色道精品久久一区二区三区 | 亚洲午夜精品片久久www慈禧 | 日本天堂一区二区 | 久久久久久久 | www.久久.com| 国产拍拍拍拍拍拍拍拍拍拍拍拍拍 | 麻豆久久久久久 | 影音先锋久久 | 91精品国产91久久综合桃花 | 日韩手机在线观看 | 久久久久久久国产精品 | 日韩高清中文字幕 | 国产久精品| 欧美视频在线一区 | 大胆裸体gogo毛片免费看 | 久久精品一二三四 | 激情伊人 | 亚洲三区在线观看 | 国产无套丰满白嫩对白 | 91久久精品国产 | 久久久亚洲一区 | 综合伊人 | 亚洲精色| 一区二区视频免费 | 国产又粗又长又硬又猛电影 | 国产成人午夜精品影院游乐网 | 人和拘一级毛片 | 日韩另类| 午夜视频在线播放 | 最近免费中文字幕大全免费版视频 | 国产视频一区二区 | 国产欧美一区二区视频 | 亚洲精品电影网在线观看 | 久久成人国产 | 亚洲国产天堂久久综合 | 日韩av在线中文字幕 | 国产高清精品一区二区三区 | 乱人伦xxxx国语对白 | ririsao久久精品一区 | 一区二区三区欧美在线 | 欧洲成人午夜免费大片 | 精品久久久久久久久久久久 | 91中文字幕在线 | 中文字幕av网 | 97精品国产 | 免费毛片网 | 黄色毛片在线看 | 日韩国产精品视频 | 在线视频 亚洲 | 欧美综合一区二区三区 | 久久免费视频国产 | 黄色一级网址 | 天天干天天摸 | 毛片在线网站 | 操操操操操操 | 精品日韩一区二区三区 | 人人九九精 | 成人久久久久爱 | 狠狠天天| 日韩欧美国产一区二区 | 午夜在线视频免费观看 | 犬夜叉在线观看 | 骚视频在线观看 | 久久久久国产成人精品亚洲午夜 | 天天操天天干视频 | 九九热精品视频 | 综合久久亚洲 | 亚洲三级免费观看 | 国产精品久久久久婷婷二区次 | 91在线观| 韩国三级午夜理伦三级三 | 国产成人精品一区二区三区视频 | av黄色在线 | 在线观看91视频 | 久久免费精品 | 国产在线精品一区二区三区 | 影音先锋国产 | 色婷婷国产精品久久包臀 | 亚洲 中文 欧美 日韩 在线观看 | 久久99精品国产99久久6尤 | 999久久久国产999久久久 | 黄色小视频在线观看 | 国产精品一区二区三区在线播放 | 91在线精品一区二区 | 99爱在线观看 | 中文字幕在线一区二区三区 | h在线免费 | 欧美精品91| 精品久久久久久国产 | 毛片国产| 亚洲精品免费看 | 久久久精品影院 | 国产91 在线播放 | 久久精品成人 | 特一级毛片 | 中文字幕第七页 | 久久人人网 | 成人黄视频在线观看 | 午夜窝窝 | 亚洲精品综合 | 91精品国产综合久久久久久丝袜 | 亚洲www视频 | 精品亚洲一区二区三区 | 色香蕉久久 | 69热在线观看 | 国产精品国产精品国产专区不卡 | 久久9视频 | 91一区二区在线观看 | 成视频年人免费看黄网站 | 麻豆freexxxx性91精品 | 亚洲三区视频 | 久久免费精品视频 | 欧美一区二区三区在线观看视频 | 男人天堂网av | 91亚洲精品久久久 | 一区二区视频在线 | 91av在线免费看 | 做视频免费观看网站 | 久久激情五月丁香伊人 | 黄网站涩免费蜜桃网站 | 97国产精品视频人人做人人爱 | 最新一级毛片 | 超碰操| 男女视频一区二区 | 久久爱电影 | 免费看的黄色网 | 99久久99热这里只有精品 | www.国产.com | www.av欧美| www.久久.com | 精品国产91亚洲一区二区三区www | 国产成人jvid在线播放 | 亚洲一区二区精品在线观看 | 嫩草视频在线观看免费 | 日韩中文在线 | 毛片链接 | 中文字幕在线观看 | 中国大陆高清aⅴ毛片 | 欧美一级片免费播放 | 日本在线小视频 | 亚洲一区av | 97精品| 精品欧美一区二区在线观看视频 | 精品久久久久久久久久久久久久 | 黄色影片网址 | 琪琪午夜伦伦电影福利片 | 久久美女视频 | 91精品国产综合久久久久久丝袜 | 成年人综合网 | 欧美精品国产精品 |