简单整理一下有关Nifi自定义Processor的准备工作。
首先开发工具,JDK什么的就不多说了。
这里以Eclipse为例,JDK版本为1.8.0_161
其他开发工具大体步骤类似,JDK的话,不建议使用更低的版本,因为之前有看过的1.4.0的源码,其中就已经使用到了λ表达式,这个东西是JAVA8,也就是1.8.XXX才开始支持的
由于Nifi对于开发Processor有自己的一套框架,所以在开发自定义Processor上大致有两条路可以走
- 在原有的基础上进行扩充,这样的方法优点很明显:
容易搭建环境;在现有的基础上进行修改,不容易出现依赖问题。
缺点也同样明显,首先就是没办法自由的修改项目名称等,因为有已经存在的组件,贸然修改可能会造成更大的问题;依赖冲突,因为之前组件已经拥有大量的依赖,开发新功能导入依赖的时候,很容易就产生冲突,并且不是特别容易解决 - 新建Model来进行自己的开发,这种方式的优点是可以将功能不同组件尽可能的分离开来互不影响,而缺点则是环境搭建较为麻烦。
第一种方式,我感觉有点傻,而且会给后续的维护造成很多麻烦,特别是Nifi现在还在飞速发展阶段,在不断地更新,在原有基础上修改的方式,维护成本过高。
这里主要说一下第二种方式,就是自己创建Model,这个也有很多方式吧,但是最简单的还是通过Nifi的nifi-processor-bundle-archetype。建议直接使用