Apache nifi NIFI-开发人员对产品进行测试

Apache nifi NIFI-开发人员对产品进行测试,apache-nifi,Apache Nifi,随着开发、测试和生产阶段的进展,我们正在努力找出更新处理器配置的最佳方法。我们确实希望避免在将流部署到特定环境时操纵处理器中的主机、端口等引用。至少在我们的情况下,我们会有不同的主机,比如ElasticSearch、PostGres等。其他人是如何处理的 我们考虑的事项: 使用表达式语言从属性文件中提取配置。这对于启用EL的处理器来说是非常好的,但对于那些没有启用EL的处理器来说则不然 操作流xml并覆盖主机、端口等配置。有点担心会无意中损坏xml,以及它在NIFI版本中的可移植性 如有任何

随着开发、测试和生产阶段的进展,我们正在努力找出更新处理器配置的最佳方法。我们确实希望避免在将流部署到特定环境时操纵处理器中的主机、端口等引用。至少在我们的情况下,我们会有不同的主机,比如ElasticSearch、PostGres等。其他人是如何处理的

我们考虑的事项:

  • 使用表达式语言从属性文件中提取配置。这对于启用EL的处理器来说是非常好的,但对于那些没有启用EL的处理器来说则不然
  • 操作流xml并覆盖主机、端口等配置。有点担心会无意中损坏xml,以及它在NIFI版本中的可移植性
如有任何提示或建议,将不胜感激。有一个很好的机会,我们有一个明显的解决方案,我们忽略了考虑。 编辑:

我们将使用Byran建议的模板。它们肯定会满足我们的需求,并且似乎是我们跨多个环境控制配置的好方法


这个讨论经常出现,这里肯定有改进的余地

您是正确的,当前的一种方法是将与环境相关的属性值提取到bootstrap.conf中,然后通过表达式语言引用它们,以便flow.xml.gz可以从一个环境移动到另一个环境。正如您提到的,这只适用于支持表达式语言的属性

为了使这在将来变得更容易,有一个称为变量注册表的想法的功能建议:

您可能希望了解的一种有趣的方法是使用模板。有一个GitHub项目可用于帮助实现这一点:


你可以看看这篇文章

为了自动化NIFI模板部署,有一个工具可以很好地工作:

  • 准备您的nifi开发

  • 在nifi上创建模板
  • 然后下载
  • 使用工具提取示例配置
  • 将其部署到生产环境中
  • 使用工具取消部署旧版本
  • 使用工具部署模板
  • 使用工具更新生产配置

一如既往,感谢您的意见,布莱恩。我将看一下模板。嗨,Bryan,我看了一下带有@scarpacci的nifi api部署实用程序,它显然走上了正确的轨道。我们有相当复杂的流,编写的代码似乎不能很好地在根级处理器组或控制器上取消部署处理器/连接。手动删除和重新部署似乎可以正常工作。它似乎也会自动启动处理器组,即使所有包含的处理器都标记为已停止。嗨,Josh,很高兴它似乎在正确的轨道上完成了您要做的事情。就功能而言,该项目是由社区成员维护的,因此如果您认为某个问题无法正常工作,最好的选择可能是通过GitHub页面提交问题,我知道现在讨论中存在一些未决问题。关于自动启动停止的进程组的部分听起来像是应该解决的问题。嗨,我是这个nifi api部署项目的创建者。我一直在根据反馈和人们希望如何使用它来改进它。随时参与并提供反馈和/或请求。