弹簧批处理编写器限制



我工作弹簧批处理项目,从数据库读取记录,然后写入rabbitmq,然后发送到HTTP消息网关。网关有150TPS,我需要将我的应用程序限制为 150TPS。有没有办法用弹簧批或其他更好的方法节流

你可以这样做:

  • 在Spring Batch方面:使用ItemWriteListener#beforeWrite,使用Thread.sleep或使用Guava或Resilience4j等速率限制库延迟项目的写入
  • 在 RabbitMQ 端:使用延迟消息插件以所需的速率延迟消息的传递。

希望这有帮助。

您可以通过定义 TPS 的最大块大小或小于此大小来尝试使用面向块的处理。

您可以参考以下文档,通过面向块的处理来实现 Spring 批处理:

https://docs.spring.io/spring-batch/trunk/reference/html/configureStep.html

希望对你有帮助...

最新更新