KAFKA Schema Registry
对于Kafka Producer 和Kafka Consumer , Kafka的schema Registry 都存储AVRO Schemas。
5. 为什么需要schema Registry?
ksqldb 用于处理AVRO 格式的数据。 确切地说是处理所有的非JSON格式数据。 若没有schemaRegistry, ksqldb只能使用json 和delimited 的格式
6, 如何给某个主题produce AVRO格式的数据
7.1 首先需要自定义一个AVRO格式,其实就类似于数据库里面创建一个表结构,只是该表结构是json格式的
{“namespace”: ***"hltestt"*,
“type”: “record”,
“name”: "bbb",
“fields”: [
{“name”: “id”, “type”: “string”},
{“name”: “tname”, “type”: “string”},
{“name”: “address”, “type”: “string”}
]
}
注意,,namespace是自己定义的, name就类似于表名。
fields里面的内容就类似于表结构
上面这个就是需要被送往schema registry url 注册的schema。 随后对应的数据就可以按照这个schema进行生产和消费。
一个topic里面是可以包含多种不同的数据格式的数据。但是当你从control 中心察看时,就只能使用json 格式察看。这个时候所有的非json格式的数据,看上去就有点像是乱码。这个时候就需要靠代码进行察看
第二步: 运用下面的命令进行注册
curl -X POST -H “Content-Type: application/vnd.schemaregistry.v1+json”
–data ’ schema 内容{就是上面定义的json文件内容}’
schema_registry URL/subjects/topicName-value/versions
这样就表示给某个topicName的value注册了schema,若注册成功了会返回一个schemaID, 这个schemaID 就类似于数据库表中的主键。也是数据找到对应的schema的外键