汇总的Kafka REST代理流式传输方法

时间:2018-02-07 04:55:11

标签: rest apache-kafka confluent

我正在尝试使用REST代理来使用Confluent Kafka流数据平台。

我见过以下路径的文档,

https://docs.confluent.io/current/kafka-rest/docs/intro.html

他们使用REST代理API有各种使用steaming方法:

我认为“制作和消费二进制消息”是用于流媒体文件还是其他文件?

我假设“生成和使用JSON消息”用于流式传输Json数据?

我怀疑“生产和消费JSON消息”与“生成和消费Avro消息”与“生成和消费二进制消息”之间的确切区别是什么。

有人可以解释一下,因为他们没有详细的文件。

1 个答案:

答案 0 :(得分:0)

所有Kafka数据均为二进制数据。 Avro是一种二进制数据,它恰好具有结构化架构。

文件也是二进制文件,但Kafka不适用于文件传输-例如1)Kafka协议中有一个最大的邮件大小,2)Kafka是用于水平扩展的,并且文件不应该跨分区分布,3)如果文件损坏了,您就不容易确定文件的开始和结束位置分开。

REST Proxy文档中显示的二进制格式是base64字符串,以文本形式发送,但以原始二进制格式解码并存储在代理中。换句话说,如果您有一个可以编码为小于有效负载限制的base64字符串的文件,那么可以发送它,但这不是该格式的主要目的-而是可以表达的自定义格式作为字符串表示形式,由于技术(或历史)原因,无法将其转换为JSON或Avro。

JSON和其他人类可读格式是纯文本。