我试图建立一个Spring /春天Boot- RESTful Web服务,春天RESTful Web服务 - 高容量的数据处理
它接受一个CSV 100万行/列40各行中的文件作为输入(来自基于Angular的前端)并且将是同步调用。在进入其他屏幕之前,必须通知用户上载状态。所以,等待时间不能超过几分钟(比如5分钟)。
这些行中的每一行都必须针对数据库中的内容进行验证,并且如果发现有效,则会将相同内容插入到数据库中。总之,每一行可以是一个独立的独立交易。
你可以请建议什么是最好的方法来实现这个?
当前遗留系统在存储过程中实现相同的功能,这使得解决方案与数据库紧密耦合,如果RDBMS需要随时更改,这将是一个问题。
在异步Web服务调用中处理这些1百万数据块(比如20k)的任何方法?
春季批次?
存储过程可能比上面两个选项更适合和更好地执行任何机会(猜不到!)?
你能否请一些至少和存储过程一样好的方法以及如何基于建议的解决方案进行水平缩放。
你的API调用取决于API响应吗? –
您可以实现弹簧批处理 - 使用块处理和主从设置进行并行处理并批量更新它们(不同的失败和成功记录)。或将每个记录存储在临时表中,然后调用过程来批量插入它们。 – surya
适当缩放网格大小,并有一个很好的例子,你可以参考http://www.mkyong.com/spring-batch/spring-batch-partitioning-example/ – surya