带有Google Flatbuffers有效负载的Websocket流的Apache NiFi

时间:2018-07-05 21:05:03

标签: apache-nifi

以前有做过这样的事情吗?如果没有,那么如何使NiFi接收使用Google FlatBuffers通过WebSocket到达的流?

(简单的TCP流会使它变得更容易或更困难吗?)


更新

我有一个在节点上运行的C ++程序,该程序正在收集数据并通过websocket上的nanomessage pub / sub通道发布数据。 C ++中的数据看起来像结构,我正在使用Google Flatbuffers对其进行序列化。考虑到csv记录,这是一个非常简单的结构。我们有一个团队成员想要使用NiFi捕获此数据并将其存储到数据库中。

就个人而言,由于Flatbuffers支持将二进制转换为JSON,因此我认为,仅编写一个简短的C#,python,java或javascript程序来接收flabuffers,打开数据库连接并转储数据,这几乎会更容易。 (如果需要,可以先转换为JSON)。

1 个答案:

答案 0 :(得分:1)

据我所知,NiFi尚未与nanomsg库/协议集成。这可能需要编写一个自定义处理器,以便能够使用nanomsg PUBSUB模式/套接字类型使用nanomsg数据包。

一个人可以使用现有的处理器,例如Consume*处理器(ConsumeKafkaConsumeJMS)作为示例/指南,以编写如何使用从主题/队列中获取消息的处理器遵循发布/订阅模式。

然后,您需要将有效载荷从Flatbuffers二进制转换为可插入所需数据库的格式。同样,使用从Flatbuffer模式生成的代码的自定义处理器可能是正确的方法。

正如您提到的,这也可以通过一个简单的程序来完成。如果您使用Java(使用Java nanomsg和flatbuffers库)将该程序作为原型/概念验证来编写,那么将来如果希望迁移到NiFi,可以将其重构为一个或多个NiFi自定义处理器。 / p>