我们将模拟设备创建的数据与NanoMSG一起放在网络上,并带有Google FlatBuffers(二进制)的有效载荷。
我们想使用OpenWhisk触发此数据的模式,并使用Flatbuffer编码的响应进行响应。
这里假设延迟和吞吐量不是大问题。
我们可以采取哪种方法:
编写一个将Flatbuffer转换为JSON的中继器(FB有一个实用程序来执行此操作),然后将数据放置到OpenWhisk监听的AMQP总线上? (我们有些人熟悉AMQP,但不熟悉Kafka
尝试对Kafka进行操作,这似乎(可能只是IBM版本)直接处理二进制Flabuffers(可能仍需要从NanoMSG到Kafka的填充程序。例如
How to invoke an OpenWhisk action from IoT Platform in Bluemix
不确定我们是否仍然不需要Flatbuffers JavaScript解串器和序列化器将JavaScript中基于二进制的64位数据转换为JSON
学习Kakfa,然后将NanoMsg有效负载(从Flatbuffers转换为JSON)。
还有什么?
有人对此有直接经验吗?
更新
谢谢James,这些都是现场链接。但这确实引起了一些次要问题:
答案 0 :(得分:2)
这两个选项都有意义。 OpenWhisk操作接收并返回JSON消息。传递给这些函数的二进制数据必须经过Base64编码。
如果使用AMQP提要,则可以将二进制数据手动转换为JSON。
Kafka feed provider确实支持对二进制输入值(使用isBinary *参数)进行自动编码。
Kafka供稿将大量消息推送到OpenWhisk操作。这与消息队列不同,后者一次只能推送一条消息。该提要提供程序是内置的OpenWhisk。
有一个AMQP here的外部社区供稿提供程序。这将需要您手动安装和运行。