我无法在哪里为我的应用程序创建我的dynamodb实例,其中多个用户与应用程序进行交互。我应该在程序加载并拥有客户端时创建它,还是应该将它放入我调用数据库的路由中,因此每次对登录路由的请求都会创建一个实例?
char[] alphabet = "abcdefghijklmnopqrstuvwxyz".toCharArray();
答案 0 :(得分:1)
从文档看起来,请求将使用节点默认的http连接池(假设,不是100%)。
亚马逊sdk允许您使用自己的代理配置它,指定池的大小。
https://nodejs.org/api/http.html#http_new_agent_options
哪个应该是可以对amazon sdk建立的连接数的上限。以下代码从节点http和amazon节点sdk docs拼凑而成,未经过测试,可能不完全准确:
var http = require('http');
var dynamoAgent = new http.Agent({maxSockets: 20})
AWS.config.update({
region: "us-west-2",
endpoint: "http://localhost:8000",
httpOptions: {
agent: dynamoAgent
}
});
这应该允许你有一个20个插槽的池。我不确定maxSockets的细微差别,(如果套接字可用,请求阻止,如何重用套接字?如何保持活着?等等。)
20是任意的,您的应用程序编号可能需要摆弄才能看到最佳效果。
节点全局代理默认为无限多个最大套接字,如果您的帖子端点上的流量非常高,则可能会太多。限制连接数可能更合理。