我正在尝试使用REST代理来使用Confluent Kafka流数据平台。
我见过以下路径的文档,
https://docs.confluent.io/current/kafka-rest/docs/intro.html
他们使用REST代理API有各种使用steaming方法:
我认为“制作和消费二进制消息”是用于流媒体文件还是其他文件?
我假设“生成和使用JSON消息”用于流式传输Json数据?
我怀疑“生产和消费JSON消息”与“生成和消费Avro消息”与“生成和消费二进制消息”之间的确切区别是什么。
有人可以解释一下,因为他们没有详细的文件。
答案 0 :(得分:0)
所有Kafka数据均为二进制数据。 Avro是一种二进制数据,它恰好具有结构化架构。
文件也是二进制文件,但Kafka不适用于文件传输-例如1)Kafka协议中有一个最大的邮件大小,2)Kafka是用于水平扩展的,并且文件不应该跨分区分布,3)如果文件损坏了,您就不容易确定文件的开始和结束位置分开。
REST Proxy文档中显示的二进制格式是base64字符串,以文本形式发送,但以原始二进制格式解码并存储在代理中。换句话说,如果您有一个可以编码为小于有效负载限制的base64字符串的文件,那么可以发送它,但这不是该格式的主要目的-而是可以表达的自定义格式作为字符串表示形式,由于技术(或历史)原因,无法将其转换为JSON或Avro。
JSON和其他人类可读格式是纯文本。