【问题标题】:Node-red How to use Pattern with amqp lib and variableNode-red 如何将 Pattern 与 amqp 库和变量一起使用
【发布时间】:2018-10-19 14:04:34
【问题描述】:

我在这个库中使用 Node-Red:node-red-contrib-amqp。 我正在连接到 RabbitMQ 服务器 (AMQP) 以使用路由键从主题中获取一些消息。

节点 AMQP 有一个选项卡,您可以在其中定义拓扑和 routing_key 以侦听具有特定路由的某些消息(AMQP 协议的功能)。

这说明了帮助:

在拓扑选项卡中,您可以定义 AMQP 服务器交换和队列 拓扑(交换、队列和绑定)。您在中定义拓扑 JSON 编辑器。

拓扑配置示例:

{
    "exchanges": [
        {"name": "exchange1", "type": "direct", "options": {"durable": false}},
        {"name": "exchange2"}
    ],
    "queues": [
        {"name": "queue1", "options": {"messageTtl": 60000}},
        {"name": "queue2"}
    ],
    "bindings": [
        {"source": "exchange1", "queue": "queue1", "pattern": "debug", "args": {}},
        {"source": "exchange1", "exchange": "exchange2", "pattern": "error"},
        {"source": "exchange2", "queue": "queue2"}
    ]
};

我想问是否有人知道如何使用该模式,但使用来自 Node-red 的变量。例如我使用了这种模式:

{"source": "exchange_1", "exchange": "queue_name_1", "pattern": "*.*.rabbit"},

我想要类似的东西:

{"source": "exchange_1", "exchange": "queue_name_1", "pattern": {inject_node.msg.payload}},

inject_node 是一个带有字符串输入的注入节点。这样做的想法是根据流上的某些功能根据其他结果更改模式。我的意思是模式可能是“#”或“.orange.”(来自 RabbitMQ 教程的示例),但会根据某些函数结果而变化。

现在我已经有几个配置了特定模式的 AMQP 服务器,但这不是想法。

我有:

  • Node-RED 版本:v0.19.4
  • Node.js 版本:v10.9.0
  • Linux4.4.0-1069-aws x64 LE(亚马逊虚拟服务器 Ubuntu)
  • RabbitMQ 3.7

【问题讨论】:

    标签: design-patterns rabbitmq amqp node-red topology


    【解决方案1】:

    不,拓扑是 AMQP-inAMQP-out 节点的底层配置节点的属性。

    由于节点已写入,因此无法在运行时更改。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-03-24
      • 1970-01-01
      • 2018-11-04
      • 2012-01-27
      • 2020-07-09
      • 1970-01-01
      • 2018-12-23
      • 1970-01-01
      相关资源
      最近更新 更多