- 我构建了一个简单的应用程序,从Redis数据库中提取数据(50项)并将其抛出到localhost.我做了一个ApacheBench(c = 100,n = 50000),我在双核T2080 @ 1.73GHz(我的6 yo笔记本电脑)上得到了半正常的150请求/秒,但是proc使用非常令人失望图所示:

只使用一个核心,这是根据Node中的设计,但我认为如果我可以使用Node.js集群,我几乎可以将我的请求/秒加倍到~300,甚至更多.我摆弄了很多但我无法弄清楚如何把这里给出的代码用于我的应用程序,如下所示:
var
express = require( 'express' ),
app = express.createServer(),
redis = require( 'redis' ).createClient();
app.configure( function() {
app.set( 'view options', { layout: false } );
app.set( 'view engine', 'jade' );
app.set( 'views', __dirname + '/views' );
app.use( express.bodyParser() );
} );
function log( what ) { console.log( what ); }
app.get( '/', function( req, res ) {
redis.lrange( 'items', 0, 50, function( err, items ) { …Run Code Online (Sandbox Code Playgroud) 到目前为止,我一直在使用库来处理OAuth,但最近我一直在深入挖掘,试图理解底层的OAuth流程.目前,我正在尝试使用OAuth 1.0a使用以下简单代码连接到Tumblr API v2:
import urllib, urllib2, time, random, hmac, base64, hashlib
def makenonce():
random_number = ''.join( str( random.randint( 0, 9 ) ) for _ in range( 40 ) )
m = hashlib.md5( str( time.time() ) + str( random_number ) )
return m.hexdigest()
def encodeparams(s):
return urllib.quote( str( s ), safe='~' )
# Actual key and secret from a test app created using a dummy Tumblr account
consumer_key = '97oAujQhSaQNv4XDXzCjdZlOxwNyhobmDwmueJBCHWsFFsW7Ly'
consumer_secret = '5q1dpF659SOgSUb0Eo52aAyoud8N8QOuJu6enCG92aDR6WoMlf'
#oauth URLs
request_tokenURL = 'http://www.tumblr.com/oauth/request_token' …Run Code Online (Sandbox Code Playgroud) 我有一个简单的node/express应用程序需要将2个文档存储在示例MongoDB集合中(32-bit, localhost, Windows).我可以使用native driver或Mongoose ORM.
与本机驱动程序一起拆开我的应用程序.ApacheBench(3300请求,一次5个),整个事情超时......
Completed 330 requests
apr_pollset_poll: The timeout specified has expired (70007)
Run Code Online (Sandbox Code Playgroud)
通过Mongoose访问时,相同的MongoDB集合只需通过比较即可完成任务...
...
Completed 2970 requests
Completed 3300 requests
Finished 3300 requests
...
Requests per second: 244.49 [#/sec] (mean)
Time per request: 61.353 [ms] (mean)
Run Code Online (Sandbox Code Playgroud)
这是一个巨大的差异,显然我在使用本机驱动程序时做了一些非常错误的事情.这是两种方法的代码以及存储在DB中的数据.
只存储在DB中的两个文档:
{
"_id": "51bmdft4a487e771411ce8ef",
"name": "Gintoki",
"email": "sakata@yorozuya.com",
"friends": [ "Shinpachi", "Kagura", "Tsukuyo" ]
},
{
"_id": "51388p50bed4dghy4308745d",
"name": "Elizabeth",
"email": "eli@ossan.io",
"friends": [ "Katsura" ]
}
Run Code Online (Sandbox Code Playgroud)
使用Native MongoDB驱动程序: …
这有效:
$.post(
'http://api.imgur.com/2/upload.json',
{
key: 'dsfdwerwersf53534dfsfse3',
image: 'http://i.imgur.com/UH17u.png'
},
function( data ) { console.log( data.upload.links.original ); }
);
Run Code Online (Sandbox Code Playgroud)
当我在Chrome的控制台中运行时,imgur会立即向我发送上传图片的网址:http://i.imgur.com/KrHMY.png.优秀.
.
现在我在服务器端使用node.js尝试同样的事情,但它不起作用:
var
express = require( 'express' )
, app = express.createServer()
, request = require( 'superagent' );
app.get( '/', function( req, res ) {
request
.post( 'http://api.imgur.com/2/upload.json' )
.send( { key: 'dsfdwerwersf53534dfsfse3', image: 'http://i.imgur.com/UH17u.png' } )
.end( function( data ) {
console.log( data.upload.links.original );
});
});
app.listen( '8080' );
Run Code Online (Sandbox Code Playgroud)
当我运行node.js应用程序时,imgur会发回这个响应:
text: '{"error":{"message":"No API key was sent, and no …Run Code Online (Sandbox Code Playgroud)