当前位置: 首页 > 知识库问答 >
问题:

如何创建自定义NiFi控制器服务?

郏稳
2023-03-14

我明白,对于处理器,我只需在nifi-listdbtabledemo-processors文件夹下的myproceesor.java中编写代码,然后从中创建一个nar文件。但是在控制器服务的情况下,我有4个文件夹生成。我可以看到两个java文件。

>

  • standardmyservice.java显示在nifi-dbcpservicedemo文件夹下

    myservice.java显示在nifi-dbcpservicedemo-api文件夹下

    现在,为什么在自定义控制器服务的情况下生成两个java文件,而在自定义处理器的情况下只生成一个java文件。另外,由于我试图模仿dbcpconnectionpool服务,其中的java文件中有两个我应该复制dbcpconnectionpool服务的原始源代码。

    请从头开始指导我创建与dbcpconnectionpool服务等效的自定义服务所需遵循的步骤。

  • 共有1个答案

    燕鸿文
    2023-03-14

    nifi-dbcpservicedemo-api下的myservice.java是由nifi-dbcpservicedemo下的standardmyservice.java实现的接口。实现完成后,必须使用nifi-dbcpservicedemo-api作为处理器包中的依赖项,该包需要与该自定义控制器服务一起工作。

    控制器服务以这种方式实现的原因是:

    • 我们将对处理器包隐藏实际实现,因为它不需要依赖于实现。
    • 明天您将编写一个新的控制器服务实现,例如standardmyservicetwo,它再次实现myservice,因为只有实现与standardmyservice不同,其他成员保持不变,可以共享。这种新的控制器服务可以透明地引入,而无需对处理器包进行任何更改。

    示例:

    对于您的参考,请查看以下链接,这些链接将帮助您从头开始编写自定义控制器服务

    • http://www.nifi.rocks/development-a-custom-apache-nifi-controller-service/
    • https://github.com/bbende/nifi-dependency-example
     类似资料:
    • 我似乎无法创建一个自定义的DistributedMapCacheClientService(名为TestDistributedMapCacheClientService)供普通nifi处理器(如Wait和PutDistributedMapCache)使用。我可以让Wait和PutDistributedMapCache看到我的自定义服务,但处理器无法启动,因为nifi说我的nar“与AtomicDi

    • 我看到了Apache NiFi的这个示例(https://medium.com/hashmapinc/creating-custom-processors-and-controllers-in-apache-nifi-e14148740ea),但仍然无法理解如何为自定义处理器和控制器服务实现打包结构。 我的目标是创建一个自定义控制器服务来使用我的多个自定义处理器。我的maven结构应该是什么样子?

    • 我编写了一个自定义的NiFi处理器,用于在BigQuery上执行一些任务。我希望能够重用与NiFi捆绑在一起的GCP凭据提供者控制器服务,以用于身份验证。这可能吗?我尝试将nifi-gcp-processors maven依赖项添加到我的项目中,它成功构建,但当我尝试用我的nar启动NiFi时,它失败了,出现了这个错误消息。

    • 我们的GKE集群共享给公司的多个团队。每个团队可以有不同的公共域(因此希望有不同的CA证书设置和不同的入口网关控制器)。在Istio怎么做?Istio网站上的所有教程/介绍文章都使用了共享入口网关。请参见ISTIO-1.0.0安装的共享入口网关示例:https://istio.io/docs/tasks/traffic-management/secure-ingress/

    • 我正在构建一个自定义处理器来处理流文件,为了处理流文件,我需要从我的本地文件系统读取CSV文件。我创建了一个proerty描述符CSV_PATH,如下所示 现在我想在配置处理器时获取在UI中设置的CSV_PATH属性的值。我无法获得CSV_PATH值。另外,如果我在代码中硬编码filepath,那么我仍然无法从本地文件系统读取CSV。

    • 问题内容: 我正在http://www.cafeaulait.org/javafaq.html上阅读#6.10项,然后我开始怀疑大型企业如何创建自己的JVM实现。一个人会尝试(或可行)实验性的东西吗? 问题答案: 从技术上讲,创建该新JVM所需的所有信息都是该语言和目标平台的公共规范。即使字节码解释在很大程度上相同,JVM还是需要根据其是要在台式机还是手机上运行而有所不同。 一些开始寻找信息的地方