编写 Avro 生产者时是否需要单独的密钥模式(字段模式除外)?
Is there a need of seperate Key Schema(other than a schema for fields) while writing Avro producer?
我正在为我的项目编写 Java Avro Producer 代码。我已经为所有需要传递的字段注册了一个 Avro 模式。
我注册的模式-
{
"名称": "声明",
"类型": "记录",
"命名空间": "com.schema.avro",
“字段”:[
{
"name": "icn",
"type": "string"
},
{
"name": "fln,
"type": "int"
},
]
}
我使用“icn”字段值作为键,但我没有单独注册的键模式。我不确定是否需要这样做。
i) 我可以直接使用当前模式中已有的字段(在本例中为“icn”)作为键,而无需注册键模式吗?
ii) 我需要单独注册密钥模式吗?如果是这样,那部分架构是否已经为字段创建或者有所不同?
您不需要为密钥使用 avro。如果您的密钥是字符串类型,您可以使用 org.apache.kafka.common.serialization.StringSerializer。如果要使用 avro,则需要为每个对象类型注册架构。
我正在为我的项目编写 Java Avro Producer 代码。我已经为所有需要传递的字段注册了一个 Avro 模式。
我注册的模式-
{
"名称": "声明",
"类型": "记录",
"命名空间": "com.schema.avro",
“字段”:[
{
"name": "icn",
"type": "string"
},
{
"name": "fln,
"type": "int"
},
]
}
我使用“icn”字段值作为键,但我没有单独注册的键模式。我不确定是否需要这样做。
i) 我可以直接使用当前模式中已有的字段(在本例中为“icn”)作为键,而无需注册键模式吗?
ii) 我需要单独注册密钥模式吗?如果是这样,那部分架构是否已经为字段创建或者有所不同?
您不需要为密钥使用 avro。如果您的密钥是字符串类型,您可以使用 org.apache.kafka.common.serialization.StringSerializer。如果要使用 avro,则需要为每个对象类型注册架构。