一个Spring引导应用程序并行发送许多调用,一次又遇到29个请求过多 如何避免呢?
答案 0 :(得分:2)
您需要具有微服务集群功能的K8,并考虑您的需求 水平缩放您的广告连播。
最重要的是,您需要使用负载平衡器,还可能需要使用Spring Cloud解决方案堆栈中的Ribbon + Hysterix + Feign客户端。
而且您也要检查自己是否没有收到基础HTTP客户端的太多自动重试技术请求。
答案 1 :(得分:1)
您应该停止向服务器发送垃圾邮件,然后重新考虑您的体系结构。 429状态不是错误。这是停止发送垃圾邮件的更多提示:
429状态代码表示用户发送了太多信息
在给定的时间内请求(“速率限制”)。
答案 2 :(得分:1)
您的应用程序并行发送许多呼叫,我无法获得另一个呼叫?,
如果另一个是db调用,则可以增加db中的连接大小,这样以后就不会使用了。
否则,如果另一个是API调用,则应使用批处理语句,它将比并行调用有用。
答案 3 :(得分:0)
这是Pub-Sub模式的标准用例。使用任何消息队列,例如SQS,Kafka等。 第一个spring引导实例应该将消息推送到此队列。另一个spring应用程序(或任何其他应用程序)应以适合自己的速率轮询消息。 消息将一直保留在队列中,直到app2收到消息为止。