首页 > 解决方案 > 如果超过 AWS Neptune Server 的容量,是否限制请求数量(读取、更新、删除)?

问题描述

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

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

标签: javaamazon-web-servicesspring-bootgraph-databasesamazon-neptune

解决方案


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

至于客户端节流,听起来您可能想在 Neptune 前面放置一个队列或流,所有请求都会通过。如果您想将来自不同类别用户的请求分开并决定优先处理哪个,您可以有多个队列。然后,您的应用程序可以从队列中拉出并根据需要进行节流。

如果不了解更多关于您的精确用例的信息,就很难提供更好的指导。


推荐阅读