java - Spring batch writer节流

标签 java spring spring-boot spring-integration spring-batch

我在做 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/

相关文章:

java - 如何使用 spring boot 应用程序从 Rest API 返回 html

java - 部分模拟子类的方法使其绕过父类(super class)构造函数

java - 如何使用 session 工厂关闭连接

java - 带有空表达式的搜索条件

java - 如何将盐传递给 Spring?

java - 使用 azure.keyvault.secret.property-sources 时 Spring Boot 应用程序启动失败并丢失日志

java - 将 spring-boot-starter-security 与 Vaadin 7 集成

java - 强制 Spring Boot 不使用 EmbeddedWebApplicationContext?

java - 使递归函数迭代

java - Spring MVC : Relative URL problems