最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Spring batch批處理框架

 更新時(shí)間:2017年04月02日 18:32:56   作者:weiker12  
本文主要介紹了Spring batch批處理框架的相關(guān)知識。具有很好的參考價(jià)值,下面跟著小編一起來看下吧

spring batch框架的簡介

批處理任務(wù)是大多數(shù)IT項(xiàng)目的一個重要組成部分,批處理在業(yè)務(wù)系統(tǒng)中負(fù)責(zé)處理海量的數(shù)據(jù),無須人工干預(yù)就能夠自動高效的進(jìn)行復(fù)雜的數(shù)據(jù)分析和處理。批處理會定期讀入批量數(shù)據(jù),經(jīng)過相應(yīng)的業(yè)務(wù)處理進(jìn)行歸檔的業(yè)務(wù)操作,批處理的特征是自動執(zhí)行,處理的數(shù)據(jù)量大,定時(shí)執(zhí)行。將整個批處理的流程按邏輯劃分可以分為讀數(shù)據(jù),處理數(shù)據(jù)和寫數(shù)據(jù)。

spring batch對批處理本身的特性進(jìn)行了抽象,將批處理作業(yè)抽象為job和job step,將批處理的處理過程分解為數(shù)據(jù)讀,數(shù)據(jù)處理和數(shù)據(jù)寫。

將異常處理機(jī)制分為跳過,重啟和重試。將作業(yè)的分區(qū)分為多線程,并行遠(yuǎn)程和分區(qū)。

spring batch不是一個調(diào)度框架,但需要調(diào)度框架來配合完成批處理任務(wù),它只關(guān)注批處理相關(guān)的任務(wù)問題,但沒有提供相應(yīng)的調(diào)度功能,如果需要使用調(diào)度功能,需要使用調(diào)度框架,這里介紹一個比較常用的調(diào)度框架quartz,可以配合spring batch完成批處理的任務(wù)調(diào)度。

spring batch的架構(gòu)分為三層:基礎(chǔ)架構(gòu)層,核心層和應(yīng)用層。應(yīng)用層包含所有的批處理作業(yè),核心層主要提供JobLauncher、Job和step,基礎(chǔ)架構(gòu)層主要提供通用的讀(ItemReader)、寫(ItemWriter)和服務(wù)處理(如:RetryTemplate重試模板;RepeatTemplate:重復(fù)模板),Spring

batch的三層架構(gòu)體系使得Spring batch框架可以在不同的層級進(jìn)行擴(kuò)展,避免不同層級之間的相互影響。

job的介紹

批處理的作業(yè)是由一組step組成,同時(shí)job本身也是配置文件的頂級元素。每個作業(yè)都有自己的名字,可以定義step的執(zhí)行順序,以及定義作業(yè)是否可以重啟。job執(zhí)行的時(shí)候會生成一個job instance(作業(yè)實(shí)例)和一個job execution(作業(yè)執(zhí)行器)。job instance包含執(zhí)行job期間產(chǎn)生的數(shù)據(jù)以及job執(zhí)行的狀態(tài)信息;1個job可以對應(yīng)多個job instance,1個job instance可以對應(yīng)多個job execution。

job的配置的主要屬性有id(作業(yè)的唯一標(biāo)識)、job-repository(定義作業(yè)倉庫)、incrementer(作業(yè)參數(shù)遞增器)、restartable(作業(yè)是否重啟)、parent(指定該作業(yè)的父作業(yè))、abstract(定義作業(yè)是否抽象)。

step的介紹

step表示作業(yè)中一個完整的步驟,一個job可以由一個或者多個step組成,step主要負(fù)責(zé)批處理運(yùn)行過程中的主要業(yè)務(wù)邏輯的實(shí)現(xiàn)。每次step執(zhí)行的時(shí)候會生成一個或者多個job execution,每次任務(wù)執(zhí)行失敗的時(shí)候,等到下次重新執(zhí)行該任務(wù)的時(shí)候就會為該任務(wù)的step重新生成一個step execution。

step可以配置tasklet、partition、job、flow。

step一般主要配置itemReader、itemProcess和itemWriter來完成批處理的業(yè)務(wù)邏輯處理。

job repository的介紹

job repository主要用來存儲job運(yùn)行期間的元數(shù)據(jù)(這些元數(shù)據(jù)包括job instance、job execution、job parameters、step execution、execution context等數(shù)據(jù))。

spring batch框架進(jìn)行元數(shù)據(jù)管理的時(shí)候共有9張表,其中有3張表(后綴是SEQ)用來分配主鍵的,這9張表分別是

BATCH_JOB_INSTANCE:作業(yè)實(shí)例表

BATCH_JOB_EXECUTION:作業(yè)執(zhí)行器表

BATCH_JOB_EXECUTION_PARAMS:作業(yè)參數(shù)表

BATCH_STEP_EXECUTION:作業(yè)步執(zhí)行器表

BATCH_JOB_EXECUTION_CONTEXT:作業(yè)執(zhí)行上下文表

BATCH_STEP_EXECUTION_CONTEXT:作業(yè)步執(zhí)行上下文表

BATCH_JOB_EXECUTION_SEQ:作業(yè)執(zhí)行器序列表

BATCH_STEP_EXECUTION_SEQ:作業(yè)步序列表

BATCH_JOB_SEQ:作業(yè)序列表

itemReader的介紹

itemReader是Step中對資源的讀處理,Spring batch框架提供了大量的直接可用的讀組件可以快速的完成批處理應(yīng)用的開發(fā)和構(gòu)建,同時(shí)框架也提供了較好的復(fù)用和擴(kuò)展組件,開發(fā)者可以自定義實(shí)現(xiàn)。

ListItemReader:讀取List數(shù)據(jù),只能讀一次。

ItemReaderAdapter:ItemReader適配器,可以復(fù)用現(xiàn)有的讀操作。

FlatFileItemReader:讀Flat類型文件。

StaxEventItemReader:讀XML類型文件。

JdbcCursorItemReader:基于JDBC游標(biāo)方式讀數(shù)據(jù)庫。

HibernateCursorItemReader:基于hibernate游標(biāo)方式讀取數(shù)據(jù)庫。

StoredProcedureItemReader:基于存儲過程讀取數(shù)據(jù)庫。

IbatisPagingItemReader:基于Ibatis分頁讀取數(shù)據(jù)庫。

JpaPagingItemReader:基于jpa方式分頁讀取數(shù)據(jù)庫。

JdbcPagingItemReader:基于jdbc方式分頁讀取數(shù)據(jù)庫。

HibernatePagingItemReader:基于Hibernate方式分頁讀取數(shù)據(jù)庫。

JmsItemReader:讀取jms隊(duì)列。

IteratorItemReader:迭代方式的讀組件。

MultiResourceItemReader:多文件讀取組件。

MongoItemReader:基于分布式存儲MongoDB讀組件。

Neo4jItemReader:面向網(wǎng)格數(shù)據(jù)庫Neo4j讀組件。

ResourcesItemReader:基于批量資源的讀組件。

AmqpItemReader:讀取AMQP隊(duì)列組件。

RepositoryItemReader:基于Spring Data的讀組件。

itemProcess的介紹

itemProcess階段表示對讀取數(shù)據(jù)進(jìn)行處理,開發(fā)者可以在這里面實(shí)現(xiàn)自己的業(yè)務(wù)操作。

CompositeItemProcessor:組合處理器,可以封裝多個業(yè)務(wù)處理服務(wù)。

ItemProcessorAdapter:適配器,可以復(fù)用現(xiàn)有的業(yè)務(wù)處理服務(wù)。

PassThroughItemProcessor:不做業(yè)務(wù)處理,直接返回讀取數(shù)據(jù)。

ValidatingItemProcessor:數(shù)據(jù)校驗(yàn)處理器,支持對數(shù)據(jù)的校驗(yàn),如果校驗(yàn)不通過可以進(jìn)行過濾或者跳過skip的方式來處理記錄。

itemWriter的介紹

itemWriter是step中對資源的寫處理,Spring batch框架提供了大量的直接可用的寫組件可以快速的完成批處理應(yīng)用的開發(fā)和構(gòu)建,同時(shí)框架也提供了較好的復(fù)用和擴(kuò)展組件,開發(fā)者可以自定義實(shí)現(xiàn)。

FlatFileItemWriter:寫flat類型文件。

MultiResourceItemWriter:多文件寫組件。

StaxEventItemWriter:寫XML類型文件。

AmqpItemWriter:寫AMQP類型消息。

ClassifierCompositeItemWriter:根據(jù)Classifier路由不同的Item到特定的ItemWriter處理。

HibernateItemWriter:基于Hibernate方式寫數(shù)據(jù)庫。

IbatisBatchItemWriter:基于Ibatis方式寫數(shù)據(jù)庫。

ItemWriterAdapter:適配器,可以復(fù)用現(xiàn)有的寫服務(wù)。

JdbcBatchItemWriter:基于JDBC方式寫數(shù)據(jù)庫。

JmsItemWriter:寫JMS隊(duì)列。

JpaItemWriter:基于jpa方式寫數(shù)據(jù)庫。

GemfireItemWriter:基于分布式數(shù)據(jù)庫Gemfire的寫組件。

SpELMappingGemfireItemWriter:基于spring表達(dá)式語言寫分布式數(shù)據(jù)庫Gemfire的組件。

MimeMessageItemWriter:發(fā)送郵件的寫組件。

MongoItemWriter:基于分布式文件存儲數(shù)據(jù)庫MongoDB寫組件。

Neo4jItemWriter:面向網(wǎng)絡(luò)數(shù)據(jù)庫Neo4j的讀組件。

PropertyExtractingDelegatingItemWriter:屬性抽取代理寫組件。

RepositoryItemWriter:基于Spring Data的寫組件。

SimpleMailMessageItemWriter:發(fā)送郵件的寫組件。

CompositeItemWriter:條目寫的組合模式,支持組裝多個ItemWriter。

以上就是本文的全部內(nèi)容,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,同時(shí)也希望多多支持腳本之家!

相關(guān)文章

  • java 中JXL操作Excel實(shí)例詳解

    java 中JXL操作Excel實(shí)例詳解

    這篇文章主要介紹了java 中JXL操作Excel實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下
    2017-04-04
  • java實(shí)現(xiàn)文件導(dǎo)入導(dǎo)出

    java實(shí)現(xiàn)文件導(dǎo)入導(dǎo)出

    這篇文章主要介紹了java實(shí)現(xiàn)文件導(dǎo)入導(dǎo)出的方法和具體示例代碼,非常的簡單實(shí)用,有需要的小伙伴可以參考下
    2016-04-04
  • 詳解使用Spring Cloud Consul實(shí)現(xiàn)服務(wù)的注冊和發(fā)現(xiàn)

    詳解使用Spring Cloud Consul實(shí)現(xiàn)服務(wù)的注冊和發(fā)現(xiàn)

    這篇文章主要介紹了詳解使用Spring Cloud Consul實(shí)現(xiàn)服務(wù)的注冊和發(fā)現(xiàn),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-06-06
  • Spring Boot整合Spring Data JPA過程解析

    Spring Boot整合Spring Data JPA過程解析

    這篇文章主要介紹了Spring Boot整合Spring Data JPA過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-10-10
  • JDBC的基本操作與Statement和PreparedStateMent使用區(qū)別分析

    JDBC的基本操作與Statement和PreparedStateMent使用區(qū)別分析

    這篇文章主要介紹了JDBC的基本操作與Statement和PreparedStateMent使用區(qū)別,Java Database Connectivity,它是代表一組獨(dú)立于任何數(shù)據(jù)庫管理系統(tǒng)(DBMS)的API,聲明在java.sql與javax.sql包中,是SUN(現(xiàn)在Oracle)提供的一組接口規(guī)范
    2023-04-04
  • 詳解如何在Java項(xiàng)目中實(shí)現(xiàn)信號的連續(xù)接收

    詳解如何在Java項(xiàng)目中實(shí)現(xiàn)信號的連續(xù)接收

    在Java項(xiàng)目中,信號的連續(xù)接收是一項(xiàng)重要的任務(wù),特別是在處理異步事件或者需要對外部事件做出響應(yīng)時(shí),本篇博客將介紹如何在Java項(xiàng)目中實(shí)現(xiàn)信號的連續(xù)接收,包括信號的監(jiān)聽、處理和停止等步驟,需要的朋友可以參考下
    2023-11-11
  • 如何解決@NotBlank不生效的問題

    如何解決@NotBlank不生效的問題

    這篇文章主要介紹了如何解決@NotBlank不生效的問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • springboot集成screw反向生成數(shù)據(jù)庫說明文檔

    springboot集成screw反向生成數(shù)據(jù)庫說明文檔

    screw是一個一鍵式生成數(shù)據(jù)庫文檔的開源工具包,目前screw可以生成word、md和html格式類的文檔,本文主要來講講如何通過screw反向生成數(shù)據(jù)庫說明文檔,感興趣的可以了解下
    2025-01-01
  • 使用jenkins部署springboot項(xiàng)目的方法步驟

    使用jenkins部署springboot項(xiàng)目的方法步驟

    這篇文章主要介紹了使用jenkins部署springboot項(xiàng)目的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • 關(guān)于Intellij IDEA中的Version Control問題

    關(guān)于Intellij IDEA中的Version Control問題

    這篇文章主要介紹了Intellij IDEA中的Version Control問題,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-11-11

最新評論

筠连县| 南丰县| 康平县| 彭泽县| 黎平县| 阜城县| 海城市| 文登市| 泾源县| 兴山县| 长沙县| 浦城县| 虹口区| 松原市| 邳州市| 南和县| 乌恰县| 武功县| 遂溪县| 鄄城县| 武川县| 竹北市| 周宁县| 阳城县| 和平区| 都安| 霍州市| 开原市| 沙湾县| 西昌市| 虞城县| 平乡县| 徐闻县| 泰来县| 南木林县| 山西省| 邵阳县| 昌江| 武城县| 察隅县| 濉溪县|