我需要将一些数据从一个表迁移到另一个表,并在这两个表之间应用一些处理。处理是专有的,并作为REST服务公开。因此,我需要从一个表调用REST服务读取记录,然后将处理过的记录写入另一个表。我如何将其实现为Spring Batch,以便我可以为多个记录并行调用REST,因为"我希望每条记录花费很多时间的地方是什么?我计划在ItemProcessor中进行REST调用,它只接受进程中的单个项目方法。
v1l68za41#
当处理成为瓶颈时,您可以用途:
AsyncItemProcessor
在选择可扩展性选项时,您需要注意一些重要的注意事项,下面详细介绍了这些事项:https://stackoverflow.com/a/20342308/5019386
7vhp5slm2#
我也有同样的要求,正如@Mahmoud所说:有一些好的方法:
远程分块:
处理和写入是由工人完成的,而阅读则是由主设备完成的。主设备必须读取实际记录,然后通过导线将其传递给工人。Remote Chunking in Practice在异步处理的情况下,您还可以缩放批处理:Tutorial Spring Batch Integration using Async Processing
2条答案
按热度按时间v1l68za41#
当处理成为瓶颈时,您可以用途:
AsyncItemProcessor
:这将异步处理项,并有助于扩展处理。有关此组件的详细信息,请参阅此处:https://docs.spring.io/spring-batch/4.0.x/reference/html/spring-batch-integration.html#asynchronous-processors在选择可扩展性选项时,您需要注意一些重要的注意事项,下面详细介绍了这些事项:https://stackoverflow.com/a/20342308/5019386
7vhp5slm2#
我也有同样的要求,正如@Mahmoud所说:有一些好的方法:
远程分块:
处理和写入是由工人完成的,而阅读则是由主设备完成的。主设备必须读取实际记录,然后通过导线将其传递给工人。
Remote Chunking in Practice
在异步处理的情况下,您还可以缩放批处理:
Tutorial Spring Batch Integration using Async Processing