Tag: amqp

AMQP警告:检测到可能的EventEmitter内存泄漏。 添加了11位听众。

我收到Node.js中的以下错误,我相信它与AMQP有关。 (node) warning: possible EventEmitter memory leak detected. 11 listeners added. Use emitter.setMaxListeners() to increase limit. Trace at Connection.EventEmitter.addListener (events.js:160:15) at Connection.EventEmitter.once (events.js:179:8) at Connection.connect (/var/www/project/app/node_modules/amqp/amqp.js:1084:8) at Connection.reconnect (/var/www/project/app/node_modules/amqp/amqp.js:1049:8) at null._onTimeout (/var/www/project/app/node_modules/amqp/amqp.js:886:16) at Timer.listOnTimeout [as ontimeout] (timers.js:110:15) 任何人都可以指出问题可能是什么? 下面是我用来连接模块的代码: JackRabbit.prototype.subscribe = function subscribe(recievedCB, routingKey) { var self = this; var route = routingKey || '#'; […]

使用节点芹菜(MeteorJS)和ampq后端时,Celery不会返回结果

我刚开始使用Celery,一个芹菜工作人员用Python编写,并且使用node-celery从node / Meteor发送任务。 为什么没有从client.call()返回result ? Python工作控制台显示任务已经发送并成功处理。 但没有任何事情ready ,似乎正在开火! 使用Celery 3.1.7,RabbitMQ 3.2.2,node-celery 0.1.1,Meteor 0.7.0.1 节点 var celery = Meteor.require('node-celery'), client = celery.createClient({ CELERY_BROKER_URL: 'amqp://guest:guest@localhost:5672//', CELERY_RESULT_BACKEND: 'amqp://', CELERY_TASK_SERIALIZER: 'json', CELERY_RESULT_SERIALIZER: 'json' }); client.on('error', function(err) { console.log(err); }); client.on('connect', function() { console.log('Connected') var results = client.call('tasks.echo', ['Hello world'], function(result) { console.log('results:' + result); }); results.on('pending', function(result) { console.log('pending: […]

amqp交换不会自动删除

我有基于amqplib 0.2.1的rabbitmq 3.3.5运行和nodejs项目 问题是,一旦交换被声明,它不会被删除连接到rabbitmq后closures。 如果我们开始这样的例子 var amqp = require('amqplib'); var when = require('when'); amqp.connect('amqp://localhost').then(function(conn) { return when(conn.createChannel().then(function(ch) { var ex = 'logs_new'; var ok = ch.assertExchange(ex, 'fanout', {durable: false, autoDelete: true}}) var message = process.argv.slice(2).join(' ') || 'info: Hello World!'; return ok.then(function() { ch.publish(ex, '', new Buffer(message)); console.log(" [x] Sent '%s'", message); return ch.close(); }); […]

用于IBM MQ的.Net AMQP客户端

我试图使用我的.Net应用程序中的AMQP 1.0通道连接到IBM MQ 9.0。 MQ Light门户目前仅支持Nodejs,ruby,java和python客户端。 我们有.Net的MQ Light AMQP客户端吗? 我曾尝试使用Amqpnetlite客户端连接到IBM MQ 9 namespace AMQPNetLiteSample { class Program { static void Main(string[] args) { Console.WriteLine("Start"); //Address addr = new Address("10.58.139.97", 1234, "Username","password", "/", "AMQP"); Address addr = new Address("amqp://10.58.139.97:1234"); Connection con = new Connection(addr); con.Closed += con_Closed; Console.WriteLine("Created connection"); Session session = new Amqp.Session(con); session.Closed += […]

RabbitMQ“访问虚拟主机”OWN“拒绝”

正如你所看到的,我尝试在RabbitMQ上设置和使用新的虚拟主机的权限。 我找不到,我的问题是什么。 如果我使用虚拟主机作为“/”,一切工作正常。 =INFO REPORT==== 18-Nov-2016::11:50:20 === Setting permissions for 'mqadmin' in '/' to '.*', '.*', '.*' =INFO REPORT==== 18-Nov-2016::11:50:24 === Setting permissions for 'mqadmin' in '/OWN' to '.*', '.*', '.*' =INFO REPORT==== 18-Nov-2016::11:51:49 === accepting AMQP connection <0.18046.18> (my_ip:60527 -> server_ip:5671) =ERROR REPORT==== 18-Nov-2016::11:51:49 === Error on AMQP connection <0.18046.18> (my_ip:60527 -> server_ip:5671, user: […]

RabbitMQ&NodeJS:继“每个应用1个连接,每个线程1个通道,每个通道1个用户”指南

我正在使用NodeJS和amqplib来构build一个简单的作业队列库(有点类似于Jackrabbit) ,用于一个服务,该服务应该parsing包含许多不同事件信息的大型提要。 信息parsing后,它被分配到数以千计的队列(队列是消息顺序必须遵守的最小单位),然后由我的排队库消耗。 问题是:在这种情况下,如何遵循'每个应用1个连接,每个线程1个通道,每个通道1个用户'的指导方针? 这会造成数以千计的进程产生,浪费大量的内存和资源。 注意:每个队列中的消息数量不是很多,最多只有1-2 msg / sec

amqplib – 即使调用channel.ack(msg)

我正在编写一个模块,充当amqplib的包装。 动机是,我们有一个现有的和明确的交换/队列/绑定设置,我只是想公开的消费方法,以允许消费传入的数据。 为此,我的模块需要一个forms为callback(channel, msg)的callback参数。 在模块中,build立交换和队列和绑定之后,我有以下几点 module.exports = function (options, callback) { /* connection, exchange and queue set up here */ // consume messages from primary queue ok = ok.then(function() { var q = opts.pq; console.log('Subscribing to', q); return ch.consume(q, function (message) { callback(ch, message); }); }); return ok; }; 在callback中,我正在处理消息,并在成功时调用channel.ack(msg) 。 一切正常运行,因为没有错误,但RabbitMQpipe理控制台显示所有处理的消息为Unacked。 如果我杀了我的应用程序,那么Unacked消息就会回到队列中(谢天谢地)。 为什么我的信息不被查看? 我在做错了吗? […]

Node-amqp和socket.io奇怪的行为

我实际上试图使用node-amqp( https://github.com/postwait/node-amqp )实现pub / sub模式。 我有一些问题来实现它。 我需要的 : 从用户发布消息 将其广播给其他用户 将邮件发送给离线用户,下次连接时会使用该邮件 我其实是: (function () { var amqp = require('amqp'); var connection = amqp.createConnection({ host: 'http://127.0.0.1:5672/' }); var app = require('express')(); var server = require('http').Server(app); var io = require('socket.io')(server); app.get('/', function (req, res) { res.sendfile(__dirname + '/index.html'); }); server.listen(8888); // Wait for connection to become established. […]

RabbitMQ用于具有Express路由的NodeJS

我的服务器正在运行NodeJS,并使用amqplib api从另一个应用程序请求数据。 NodeJS服务器正在成功接收信息,但有一个明显的延迟,我试图确定我是否以最有效的方式做到这一点。 具体而言,我关心的是我打开和closures连接的方式。 项目布局 我有两个控制器文件处理接收和请求数据,request.img.server.controller.js和receive.img.server.controller.js。 最后,当前端button被按下时,路由处理控制器方法,即oct.server.routes.js。 request.img.server.controller.js 'use strict'; var amqp = require('amqplib/callback_api'); var connReady = false; var conn, ch; amqp.connect('amqp://localhost:5672', function(err, connection) { conn = connection; connReady = true; conn.createChannel(function(err, channel) { ch = channel; }); }); exports.sendRequest = function(message) { console.log('sending request'); if(connReady) { var ex = ''; var key = 'utils'; […]

使用AMQP和Node.JS实现实时数据同步

我正在构build一个基于Web的生产力应用程序,它必须处理适度的用户并发性,并且我一直在探索各种选项来保持服务器和客户端之间的数据同步。 应用程序数据在页面加载时被引导到JavaScript中,并且使用websocket将数据推送到服务器。 对于上下文来说,我正在使用Node.JS和Socket.IO创build一个持久的客户端 – 服务器网关,它充当Django后端的代理。 面临的挑战是我希望保持所有连接的客户端彼此同步,以便在一个客户端会话上对应用程序进行的任何更改都立即反映在所有连接的客户端会话上。 难点在于不是所有用户都必须查看所有的数据; 有各种不同的用户级别,不同的用户可以拥有略有不同的数据集。 因此,当一个对象以某种方式被改变并且改变被提交给数据库时,我需要知道那些当前连接的用户可以安全地将数据推送到数据库。 我一直在探索不同的解决scheme,我觉得这是可以通过pubsub消息队列来处理的 – 使用AMQP之类的东西,但是我正在努力弄清楚应用程序的结构。 在我的脑海中,应用程序结构如下所示: Client < – > Node.JS gateway < – > AMQP messaging queue < – > Django app 我应该创build一个单一的直接交换,将Node.js和Django实例视为单个客户端,然后在Node.js中以某种方式过滤结果? 或者是这种过滤的东西,消息系统可以处理,每个连接的客户端订阅相关的主题,例如,只接收他们被允许看到的数据? 我从事消息传递系统方面的经验很less,所以我很难在应用程序中find自己能够扮演的angular色。 任何build议将不胜感激。