RabbitMQ延迟跨越地理距离问题

Dom*_*mra 5 rabbitmq

我们的情况是,我们在美国东部有一个RabbitMQ节点,生产者在其他区域(爱尔兰,悉尼等).从其他区域排队时,我们看到了巨大的性能命中率.悉尼 - > US-East排队是1s排队的消息,而排队悉尼 - >悉尼是50ms.似乎很多时候花在创建频道和声明队列上.

我们有什么选择来改善绩效?我们可以看看某种分布式RabbitMQ集群,每个地区都有一个节点吗?这对我们有帮助吗?

这是我们用来测试的代码:

var queueConnection = amqp.connect("OUR amqp servers in each region")
var queueName = "test-queue"

var queueMessage = function(message) {
  return queueConnection.then(function(conn) {
    return conn.createChannel()
  }).then(function(ch) {
    var queue = ch.assertQueue(queueName, { durable: false });
    return queue.then(function() {
      ch.sendToQueue(queueName, new Buffer(JSON.stringify(message)), { deliveryMode: true });
      return ch.close()
    });
  })
};

Promise.map(_.range(0, 10), function(item) {
  var timedQueueMessage = timely.promise(queueMessage)
  return timedQueueMessage({ name: "Dom" }).then(function(res) {
    console.log("Completed in " + timedQueueMessage.time + "ms")
  })  
}, { concurrency: 10 }).done(process.exit)
Run Code Online (Sandbox Code Playgroud)