Nacos是一款集服务注册发现、服务配置和管理于一身的开源软件,这节主要记录Nacos的服务注册发现功能的使用。借助Spring Cloud Alibaba Nacos Discovery,我们可以轻松地使用Spring Cloud编程模型体验Nacos的服务注册发现功能。本节使用的Spring Cloud版本为Hoxton.SR3,Spring Cloud Alibaba版本为2.2.0.RELEASE,Spring Boot版本为2.2.3.RELEASE。
Spring Batch异常处理
Spring Batch处理任务过程中如果发生了异常,默认机制是马上停止任务执行,抛出相应异常,如果任务还包含未执行的步骤也不会被执行。要改变这个默认规则,我们可以配置异常重试和异常跳过机制。异常跳过:遇到异常的时候不希望结束任务,而是跳过这个异常,继续执行;异常重试:遇到异常的时候经过指定次数的重试,如果还是失败的话,才会停止任务。除了这两个特性外,本文也会记录一些别的特性。
Spring Batch任务调度
在前面的例子中,我们配置的任务都是在项目启动的时候自动运行,我们也可以通过JobLauncher
或者JobOperator
手动控制任务的运行时机,这节记录下它们的用法。
Spring Batch监听器
Spring Batch提供了多种监听器Listener,用于在任务处理过程中触发我们的逻辑代码。常用的监听器根据粒度从粗到细分别有:Job级别的监听器JobExecutionListener
、Step级别的监听器StepExecutionListener
、Chunk监听器ChunkListener
、ItemReader监听器ItemReadListener
、ItemWriter监听器ItemWriteListener
和ItemProcessor监听器ItemProcessListener
等。具体可以参考下表:
Spring Batch处理数据
在Spring Batch中,ItemReader
接口用于读取数据,ItemWriter
接口用于输出数据。除此之外,我们可以通过ItemProcessor
接口实现数据的处理,包括:数据校验,数据过滤和数据转换等。数据处理的时机发生于ItemReader
读取数据之后,ItemWriter
输出数据之前。本节记录下Spring Batch中ItemProcessor
的使用。
Spring Batch输出数据
Spring Batch输出数据通过ItemWriter接口的实现类来完成,包括FlatFileItemWriter文本数据输出、StaxEventItemWriter XML文件数据输出、JsonItemWriter JSON文件数据输出、JdbcBatchItemWriter数据库数据插入等实现,更多可用的实现可以参考:https://docs.spring.io/spring-batch/docs/4.2.x/reference/html/appendix.html#itemWritersAppendix,本文只介绍这四种比较常用的输出数据方式。
Spring Batch读取数据
Spring Batch读取数据通过ItemReader接口的实现类来完成,包括FlatFileItemReader文本数据读取、StaxEventItemReader XML文件数据读取、JsonItemReader JSON文件数据读取、JdbcPagingItemReader数据库分页数据读取等实现,更多可用的实现可以参考:https://docs.spring.io/spring-batch/docs/4.2.x/reference/html/appendix.html#itemReadersAppendix,本文只介绍这四种比较常用的读取数据方式。
Spring Batch入门
企业中经常会有需要批处理才能完成的业务操作,比如:自动化地处理大批量复杂的数据,如月结计算;重复性地处理大批量数据,如费率计算;充当内部系统和外部系统的数据纽带,中间需要对数据进行格式化,校验,转换处理等。
Spring Batch是一个轻量级但功能又十分全面的批处理框架,本节我们将通过一些简单的例子来入门Spring Batch。