Spring Batch面试终极指南

林烨烨
2023-12-01
  1. 问:什么是Spring Batch Admin?
  2. 问:在哪里使用批处理?
  3. 问:什么是工作步骤?
  4. 问:什么是ItemReader?
  5. 问:什么是ItemProcessor?
  6. 问:什么是Spring Batch侦听器?
  7. 问:Step,Chunk和Tasklet有什么区别?
  8. 问:Spring Batch中的执行上下文是什么?
  9. 问:Spring Batch中的StepScope是什么?
  10. 问:Spring Batch中的作业存储库是什么?
  11. 问:Spring Batch中的步骤分区是什么?
  12. 问:什么是Spring批处理作业启动器?
  13. 问:Spring Batch中的远程分块是什么?
  14. 问:Spring Batch中的远程分区和远程分块有什么区别?
  15. 问:Spring Batch中的跳过限制是什么?
  16. 问:Spring Batch中的JobBuilderFactory是什么?

问:什么是Spring Batch?
答:

Spring batch是用于创建批处理应用程序(执行一系列作业)的开源轻量级平台。
 

问:什么是批处理架构?
答:

作业具有完整的批处理过程,并且作业中包含一个或多个步骤。设置为以JSL(作业规范语言)序列运行的作业。
 

问:什么是工作?
答:

作业由许多步骤组成,每个步骤都是READ-PROCESS-WRITE任务或单个操作任务(tasklet)。
 

问:如何在Spring Batch中配置作业?
答:

我们可以通过多种方式配置Sprin批处理作业。我们在这里使用生成器抽象方法来调用作业。作业需要JobRepository来配置作业。如果您在下面看到Job,则需要执行三个步骤来加载笔记,加载任务并处理这些任务。

@Bean
public Job employeeJob() {
    return this.jobBuilderFactory.get("notesJob")
                     .start(LoadNotes())
                     .next(LoadTasks())
                     .next(processTasks())
                     .end()
                     .build();
}

问:什么是Spring Batch Admin?
答:

管理员具有基于Web的UI和spring批处理控制台。它是一个基于Web构建的应用程序,基于Spring MVC开源。
 

问:在哪里使用批处理?
答:

它通常用于执行大量数据的企业应用程序中。例如,大数据在企业应用程序中定期进行测试。
 

问:什么是工作步骤?
答:

Spring Batch Step独立地是工作的一部分。每个步骤都包括ItemReader,ItemWriter和ItemProcessor。
 

问:什么是ItemReader?
答:

ItemReader从Spring批处理中的源读取数据。
 

问:什么是ItemWriter?
答:

ItemWriter将数据写入Spring批处理中的目标。
 

问:什么是ItemProcessor?
答:

使用itemReader读取输入数据之后,ItemProcessor对该输入数据应用业务逻辑,然后使用itemWriter写入文件/数据库。
 

问:什么是Spring Batch侦听器?
答:

侦听器是帮助拦截作业或允许用户执行某些功能的步骤执行的实体。
 

问:Step,Chunk和Tasklet有什么区别?
答:

Spring批处理读取输入,根据业务逻辑进行处理,然后将输出的数据块聚合到目标(文件或数据库),最后将其写出。这是执行步骤的最常见方法。
 

问:Spring Batch中的执行上下文是什么?
答:

如果您想重新启动批处理运行以解决诸如致命异常之类的错误,则Spring Batch会继续存储的ExecutionContext。

问:Spring Batch中的StepScope是什么?
答:

作用域为StepScope的对象,对于这些对象,Spring Batch将使用spring容器为每个步骤执行创建该对象的新实例。
 

问:Spring Batch中的作业存储库是什么?
答:

作业存储库用于在作业执行期间保留所有批处理元数据。数据源可以配置为存储作业相关的元数据。

 

问:Spring Batch中的步骤分区是什么?
答:

Spring批处理可以在单进程作业中处理,但是要拥有多进程作业,我们可以使用“对步骤进行分区”。在Spring Batch步骤分区中,Step被分为多个子步骤,这些子步骤可用作远程实例或用作本地执行线程。
 

问:什么是Spring批处理作业启动器?
答:

Spring Batch作业启动器是用于运行作业的界面,它使用带有两个参数的run方法。例:

JobLauncher jobLauncher = context.getBean(JobLauncher.class);
Job testJob = context.getBean(TestJob.class);
jobLauncher.run(
testJob,
new JobParametersBuilder()
.addString("inputFile", "file:./notes.txt")
.addDate("date", new Date())
.toJobParameters()
);

问:Spring Batch中的远程分块是什么?
答:

在春季批处理远程分块中,Master Step读取日期并将其传递给slave进行处理。
 

问:Spring Batch中的远程分区和远程分块有什么区别?
答:

两种分区都是基于主从的过程,但是下面是它们之间的区别。

  1. 远程分区:在这种情况下,它允许对数据进行分区和并行执行。例如,我们可以说分区被划分为一组数据,例如如果有30行,那么第一个数据集将有1-10行,第二个数据集将有11-20行,依此类推。所有分区数据集,从属执行这些元数据并将结果发送回主以进行聚合。
  2. 远程分块:
  3. 在远程分块中,Master Step读取数据并控制将数据传递到其Slave以进行处理。从设备处理完数据后,ItemProcessor的结果将返回给主设备进行写入。

 

问:Spring Batch中的跳过限制是什么?
答:

一旦达到最大跳过限制,Spring批处理将跳过该项目。会根据春季批次跳过限制自动使批次作业失败。
 

问:Spring Batch中的JobBuilderFactory是什么?
答:

它创建作业生成器并初始化作业存储库

JobBuilderFactory(JobRepository jobRepository) 
 类似资料: