亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Spring batch批處理框架

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

spring batch框架的簡介

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

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

將異常處理機制分為跳過,重啟和重試。將作業(yè)的分區(qū)分為多線程,并行遠程和分區(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框架可以在不同的層級進行擴展,避免不同層級之間的相互影響。

job的介紹

批處理的作業(yè)是由一組step組成,同時job本身也是配置文件的頂級元素。每個作業(yè)都有自己的名字,可以定義step的執(zhí)行順序,以及定義作業(yè)是否可以重啟。job執(zhí)行的時候會生成一個job instance(作業(yè)實例)和一個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è)的唯一標識)、job-repository(定義作業(yè)倉庫)、incrementer(作業(yè)參數(shù)遞增器)、restartable(作業(yè)是否重啟)、parent(指定該作業(yè)的父作業(yè))、abstract(定義作業(yè)是否抽象)。

step的介紹

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

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

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

job repository的介紹

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

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

BATCH_JOB_INSTANCE:作業(yè)實例表

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)建,同時框架也提供了較好的復(fù)用和擴展組件,開發(fā)者可以自定義實現(xiàn)。

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

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

FlatFileItemReader:讀Flat類型文件。

StaxEventItemReader:讀XML類型文件。

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

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

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

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

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

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

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

JmsItemReader:讀取jms隊列。

IteratorItemReader:迭代方式的讀組件。

MultiResourceItemReader:多文件讀取組件。

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

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

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

AmqpItemReader:讀取AMQP隊列組件。

RepositoryItemReader:基于Spring Data的讀組件。

itemProcess的介紹

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

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

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

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

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

itemWriter的介紹

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

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

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

SpELMappingGemfireItemWriter:基于spring表達式語言寫分布式數(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í)或者工作能帶來一定的幫助,同時也希望多多支持腳本之家!

相關(guān)文章

  • JavaEE Filter敏感詞過濾的方法實例詳解

    JavaEE Filter敏感詞過濾的方法實例詳解

    我們無論是在聊天還是在留言時,都有一些信息不希望別人看到。那么如果過濾這些關(guān)鍵詞呢?下面小編給大家分享JavaEE Filter敏感詞過濾的方法實例詳解,感興趣的朋友一起學(xué)習(xí)吧
    2016-05-05
  • java讀取properties文件的方法

    java讀取properties文件的方法

    這篇文章主要介紹了java讀取properties文件的方法,實例分析了java操作properties配置文件的相關(guān)技巧,需要的朋友可以參考下
    2015-05-05
  • 詳解SpringBoot集成消息隊列的案例應(yīng)用

    詳解SpringBoot集成消息隊列的案例應(yīng)用

    Message?Queue又名消息隊列,是一種異步通訊的中間件??梢岳斫鉃猷]局,發(fā)送者將消息投遞到郵局,然后郵局幫我們發(fā)送給具體的接收者,具體發(fā)送過程和時間與我們無關(guān)。?消息隊列是分布式系統(tǒng)中重要的組件,消息隊列主要解決了應(yīng)用耦合、異步處理、流量削鋒等問題
    2022-04-04
  • Java中的System.arraycopy()淺復(fù)制方法詳解

    Java中的System.arraycopy()淺復(fù)制方法詳解

    這篇文章主要介紹了Java中的System.arraycopy()淺復(fù)制方法詳解,Java數(shù)組的復(fù)制操作可以分為深度復(fù)制和淺度復(fù)制,簡單來說深度復(fù)制,可以將對象的值和對象的內(nèi)容復(fù)制;淺復(fù)制是指對對象引用的復(fù)制,需要的朋友可以參考下
    2023-11-11
  • mybatis中<choose>標簽的用法說明

    mybatis中<choose>標簽的用法說明

    這篇文章主要介紹了mybatis中<choose>標簽的用法說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • SpringBoot萬字爆肝高級配置

    SpringBoot萬字爆肝高級配置

    SpringBoot不僅支持常規(guī)的properties配置文件,還支持yaml語言的配置文件,yaml是以數(shù)據(jù)為中心的語言,在配置數(shù)據(jù)的時候具有面向?qū)ο蟮奶卣鳌pplication.properties是比較常見的配置文件,SpringBoot的全局配置文件的作用是對一些默認配置的配置值進行修改
    2022-07-07
  • java使用OGEngine開發(fā)2048

    java使用OGEngine開發(fā)2048

    眾所周知OGEngine是國人對AndEngine改進后的國產(chǎn)Java編程的游戲引擎,除了支持3D游戲這個雞肋功能之外AndEngine的功能OGEngine都有,而且AndEngine缺少的多點觸摸功能也被國人完善了。今天我們就嘗試下使用OGEngine制作熱門游戲2048.
    2015-03-03
  • Spring+MyBatis實現(xiàn)數(shù)據(jù)讀寫分離的實例代碼

    Spring+MyBatis實現(xiàn)數(shù)據(jù)讀寫分離的實例代碼

    本篇文章主要介紹了Spring+MyBatis實現(xiàn)數(shù)據(jù)讀寫分離的實例代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-07-07
  • Springboot2 配置AOP日志的方法步驟

    Springboot2 配置AOP日志的方法步驟

    這篇文章主要介紹了Springboot2 配置AOP日志的方法步驟,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-06-06
  • SpringBoot?@DS注解實現(xiàn)多數(shù)據(jù)源配置以及問題解決辦法

    SpringBoot?@DS注解實現(xiàn)多數(shù)據(jù)源配置以及問題解決辦法

    這篇文章主要給大家介紹了關(guān)于SpringBoot?@DS注解實現(xiàn)多數(shù)據(jù)源配置以及問題解決辦法,所謂多數(shù)據(jù)源就是一個Java EE項目中采用了不同數(shù)據(jù)庫實例中的多個庫,或者是同一個數(shù)據(jù)庫實例中的多個不同庫,需要的朋友可以參考下
    2023-11-11

最新評論