如何在NiFi

时间:2017-01-07 06:29:20

标签: apache-nifi

我将读取网络中TCP套接字中的所有流。基于\ n(硬编码)的标准ListenTCP分割流。我如何在NiFi中编写自定义ListenTCP处理器。

我是否需要扩展AbstractListenEventProcessor?我重写了所有ListenTCP处理器,但它不起作用。

1 个答案:

答案 0 :(得分:1)

处理器有一个JIRA允许设置可配置的消息分隔符:https://issues.apache.org/jira/browse/NIFI-1985

为了实现这一点,您需要修改读取消息的套接字处理程序。相关代码在这里:

https://github.com/apache/nifi/blob/master/nifi-commons/nifi-processor-utilities/src/main/java/org/apache/nifi/processor/util/listen/handler/socket/StandardSocketChannelHandler.java#L136

SSL也是如此:

https://github.com/apache/nifi/blob/master/nifi-commons/nifi-processor-utilities/src/main/java/org/apache/nifi/processor/util/listen/handler/socket/StandardSocketChannelHandler.java#L136

让两个处理程序在构造函数中使用字节分隔符,将其存储在成员变量中,然后从getDelimiter()返回,然后你必须将所有字节传递给从处理器到创建处理程序的时间。

如果您想使用多于一个字节作为分隔符,那么进行比较会更具挑战性。