NIFI 自定义Service过程
我理解的这个Service其实就是NIFI提供了一项把一些组件 重复使用的服务给抽取出来,统一管理,一方面可以减少代码重复,另一方面在对服务进行修改时也不需要对每个引用的组件都升级版本。
创建一个测试的Service项目
NIFI的Service一共是4个子项目
这四个子项目两两一对,对应着一个jar和一个nar。其中,api后缀的项目是一个实现了ControllerService的接口,api-nar是对应的nar文件。另外一个nifi-true是实现了nfi-true-api中接口的实现。
需要编写类的基本结构
true-api中的自定义接口可以看到这个接口继承了ContrallerService接口,在该接口中你无需关注NIFI的其他实现,只需要提供自己要使用的抽象方法即可。
这是nifi-true中自定义Service类的基本结构,他继承了AbstractControllerService实现了自定义的Service接口。AbstractControllerService提供了context,生命周期,属性等的调用能力,自己根据需要定义属性,实现自定义接口方法即可。
项目打包安装
完成之后需要将项目整体打包安装,4个项目各司其职,两个nar包用来上传至NIFI extends中,供nifi加载识别,另外两个jar包,在你使用时引用用来提供api调用(可参考上篇文章NIFI中使用DBCPServicePool)。
至此自定义Service以及使用就完成了。