我正在使用NIfi进行数据摄取。我的其中一个组件使用 Consume AMQP 处理器来使用rabit MQ队列。
它的工作没有任何问题,但问题是队列名称。它对每个环境都有所不同,因此我无法在不更改队列名称的情况下运行Nifi Flow。这在 QA 和 PROD 环境中造成问题,因为我无法更改nifi流中的任何内容。 (不允许)
解决方案我认为是这样的。
问题是ConsumeAMQP处理器没有接受任何输入。有人请让我知道怎么做吗?
答案 0 :(得分:0)
您可以使用Apache NiFi中包含的Variable Registry来满足此用例。 VR包含进程组范围的变量,可以在解析表达式语言的任何位置引用它们,并且可以用于特定于环境的变量填充。
amqp_queue_name
并提供所需的值这是dev 中的队列名称。 ConsumeAMQP
处理器,但将队列设为${amqp_queue_name}
。 ConsumeAMQP
处理器现在将引用变量注册表中指定的队列,具体取决于环境。例如,如果导出此模板并将其导入到 QA 或 Prod 环境中,其中该变量具有不同的值,则它将使用存在的任何内容。这也适用于NiFi 1.5.0中引入的版本化流程概念。