Почему Rabbitmq начинает тормозить при отправке большого числа конкурентных запросов?

Проверяю производительность rabbitmq.
Отправляю от 10 тыс до 100 тыс сообщений в очередь. Все нормально, вставляется примерно по 4 тыс/сек.
Увеличиваю число для отправки со 100 тыс до 200 тыс. Все rabbitmq начинает работать очень медленно, вставляется примерно по 100-200 запросов в сеунду.

var amqp = require('amqplib');
var when = require('when');


amqp.connect().then(function(c) {
    var num = 100000;
    var cnt = 0;

    function mkCallback(i) {
        return function(err) {
            cnt++
            if (i % 1000 == 0) {
                console.log(i)
            }
            if (err !== null) {
                console.error('Message %d failed!', i);
            } else {
                //            console.log('Message %d confirmed', i);
            }
            if (cnt == num) {
                c.close()
            }
        }
    }

    c.createConfirmChannel().then(function(ch) {
        var queueName = 'mytest'
        var common_options = {
            durable: true,
            noAck: false
        };
        ch.assertQueue(queueName, common_options);
        for (var i = 0; i < num; i++) {
            ch.sendToQueue(queueName, new Buffer('blah'), {
                'deliveryMode': 2
            }, mkCallback(i));
        }
        //    ch.waitForConfirms().then(function() {
        //      console.log('All messages done');
        //      c.close();
        //    }, console.error);
    });
});
  • Вопрос задан
  • 591 просмотр
Пригласить эксперта
Ответы на вопрос 1
@abcyu
Разработчик
А почему Вы считаете, что это виноват RabbitMQ, а не NodeJS
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы