如果超过 AWS Neptune 服务器的容量,限制请求数(读取、更新、删除)?

Limit number of requests(read, update, delete) if it exceeds the capacity of AWS Neptune Server?

我正在尝试对向 Neptune 服务器发出的数据库请求实施一些限制。问题是:

所有这些请求取决于它们发生的时间,可能会影响数据库的性能和可用性,因此我们会遇到随时可能发生的流量突然激增。缩放在这里不是一个选项,所以我想限制对数据库服务器所做的 request/jobs。 所以我的问题是在 Spring Boot 和 Java 中实现这个的首选方法是什么,因为到目前为止我还没有找到合适的解决方案?

Amazon Neptune 在这里为您提供一些帮助。查询由工作线程处理。实例上的工作线程数通常是该实例上 vCPU 数的两倍。如果所有工作人员都很忙,请求将被放入队列中。队列最多可以容纳 8K 个请求。如果队列已满,Neptune 将向调用方发回一个限制异常。您可以监控多个 CloudWatch 指标,包括队列的备份情况和 CPU 的繁忙程度。这可能有助于监控实例上的负载。

关于客户端节流,听起来您可能想要在 Neptune 前面放置一个队列或流,所有请求都经过该队列或流。如果您想将来自不同 类 用户的请求分开并决定优先处理哪个,则可以有多个队列。然后,您的应用可以从队列中拉出并视情况进行限制。

如果不了解您的确切用例,就很难提供更好的指导。