Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache nifi 如何在NiFi中编写自定义ListenTCP处理器_Apache Nifi - Fatal编程技术网

Apache nifi 如何在NiFi中编写自定义ListenTCP处理器

Apache nifi 如何在NiFi中编写自定义ListenTCP处理器,apache-nifi,Apache Nifi,我将读取网络中TCP套接字中的所有流。标准ListenTCP基于\n(硬编码)分割流。如何在NiFi中编写自定义ListenTCP处理器 我需要扩展AbstractListenEventProcessor吗?我重写了所有ListenTCP处理器,但它不工作 处理器有一个JIRA,允许设置可配置的消息分隔符: 为了实现这一点,您需要修改读取消息的套接字处理程序。相关代码如下: SSL也是这样: 让这两个处理程序在构造函数中获取字节定界符,将其存储在成员变量中,然后从getDelimiter()

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


我需要扩展AbstractListenEventProcessor吗?我重写了所有ListenTCP处理器,但它不工作

处理器有一个JIRA,允许设置可配置的消息分隔符:

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

SSL也是这样:

让这两个处理程序在构造函数中获取字节定界符,将其存储在成员变量中,然后从getDelimiter()返回该定界符是相当容易的,然后必须将该字节从处理器一直传递到它创建处理程序时


如果您想使用超过一个字节作为分隔符,那么进行比较会有点困难

我要完整的信息!没有任何分隔符。我重写了整个列表CP和SocketChannelHandler以及Socketchanneldispatcher。它可以工作,但在关闭连接时有一些问题。这取决于“整个消息”的定义是什么。。。听起来像是假设客户机打开一个连接,发送一些被认为是一条消息的数据,然后关闭连接。很多时候,客户机打开一个连接,并且长时间使用同一个连接发送数据而不关闭它,因此必须有一种方法将该数据分解为消息,目前它基于字符分隔符,因为有多少其他日志处理系统(rsyslog,splunk)处理它。