Tag: rabbitmq

在RabbitMQ和节点上使用AMQP.Node不会消耗死字母消息

我想在我的工作人员中经过一段时间后收到一条消息。 发现所谓的死信交stream后,我决定和Node和RabbitMQ一起去。 该消息似乎被送到DeadExchange中的队列中,但消费者在WorkExchange中的WorkQueue中经过的时间之后永远不会收到消息。 bindQueue是closures的,或者死信不起作用? 我现在尝试了很多不同的值。 有人能指出我错过了什么吗? var amqp = require('amqplib'); var url = 'amqp://dev.rabbitmq.com'; amqp.connect(url).then(function(conn) { //Subscribe to the WorkQueue in WorkExchange to which the "delayed" messages get dead-letter'ed (is that a verb?) to. return conn.createChannel().then(function(ch) { return ch.assertExchange('WorkExchange', 'direct').then(function() { return ch.assertQueue('WorkQueue', { autoDelete: false, durable: true }) }).then(function() { return ch.bindQueue('WorkQueue', 'WorkExchange', ''); […]

Node.js AMQP扇出

我正在尝试构build一个分布式系统,我正在使用postwait / node-amqp 。 作为新手,我发现文档是非常无益的。 现在我的计划图: Client -> Gate -> Q -> EatProcessor -> WalkProcessor -> Logger 让我们说客户发送Start Eating 。 Gate收到它,并将其添加到Q正在eating的消息只有EatProcessor应该从Q获得消息。 所以让我们说EatProcessor: connection.queue('Q', {autoDelete: false}, function(queue){ queue.subscribe(function(msg){ // recv message }); }); 那么我如何: 让食物处理器只从Q中得到食物 让步行处理器只从Q中获取走路的东西 logging器将从Q中获取所有内容,并只logging日志。 我正在阅读,也许门口应该是一个扇子? 但是我没有在文档中看到如何做扇出。 如果一个粉丝是否意味着每个人都会得到这个信息? 让我们说我还没有写logging器,我会写在function,但是当我写它时,我想直接听Q而不改变任何代码在Gate 。

当node-amqp没有exception

我正在尝试使用node-amqp。 当在连接到兔子的部分抛出一个exception,我可以得到这个exception,但它永远重新启动连接到兔子。 看那个: amqp = require("amqp") # Open a connection conn = amqp.createConnection( {url: "amqp://localhost"} , {reconnect: true}) conn.on "ready", -> console.log "Conn Ready" conn.queue "queueX", {ack:true}, (queue) -> console.log "Subscribed #{queue.name}" assdsd() #calling non-exiting method. No exception is thrown but the connection is restarted 系统循环引发错误。 我知道这是因为{recconnect:true}。 但我希望能够自行处理例外情况。 任何想法? 我的脚本的输出是这样的: Conn Ready Subscribed queueX Conn […]

如何configuration,运行,监视和pipe理多个不同的节点服务?

我正在开发一个大型系统(MEAN Stack + ElasticSearch + RabbitMQ),有许多不同的nodejs项目和队列一起工作。 我有几个问题。 当我想运行和testing整个系统时,我必须打开很多terminal窗口来运行每个项目。 我怎样一次运行它们,方便监控。 当我想在多台机器上运行同一个项目时,我怎样才能轻松configuration所有这些项目,因为有时需要花费太多时间来移动并configuration它们。 如何轻松configuration,运行,监控和pipe理整个系统。 例如,我想知道有多less台机器正在运行一个项目。 或者有时候我想要一次更改消息队列名称或IP地址,我不想去两个项目中的每台机器上都改变它们 对不起,我的坏语法,感觉自由的编辑。 提前致谢。

Node.js中的ECONNRESET Azure中的RabbitMQ使用者

我已经看了这个问题好几天了,这让我非常难过。 我们有一个基于node.js的rabbitmq消费者,已经运行了一年多,没有任何问题。 最近,我们将应用程序部署到Azure,并将node.js组件部署到基于窗口的PAAS辅助angular色。 我们使用方形mo amqp-lib( https://github.com/squaremo/amqp.node )作为我们的客户端库接收来自RabbitMQ的消息。 angular色可以正常启动,处理请求没有问题,但会定期回收。 检查部署的VM上的C:\ resources中的WaHostBootstrapper日志显示如下: [00001180:00001548, 2015/06/09, 10:01:17.385, INFO ] Getting status from client RemoteAccessAgent.exe (2816). [00001180:00001548, 2015/06/09, 10:01:17.385, INFO ] Client reported status 0. [00001180:00001548, 2015/06/09, 10:01:17.385, INFO ] Getting status from client WaWorkerHost.exe (1380). [00001180:00001548, 2015/06/09, 10:01:17.385, INFO ] Client reported status 3. [00001180:00003288, 2015/06/09, 10:01:17.385, INFO ] […]

带有aerospike和node.js的任务pipe理器

我在networking应用程序中使用node.js和aerospike。 当用户发帖,提及或追随时,我必须在时间表或/和通知上进行工作。 我想在node.js向客户端发送响应之后运行这些作业。 我跑任务经理和邮件经纪人,我不知道明白 所以我的问题是因为Node.js中的操作是asynchronous的,并且aerospikeis同步和multithreading – >将响应发送到客户端,然后用aerospike做这些工作是不好的主意(或者我可能会因复制,云,等等) 或者我被迫使用像RabbitMQ?

什么原因导致amqp.node从RabbitMQ服务器获取ECONNRESET?

我有一个在Windows 8环境下运行的RabbitMQ(默认configuration)实例。 我的节点版本是5.1.0,我试图build立他们之间的连接使用amqp.node库为了传递消息。 当我尝试示例代码: var q = 'tasks'; function bail(err) { console.error(err); process.exit(1); } // Publisher function publisher(conn) { conn.createChannel(on_open); function on_open(err, ch) { if (err != null) bail(err); ch.assertQueue(q); ch.sendToQueue(q, new Buffer('something to do')); } } // Consumer function consumer(conn) { var ok = conn.createChannel(on_open); function on_open(err, ch) { if (err != null) bail(err); […]

node.js imqplib sendToQueue到RabbitMQ挂起

我有一个排队消息到RabbitMQ的function,如下所示: var amqp = require('amqplib/callback_api'); var _queueURL = 'amqp://127.0.0.1'; var _toBlahBlahQueueName = 'blahblah'; var self = module.exports = { queueMessage: function (msgObj, callback) { try { amqp.connect(_queueURL, function (err, connection) { if (err) { callback(err); } connection.createChannel(function (err, channel) { if (err) { callback(err); } channel.assertQueue(_toBlahBlahQueueName, { durable: true }, function (err, _ok) { if […]

将嵌套对象的数组转换为Buffer Nodejs

1)为什么? 我需要通过缓冲区rabbitMQ,发布方法http://www.squaremobius.net/amqp.node/channel_api.html#channel_publish 2)我的数据如下所示 [ // array of objects { id: 1, name: 'John Doe', prop: { a: [….], // nested b: [….], c: {…} } }, … ] 如何正确地转换这样的对象数组缓冲,所以从另一边可以parsing回来。

在Nodejs RabbitMQ服务器上的高性能

我正在build立一个分析系统,在同一时间内有100万用户在线。 我使用消息代理等RabbitMQ来降低服务器的容量 这是我的图 我的系统包括3个组件。 发行商服务器:(生产者)这个系统build立在nodejs上。 这个系统将消息发布到queue RabbitMQ队列 :该系统存储publisher server发送的消息。 之后,打开一个连接以从subscriber server队列发送消息。 订户服务器(消费者) :该系统从queue接收消息 发布服务器源代码 var amqp = require('amqplib/callback_api'); amqp.connect("amqp://localhost", function(error, connect) { if (error) { return callback(-1, null); } else { connect.createChannel(function(error, channel) { if (error) { return callback(-3, null); } else { var q = 'logs'; var msg = data; // object // convert […]