我正在尝试实现对向海王星服务器发出的数据库请求的一些限制。问题是:
所有这些请求(取决于它们发生的时间)都会影响数据库的性能和可用性,因此我们在任何给定的时间都会遇到突发的流量高峰。在这里,缩放不是一个选项,所以我想限制向数据库服务器发出的请求/作业。因此,我的问题是,在Spring和Java中实现这个问题的首选方法是什么,因为到目前为止我还没有找到合适的解决方案。
发布于 2021-10-21 14:00:38
亚马逊海王星在这里给你一些帮助。查询由工作线程处理。实例上的工作线程数通常是该实例上vCPU数量的两倍。如果所有的工作人员都很忙,请求就会被放在队列中。队列最多可以容纳8K请求。如果队列被填满,Neptune将向调用方发送一个节流异常。您可以监视几个CloudWatch指标,包括队列的备份情况和CPU的繁忙程度。这可能有助于监视实例上的负载。
至于客户端节流,听起来您可能希望在所有请求经过的海王星前面放置一个队列或流。如果您想要将请求从不同类别的用户中分离出来并决定优先次序,您可以有多个队列。然后,您的应用程序可以从队列中抽出油门,并在适当的情况下使用。
如果不更多地了解您的精确用例,就很难给出更好的指导。
https://stackoverflow.com/questions/69661094
复制相似问题