为什么kafka在主题中希望数据为二进制(字节数组)?

时间:2019-05-19 10:59:09

标签: serialization apache-kafka

我想知道kafka在主题中将数据转换为二进制(字节数组)带来的好处吗?(序列化)

谢谢。

1 个答案:

答案 0 :(得分:3)

Kafka摘录:权威指南

  

就Kafka而言,一条消息只是一个字节数组,所以   其中包含的数据没有特定格式,或者   对卡夫卡而言。一条消息可以包含一些可选的元数据,   这称为密钥。密钥也是一个字节数组,并且   该消息对Kafka没有特定意义。

所以这里真正的问题是:以字节数组存储数据有什么好处?

字节数组是一种通用的数据格式,实际上我们知道的任何数据类型(或由开发人员创建的自定义数据类型)都可以在字节数组中进行序列化/反序列化。

@aran 在评论中提供了很好的例子。只是增加了另一个原因,我们不需要关心Kafka中的模式和消息验证。这只是一家商店...想象一下500个运行于kafka以及从kafka生产/从中消费的应用程序。消息可以有500种不同的模式和数据类型(字符串,整数,Json,XML等),以及超过500种验证标准。但是,这些是应用程序结束操作。因此,像Kafka这样的消息传递平台不应该关心这些格式,而应该提供一种通用的方式来存储所有它显然要处理的数据。 :)

希望有帮助! :)