【问题标题】:Nifi Consume AMQP parameterise queue nameNifi Consume AMQP 参数化队列名称
【发布时间】:2018-02-05 21:15:33
【问题描述】:

我正在使用 NIfi 进行数据摄取。我的组件之一使用 Consume AMQP 处理器消耗 rabit MQ 队列。

它可以正常工作,但问题是队列名称。每个环境都不同,因此我无法在不更改队列名称的情况下运行 Nifi Flow。这在 QAPROD 环境中造成了问题,因为我无法更改 nifi 流程中的任何内容。 (这是不允许的)

解决方案我认为是这样的。

  • 因为队列名称在文件中可用(所有环境中的位置都相同)
  • 通过 GetFile 处理器读取文件
  • 通过 ExtractText 处理器提取文本
  • 将此作为输入参数提供给 ConsumeAMQP 处理器

问题是 ConsumeAMQP 处理器不接受任何输入。有人可以让我知道该怎么做吗?

【问题讨论】:

  • ConsumeAMQP 没有上游连接,因此您无法将结果放入该处理器

标签: apache-nifi


【解决方案1】:

您可以使用 Apache NiFi 中包含的 Variable Registry 来满足此用例。 VR 包含进程组范围的变量,可以在任何解析表达式语言的地方引用这些变量,并可用于特定环境的变量填充。

  1. 右键单击画布并从上下文菜单中选择“变量”以加载变量注册表界面。
  2. 通过单击“+”图标添加新的变量定义。将其命名为 amqp_queue_name 并提供所需的值这是 dev 中的队列名称
  3. 点击“应用”保存。
  4. 像往常一样配置ConsumeAMQP 处理器,但将队列 提供为${amqp_queue_name}

ConsumeAMQP 处理器现在将引用变量注册表中指定的队列,具体取决于环境。例如,如果您导出此模板并将其导入到该变量具有不同值的 QAProd 环境中,它将使用存在的任何内容。这也适用于 NiFi 1.5.0 中引入的 版本化流程 概念。

【讨论】:

    猜你喜欢
    • 2013-03-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-23
    相关资源
    最近更新 更多