Node.js Rabbitmq了解通道、使用者和连接统计信息

Node.js Rabbitmq了解通道、使用者和连接统计信息,node.js,rabbitmq,Node.js,Rabbitmq,我的问题与管理插件中显示的统计信息有关。未使用时,rabbitmq统计数据如下所示: 我正在使用rabbitmq创建一个REQ/REP套接字。为每个连接的客户端创建一个新队列。现在我们有4个队列: 但是我不明白其他的数字 为什么最初有8个交易所?(重新安装后) 为什么最初有两个队列?(重新安装后) 为什么当我只有2个客户时,其他数字从0跳到4 这是因为REQ/REP吗 更新:我有两个应用程序相互通信。一方面我有 var context = require('rabbit.js').creat

我的问题与管理插件中显示的统计信息有关。未使用时,rabbitmq统计数据如下所示:

我正在使用rabbitmq创建一个REQ/REP套接字。为每个连接的客户端创建一个新队列。现在我们有4个队列:

但是我不明白其他的数字

  • 为什么最初有8个交易所?(重新安装后)
  • 为什么最初有两个队列?(重新安装后)
  • 为什么当我只有2个客户时,其他数字从0跳到4
  • 这是因为REQ/REP吗

    更新:我有两个应用程序相互通信。一方面我有

    var context = require('rabbit.js').createContext('amqp://localhost');
    var rep = context.socket('REP', {
        prefetch: 1,
        persistent: false
    });
    rep.connect(someIdentifier);
    rep.setEncoding('utf8');
    
    rep.on('data', function(data) {
        //got a request
    });
    
    另一方面:

    var context = require('rabbit.js').createContext('amqp://localhost');
    var req = context.socket('REQ');
    req.setEncoding('utf8');
    req.connect(sameIdAsAbove);
    req.on('data', function(data) {
        //got a response
    });
    

    6默认交换是每种交换类型中的一种+它们的别名交换(请参阅

    接下来的两个交换是
    amq.rabbitmq.trace
    topic
    type),一个来自和
    amqp.rabbitmq.log
    (也是
    topic
    type),您可以在调试期间从中使用日志条目(例如,只需通过
    键绑定)

    顺便说一句,这些交换是在每个vhost中创建的。
    amq
    前缀来自AMQP约定,用
    amq
    前缀命名与AMQP相关的实体。
    rabbitmq
    部分代表rabbitmq的特定功能

    所以这都是关于惯例的

    至于2个默认队列,这实际上取决于您的安装类型,而默认配置可能会有所不同

    如果您有4个保持连接的活动使用者(等待新消息出现在队列中的进程),则每个使用者将至少使用一个连接,每个连接使用一个通道

    如果看不到实际代码,很难说为什么队列号会发生变化

    更新:

    4个连接和4个通道(要与AMQP broker通信,您需要打开至少一个通道,在AMQP协议的第节中进行了描述),底层实现创建了双工流(每个应用程序实例一个),可能使用两个连接使读写事件独立发生


    备注:实际上,fresh install可能会导入预定义的配置并配置许多其他选项,包括访问策略、vHost、用户、交换、队列、绑定到HA、群集和其他许多选项。

    +1谢谢!!我用一些代码更新了我的问题。也许你可以解释为什么我有4个连接?更新了我的答案,解释了有关频道和连接的内容连接。至于队列-在评论中发布初始队列名称,我猜它们是由您的应用程序或安装程序创建的。