Igo*_*gor 5 node.js express amazon-kinesis
我使用 NodeJS 和Express作为代理来处理 HTTP GET 请求,对数据进行一些小的调整,并将数据提交给 Amazone Kinesis。这是我的代码的摘录:
var express = require('express');
var app = express();
app.get('/proxy-test', function(req, res){
var data = req.query;
// perform some light data processing
// send results to kinesis
kinesis.putRecord({
StreamName : MY_STREAM_NAME,
Data : data,
PartitionKey : MY_PARTITION_KEY
}, function(err, data) {
if (err) {
console.log(err, err.stack); // an error occurred
} else {
console.log(data);
}
});
res.send(200);
});
Run Code Online (Sandbox Code Playgroud)
在为 200 个并发用户运行 JMeter 测试(循环 100 次)后,5 分钟后,我收到此错误:
10)\n 在 Request.emit (/Users/me/proxy/node_modules/aws-sdk/lib/request.js:578:14)\n 在 Request.transition (/Users/me/proxy/node_modules/aws- sdk/lib/request.js:12:12)\n 在 AcceptorStateMachine.runTo (/Users/me/proxy/node_modules/aws-sdk/lib/state_machine.js:14:12)\n 在 /Users/me/ proxy/node_modules/aws-sdk/lib/state_machine.js:26:10\n 请求。(/Users/me/proxy/node_modules/aws-sdk/lib/request.js:28:9)\n 请求。(/Users/me/proxy/node_modules/aws-sdk/lib/request.js:580:12)\n 在 Request.callListeners (/Users/me/proxy/node_modules/aws-sdk/lib/sequential_executor.js: 90:20)' runTo (/Users/me/proxy/node_modules/aws-sdk/lib/state_machine.js:14:12)\n 在 /Users/me/proxy/node_modules/aws-sdk/lib/state_machine.js:26:10 \n 请求。(/Users/me/proxy/node_modules/aws-sdk/lib/request.js:28:9)\n 请求。(/Users/me/proxy/node_modules/aws-sdk/lib/request.js:580:12)\n 在 Request.callListeners (/Users/me/proxy/node_modules/aws-sdk/lib/sequential_executor.js: 90:20)' runTo (/Users/me/proxy/node_modules/aws-sdk/lib/state_machine.js:14:12)\n 在 /Users/me/proxy/node_modules/aws-sdk/lib/state_machine.js:26:10 \n 请求。(/Users/me/proxy/node_modules/aws-sdk/lib/request.js:28:9)\n 请求。(/Users/me/proxy/node_modules/aws-sdk/lib/request.js:580:12)\n 在 Request.callListeners (/Users/me/proxy/node_modules/aws-sdk/lib/sequential_executor.js: 90:20)'
我可以做些什么(配置或代码更改)以确保发送和保存所有 Kinesis 记录?
您的 Kinesis 生产者实例(您正在运行 NodeJS 的实例)可能会遇到时钟漂移。我们过去在查询各种服务(不仅仅是 Kinesis)的 AWS API 时经常看到这种情况。
安装和配置 ntp 以使用 NTP 池中的 AWS 节点是很常见的:
sudo apt-get -qy install ntp
sudo sed -i -r 's/^(server\s[0-3]\.)ubuntu([a-z\.]+)/\1amazon\2 iburst/' /etc/ntp.conf
sudo sed -i -r 's/^(server\sntp\.ubuntu\.com)/#\1\nserver time.nist.gov/' /etc/ntp.conf
sudo service ntp restart
Run Code Online (Sandbox Code Playgroud)
如果您有兴趣,这里是更多文档的链接:
http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/set-time.html
| 归档时间: |
|
| 查看次数: |
1739 次 |
| 最近记录: |