如何避免响应错误:429个请求过多

时间:2018-07-19 13:01:43

标签: java spring spring-boot

一个Spring引导应用程序并行发送许多调用,一次又遇到29个请求过多 如何避免呢?

4 个答案:

答案 0 :(得分:2)

您需要具有微服务集群功能的K8,并考虑您的需求  水平缩放您的广告连播。

最重要的是,您需要使用负载平衡器,还可能需要使用Spring Cloud解决方案堆栈中的Ribbon + Hysterix + Feign客户端。

而且您也要检查自己是否没有收到基础HTTP客户端的太多自动重试技术请求。

答案 1 :(得分:1)

您应该停止向服务器发送垃圾邮件,然后重新考虑您的体系结构。 429状态不是错误。这是停止发送垃圾邮件的更多提示:

  

429状态代码表示用户发送了太多信息
  在给定的时间内请求(“速率限制”)。

https://tools.ietf.org/html/rfc6585#page-3

答案 2 :(得分:1)

您的应用程序并行发送许多呼叫,我无法获得另一个呼叫?,

如果另一个是db调用,则可以增加db中的连接大小,这样以后就不会使用了。

否则,如果另一个是API调用,则应使用批处理语句,它将比并行调用有用。

答案 3 :(得分:0)

这是Pub-Sub模式的标准用例。使用任何消息队列,例如SQS,Kafka等。 第一个spring引导实例应该将消息推送到此队列。另一个spring应用程序(或任何其他应用程序)应以适合自己的速率轮询消息。 消息将一直保留在队列中,直到app2收到消息为止。