Java-为50万行数据调用API.Spring批处理或Websocket



我有两个CSV文件,其中一个包含500k以上的客户记录。我正在尝试将每一行转换为一个客户对象,并对API进行POST,我也对此负责。

这种方法有一个明显的问题,即激发500k以上的HTTP调用,并导致达到最大HTTP连接。

我收到了两个建议,打开WebSocket或使用SpringBatch。这是打开WebSocket并发送消息而不是打开多个HTTP连接的好用例吗?还是走更传统的使用弹簧批的路线更好?

由于它似乎是您自己的服务器,您只需要创建一个服务器路由,允许您一次向其发送多条记录,然后您就可以将内容批处理到更少的API调用中。

如果真的是50万条记录,你需要发送,你可能仍然想将它们批处理成多个请求,但你至少可以一次处理10k个请求,并管理你的连接,这样你在任何给定的时间都不会有超过5-10个请求(因为你的服务器不太可能一次处理超过这个数量的请求,这应该可以防止你的客户端耗尽网络资源)。

或者,如果你想更像文件上传,你可以发送价值50万条记录的数据,让你的服务器像文件上传一样处理它,然后一旦成功,让服务器处理它。

事实上,您可能只想上传CSV并让服务器直接处理它。


虽然webSocket连接可以让你对多个请求使用同一个连接(这是一件好事),但你仍然不想发送50万条单独的记录。无论是webSocket还是http请求,仅发送这么多单独请求的开销都是低效的。相反,您确实希望对请求进行批处理,并在每个请求中发送大块数据。

相关内容

  • 没有找到相关文章

最新更新