我在做 spring batch 项目,从数据库中读取记录,然后写入 rabbitmq,然后发送到 HTTP 消息网关。网关有 150TPS,我需要将我的应用程序限制在 150TPS。有没有一种方法可以使用 spring batch 进行节流 或任何其他更好的方法?
最佳答案
你可以做到:
- 在 Spring Batch 方面:使用
ItemWriteListener#beforeWrite
,使用Thread.sleep
或使用速率限制库(如 Guava)延迟项目的写入或 Resilience4j - 在 RabbitMQ 方面:使用 delayed-message-plugin以所需的速率延迟消息的传递。
希望这对您有所帮助。
关于java - Spring batch writer节流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52923083/