问题描述
我有一个 nifi 流,它与 ListS3 处理器保持某种状态。 我有一个开发实例和一个生产实例。 我想要一些从 dev 部署到 prod 的选项,其中保持状态,并且我不必手动进入并更改所有处理器和进程组。
这似乎不能用模板来完成?基于以下 stackoverflow 问题:
how does NIFI listfile maintains its timestamp?
编辑: 为了避免误解,我想在部署时保持 prod 状态。
解决方法
听起来您没有使用 NiFi 注册表,因此您正在下载流模板,然后将其导入。这不能保留状态,因为它不是同一个流程。
您应该使用 NiFi Registry 对您的流程进行版本控制,它支持此 Dev -> Prod 工作流程。
在 Dev NiFi 中构建您的流程,版本到注册表。
在 prod 中,添加一个新的进程组并在它要求您输入名称时选择 Import
选项。您将能够选择您的版本化流程。
运行您的流程以存储一些状态。查看处理器状态以进行验证。
现在更新 Dev 中的流程,并将本地更改提交到 Registry。
然后,将 Prod 中的流程从 Registry 更新到最新版本。它将在有状态处理器上保留状态。
有关安装和使用 Registry 的详细步骤,请参阅以下链接:
https://nifi.apache.org/docs/nifi-registry-docs/html/getting-started.html
https://alasdairb.com/2021/03/22/nifi-in-production-nifi-registry/