ItemProcessor 处的 Spring Batch 瓶颈
SpringBatch bottleneck at ItemProcessor
我需要将一些数据从一个 table 迁移到另一个 table,并在两者之间应用一些处理。处理是专有的,并作为 REST 服务公开。所以我需要从 table 调用 REST 服务中读取记录,然后在另一个 table 中写入处理过的记录。我如何将其实现为 Spring 批处理,以便我可以对多条记录进行并行 REST 调用,因为这是我期望每条记录花费大量时间的地方?我计划在其中进行 REST 调用的 ItemProcessor 仅接受处理方法中的单个项目。
当处理成为瓶颈时,可以使用:
AsyncItemProcessor
:这将异步处理项目并有助于扩展处理。在此处查看有关此组件的更多详细信息:https://docs.spring.io/spring-batch/4.0.x/reference/html/spring-batch-integration.html#asynchronous-processors
远程分块:使用此可伸缩性选项,您可以将数据发送给远程工作人员进行处理。这有助于您通过根据需要添加更多工作人员来横向扩展处理。本节中有关远程分块的更多详细信息:https://docs.spring.io/spring-batch/4.0.x/reference/html/spring-batch-integration.html#remote-chunking
在选择可扩展性选项时,您需要注意一些重要的注意事项,详情如下:
我需要将一些数据从一个 table 迁移到另一个 table,并在两者之间应用一些处理。处理是专有的,并作为 REST 服务公开。所以我需要从 table 调用 REST 服务中读取记录,然后在另一个 table 中写入处理过的记录。我如何将其实现为 Spring 批处理,以便我可以对多条记录进行并行 REST 调用,因为这是我期望每条记录花费大量时间的地方?我计划在其中进行 REST 调用的 ItemProcessor 仅接受处理方法中的单个项目。
当处理成为瓶颈时,可以使用:
AsyncItemProcessor
:这将异步处理项目并有助于扩展处理。在此处查看有关此组件的更多详细信息:https://docs.spring.io/spring-batch/4.0.x/reference/html/spring-batch-integration.html#asynchronous-processors远程分块:使用此可伸缩性选项,您可以将数据发送给远程工作人员进行处理。这有助于您通过根据需要添加更多工作人员来横向扩展处理。本节中有关远程分块的更多详细信息:https://docs.spring.io/spring-batch/4.0.x/reference/html/spring-batch-integration.html#remote-chunking
在选择可扩展性选项时,您需要注意一些重要的注意事项,详情如下: