我正在使用项目反应器从使用休息的 Web 服务加载数据。这是与多个线程并行完成的。我开始达到 Web 服务的速率限制,因此我希望每秒最多发送 10 个请求以避免出现这些错误。我将如何使用反应器做到这一点?
使用 zipWith(Mono.delayMillis(100))?或者有什么更好的方法?
谢谢
我正在将 Spring WebFlux 和 WebClient 用于我的 Web 应用程序。
我的应用程序可能会调用同样由我们托管的“N”个其他微服务。
现在的问题是我想限制我的 WebClient 对现有微服务调用有限数量的同时调用。
另外,我不想在个人调用级别执行此操作,而是在应用程序级别执行此操作。
我已经经历过“如何限制活动 Spring WebClient 调用的数量? ”和“如何使用 WebClient 限制请求/秒? ”,但无济于事。
我有一个要求,我使用 Spring Batch 从 SQL DB 读取一堆行(数千),并在将它们写入 Kafka 主题之前调用 REST 服务来丰富内容。
使用 Spring Reactive webClient 时,如何限制活动非阻塞服务调用的次数?在使用 Spring Batch 读取数据后,我应该以某种方式在循环中引入 Flux 吗?
(我理解 delayElements 的用法并且它有不同的用途,因为当单个 Get Service Call 带来大量数据并且您希望服务器减慢速度时——尽管如此,我的用例有点不同,因为我有许多 WebClient 调用要进行,并希望限制调用次数以避免内存不足问题,但仍能获得非阻塞调用的优势)。