Apache NiFi初体验

2019-05-16  本文已影响0人  多关心老人

在queue里面可以设置背压,objects threshold和size threshold哪个先达到就会把压力传导到upstream queue,最终达到CaptureChangeMySQL,停止消费binlog。

PutSQL的rollback on false=true,这样flow file就会停留在input queue里面,这样才会让背压起作用。
https://stackoverflow.com/questions/56374764/stop-capturechangemysql-when-putsql-failed/56374948#56374948


NIFI的坑:

-问题2:MergeContentProcessor会有一定的几率不能保证前后sql的顺序。

IDEA里运行和调试项目

1.运行NIFI


image.png

把nifi/lib/bootstrap下的jar添加到dependencies.

image.png

其中VM options指定conf和log目录在哪.

2.调试NIFI
上面运行了NIFI即使打上断点也不能调试, 需要通过Remote Debug


image.png

未解决的问题

上面在IDEA里调试,如果改了代码,不知道怎么打包让代码生效?
方法:没有方法直接在IDEA里修改代码即生效,因为nifi启动时候会从bootstrap.conf的上级目录下的lib文件夹里解压nar包,获取到.jar组装到classpath, 代码在RunNiFi.start(). 因此改完代码后需要package,拷贝到nifi/lib目录下替换.

可以在IDEA里启动RunNifi和Remote debug, 只是每次改动代码后要重新打nar包放到nifi/lib下面即可.

通过.getClass().getProtectionDomain().getCodeSource()发现加载的是.work/下面的jar,不知道为什么从这里加载? 有时间再看一下.
看上面的解释.

上一篇下一篇

猜你喜欢

热点阅读