首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在哪里调用DynamoDB的实例?是每次请求一次还是每次请求一次?

在哪里调用DynamoDB的实例?是每次请求一次还是每次请求一次?
EN

Stack Overflow用户
提问于 2015-11-19 14:39:35
回答 1查看 764关注 0票数 2

在为多个用户与应用程序交互的应用程序创建dynamodb实例时,我遇到了问题。我是应该在程序加载并拥有客户端时创建它,还是应该将它放到调用数据库的路由中,这样每个对登录路由的请求都会创建一个实例?

代码语言:javascript
复制
var express = require('express');
var app = express();
var AWS = require('aws-sdk');
AWS.config.update({
    region: "us-west-2",
    endpoint: "http://localhost:8000"
});

//Is this the right place. Outside of where the database call is being made
var dynamodbDoc = new AWS.DynamoDB.DocumentClient();


app.post('/login', function (req, res) {

//OR should I create a new instance of AWS.DynamoDB.DocumentClient() here every time a request is made?
//  var dynamodbDoc = new AWS.DynamoDB.DocumentClient(); ????

    var login_username = req.body.login_username;
    var login_password = req.body.login_password;

    var params = {
        TableName : "Users",
        Key: {
            'username': login_username,
            'password': login_password

        }
    };


    dynamodbDoc.get(params, function(err, data) {
        if (err) console.log(err);
        else console.log(data);
    });

});


var server = app.listen(3000, function () {
    var host = server.address().address;
    var port = server.address().port;

    console.log('Example app listening at http://%s:%s', host, port);
});
EN

回答 1

Stack Overflow用户

发布于 2015-11-19 23:05:25

从文档中看起来,请求将使用节点默认的http连接池(假设不是100%)发出。

amazon sdk允许您使用自己的代理对其进行配置,并指定池的此大小。

https://nodejs.org/api/http.html#http_new_agent_options

这应该是可以连接到amazon sdk的连接数量的上限。以下代码由node http和amazon node sdk文档拼凑而成,未经测试,可能不完全准确:

代码语言:javascript
复制
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个是任意的,你的应用程序数量可能需要摆弄一下,看看哪个效果最好。

节点全局代理默认的最大套接字数量是无限的,如果post端点上的流量非常大,这个数量可能会太多。限制连接的数量可能更明智。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33796887

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档