我正在尝试创建一个基于NodeJS的Web应用程序应用程序,该应用程序使用1000个条目查询Azure表存储。 (我正在使用Azure线索订阅)
实现的逻辑使用partition-key和row-key检索一个唯一的实体,因此它应该非常快,并受到Troy Hunt发布的blog的启发,我预计延迟时间低于7毫秒。
app.get('/pick', function (req, res, next) {
var parKey = req.param('parKey');
var rowKey = req.param('rowKey');
var getRes, startTime, endTime, tableSvc;
tableSvc = azure.createTableService().withFilter(retryOperations);
//Timestamp before accessing table storage
startTime = new Date().getTime();
tableSvc.retrieveEntity('lookupTable01', parKey, rowKey,
function (error, result, response) {
if (!error) {
//Timestamp after returning the result
endTime = new Date().getTime();
getRes = JSON.stringify(result);
res.send("found in " + (endTime - startTime) + " ms " + getRes);
} else {
//Timestamp after returnung an error
endTime = new Date().getTime();
getRes = JSON.stringify(error);
res.send("Error in " + (endTime - startTime) + " ms " + getRes);
}
})
我在同一个西欧数据中心设置了Web应用程序服务器和存储帐户,以获得最佳效果。然而,最低延迟证明是47毫秒(不包括网络延迟)
我也尝试在美国东部数据中心进行相同的设置,发现了大致相同的结果。