架构注册表中的关键架构是什么?

时间:2018-03-08 08:39:52

标签: java apache-kafka avro confluent-schema-registry

我对密钥模式没有确切的认识,它是什么,为什么它必须被用作密钥是自动生成的,我们只传递一个值(消息)。

对于值,我们将模式传递给AVRO Serialiser,并且序列化程序从模式注册表获取它的模式ID,并使用我们传递的值(消息)嵌入模式标识(如果我错了,请纠正我)。密钥怎么了?

我们是否还需要传递密钥架构? 传递密钥模式的重要性是什么? 并且,如何传递密钥架构?

2 个答案:

答案 0 :(得分:2)

Kafka消息是键/值对。您设置密钥的方法由您和您正在实施的内容的要求决定。

消息密钥用于分区分配。通常,您可以根据您希望执行的处理以及要对数据施加的任何严格排序来键入消息。例如,如果您希望在同一个使用者组中有多个并行进程,并且每个进程都接收给定客户的所有记录,那么您将键入客户ID。

答案 1 :(得分:0)

使用@Robin的答案添加更多信息

由于每个kafka消息都有一个键和值,key可以为null或一些原始类型值。

如果您发送带有主题T的字符串类型键和整数类型值的消息,则Schema注册表会创建两个主题: T-key T-value

T-key将存储字符串类型键的avro架构。如果没有附加到消息的键(空类型),则它不会在模式注册表中注册任何模式。