我正在使用Avro序列化来处理Kafka上的消息,并使用this annotation method处理一些自定义Scala代码。以下是具有嵌套记录的基本模式:
{
"type": "record",
"name": "TestMessage",
"namespace": "",
"fields": [
{"name": "message", "type": "string"},
{
"name": "metaData",
"type": {
"type": "record",
"name": "MetaData",
"fields": [
{"name": "source", "type": "string"},
{"name": "timestamp", "type": "string"}
]
}
}
]
}
注释,我认为应该简单地看起来像:
@AvroTypeProvider("schema-common/TestMessage.avsc")
@AvroRecord
case class TestMessage()
消息本身如下所示:
{"message":"hello 1",
"metaData":{
"source":"postman",
"timestamp":"123456789"
}
}
但是,当我在控制台中记录TestMessage类型或在Kafka使用者中查看输出时,我看到的只有:
{"message":"hello 1"}
而不是我添加的子类型来捕获MetaData。我错过了什么?如果我能提供更多信息,请告诉我 - 谢谢!