gpt4 book ai didi

Java - 调用 API 获取 500k 行数据。 Spring批处理还是Websocket?

转载 作者:行者123 更新时间:2023-11-30 02:51:11 24 4
gpt4 key购买 nike

我有两个 CSV 文件,其中一个包含 50 万多条客户记录。我正在尝试将每一行转换为客户对象,并对我也负责的 API 执行 POST。

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

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

最佳答案

由于它看起来是您自己的服务器,因此您应该创建一个服务器路由,允许您一次向其发送多条记录,然后您可以将数据批处理为更少的 API 调用。

如果确实有 500k 条记录,您需要发送,您可能仍然希望将它们批处理为多个请求,但您至少可以一次发送 10k 条记录并管理您的连接,这样您的连接就不会超过 5 个在任何给定时间,有 -10 个正在运行的请求(因为您的服务器不可能同时处理更多请求,这应该可以防止您的客户端耗尽网络资源)。

或者,如果您想要更像文件上传,您可以发送 500k 记录的数据,让您的服务器像文件上传一样处理它,然后一旦成功,让服务器处理它。

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

<小时/>

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

关于Java - 调用 API 获取 500k 行数据。 Spring批处理还是Websocket?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38607506/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com