Node.JS创建RabbitMQ生产者

2018-03-20  本文已影响0人  许文同学

我这里使用的 http url querystring amqplib 这几个模块。

var http = require("http");  
var url = require("url");  
var querystring = require('querystring');
var amqp = require('amqplib/callback_api');
// 建立MQ连接  amqp://name:passwd@ip:port
amqp.connect('amqp://admin:admin@192.168.128.129:5672', function(err, conn) {
    conn.createChannel(function(err, ch) {
        var q = 'test';
        ch.assertQueue(q, {durable: true}); // durable 持久
        // 创建http服务监听8000端口
        http.createServer(function(request, response){ 
            if ('/favicon.ico' == request.url) { return;}
            var pathname = url.parse(request.url).pathname;  
            var arg = url.parse(request.url).query;
            var args = querystring.parse(arg);
            args = JSON.stringify(args);
            // 写入队列
            ch.sendToQueue(q, new Buffer(args));
            response.writeHead(200, {"Content-Type":"text/plain"});
            response.end();
        }).listen(8000);
    });
});

在压测高并发的情况下,性能【响应、压入队列速率】比PHP用workerman和swoole差很多。
以下为对此Node脚本的测试结果,【服务器配置:1C2G】

ab -n 30000 -c 600 http://127.0.0.1:8000/?a=6
Node-MQ.png
ab -n 200000 -c 1000 http://127.0.0.1:8000/?a=6
Node-MQ2.png
上一篇 下一篇

猜你喜欢

热点阅读