Apache nifi 如何在NiFi中编写自定义ListenTCP处理器
我将读取网络中TCP套接字中的所有流。标准ListenTCP基于\n(硬编码)分割流。如何在NiFi中编写自定义ListenTCP处理器Apache nifi 如何在NiFi中编写自定义ListenTCP处理器,apache-nifi,Apache Nifi,我将读取网络中TCP套接字中的所有流。标准ListenTCP基于\n(硬编码)分割流。如何在NiFi中编写自定义ListenTCP处理器 我需要扩展AbstractListenEventProcessor吗?我重写了所有ListenTCP处理器,但它不工作 处理器有一个JIRA,允许设置可配置的消息分隔符: 为了实现这一点,您需要修改读取消息的套接字处理程序。相关代码如下: SSL也是这样: 让这两个处理程序在构造函数中获取字节定界符,将其存储在成员变量中,然后从getDelimiter()
我需要扩展AbstractListenEventProcessor吗?我重写了所有ListenTCP处理器,但它不工作 处理器有一个JIRA,允许设置可配置的消息分隔符: 为了实现这一点,您需要修改读取消息的套接字处理程序。相关代码如下: SSL也是这样: 让这两个处理程序在构造函数中获取字节定界符,将其存储在成员变量中,然后从getDelimiter()返回该定界符是相当容易的,然后必须将该字节从处理器一直传递到它创建处理程序时
如果您想使用超过一个字节作为分隔符,那么进行比较会有点困难 我要完整的信息!没有任何分隔符。我重写了整个列表CP和SocketChannelHandler以及Socketchanneldispatcher。它可以工作,但在关闭连接时有一些问题。这取决于“整个消息”的定义是什么。。。听起来像是假设客户机打开一个连接,发送一些被认为是一条消息的数据,然后关闭连接。很多时候,客户机打开一个连接,并且长时间使用同一个连接发送数据而不关闭它,因此必须有一种方法将该数据分解为消息,目前它基于字符分隔符,因为有多少其他日志处理系统(rsyslog,splunk)处理它。