Node.JS创建RabbitMQ生产者

我这里使用的 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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容