为了账号安全,请及时绑定邮箱和手机立即绑定

Spring 批处理写入器限制

Spring 批处理写入器限制

Qyouu 2021-12-01 15:38:33
我在做 spring 批处理项目,从数据库读取记录,然后写入rabbitmq,然后发送到 HTTP 消息网关。网关有150TPS,我需要将我的应用程序限制为 150TPS。有没有办法用弹簧批或其他更好的方法来节流?
查看完整描述

2 回答

?
冉冉说

TA贡献1877条经验 获得超1个赞

你能行的:

  • 在 Spring Batch 方面:使用 a ItemWriteListener#beforeWrite,使用Thread.sleep或使用诸如GuavaResilience4j 之类的速率限制库来延迟项目的写入

  • 在 RabbitMQ 方面:使用延迟消息插件以所需的速率延迟消息的传递。

希望这可以帮助。


查看完整回答
反对 回复 2021-12-01
?
BIG阳

TA贡献1859条经验 获得超6个赞

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

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

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

希望能帮助到你...


查看完整回答
反对 回复 2021-12-01
  • 2 回答
  • 0 关注
  • 133 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信