Wednesday, November 22, 2017

Rabbitmq HA(High availability) with Node JS

var amqp = require('amqp-connection-manager');



var connection = amqp.connect(['amqp://test:testuser@localhost:5672','amqp://test:testuser@localhost:5674','amqp://test:testuser@localhost:5675','amqp://test:testuser@localhost:5672'], {json: true});
connection.on('connect', function() {
    console.log('Connected!');
});
connection.on('disconnect', function(params) {
    console.log('Disconnected.', params.err.stack);
});

// Create a channel wrapper
var channelWrapper = connection.createChannel({
    json: true,
    setup: function(channel) {
        // `channel` here is a regular amqplib `ConfirmChannel`.
        return channel.assertQueue("nameof queue", {durable: true,maxPriority: 10});
    }
});

// Send messages until someone hits CTRL-C or something goes wrong...
var sendMessage = function() {
    channelWrapper.publish("exchangename", "keyname","messagewehavetosend",{priority:0})
   
    .catch(function(err) {
        console.log("Message was rejected:", err.stack);
        channelWrapper.close();
        connection.close();
    });
};

console.log("Sending messages...");
exports.sendMessage = sendMessage;