ele*_*sis 2 avro apache-kafka confluent-schema-registry
我们正在努力设置 Kafka 集群并探索 Avro 的使用,但我还没有找到有关 Avro 是否应该用于 Kafka 消息的键和值的指导。我已经探索了这两个用例,但我并没有真正看到在关键级别应用 AVRO 的好处。有什么好的理由这样做吗?后续如果不在密钥上使用 AVRO,首选转换器是什么(字符串、JSON 等)?
是否应在 Kafka 消息的键和值上使用 Avro
这取决于您将如何使用密钥。键通常(并非总是)单个字段,可能是字符串或数字,但不是复杂的对象。既然如此,就没有理由为它们使用 Avro 格式。
我已经探索了这两个用例,但我并没有真正看到在关键级别应用 AVRO 的好处
您可以通过考虑将输入的内容作为密钥来评估使用情况。如果值是您最关心的,并且简单的字符串或数字足以区分(或)分类您的 Kafka 消息,则不需要 Avro 格式。
有时,可能存在多个字段组成一个键的用例,就像我们在 RDBMS 中从多个列创建主键一样。如果您认为您的应用程序具有(或可以具有)这样的用例,则使用 avro 来支持模式演化。
后续如果不使用 AVRO 的话,首选转换器是什么(字符串、JSON 等)
JSON 和 Avro 适用于复杂对象,例如自定义 POJO,而其他对象(如 String、Long 等)则适用于单个字段值。
如果我想流式传输可由user_id标识的用户信息,那么user_id将是我的 Kafka 消息密钥。在这种情况下我们可以使用Stringor Long。
Avro 具有紧凑的二进制格式。有关为什么使用 Avro for Kafka 的更多信息,请参阅这篇文章。
| 归档时间: |
|
| 查看次数: |
2571 次 |
| 最近记录: |