我有一个使用融合模式注册表的 kafka 生产者。我知道有一种算法,基于该算法,
KafkaAvroSerializer
从汇合模式注册表中找到匹配的 schemaId(或在注册模式后获取它),以便将其作为有线格式的一部分包含在内。
有没有办法可以访问生产者添加到消息中的特定架构 ID?
您可以使用
CachedSchemaRegistryClient
类进行 HTTP 查找来获取 ID。
否则,你可以使用ByteBuffer
Serializer s = new KafkaAvroSerializer();
s.configure(...); // give properties like registry url
byte[] value = s.serialize(record); // example
ByteBuffer bb = ByteBuffer.wrap(value);
bb.get(); // magic byte
int schemaId = bb.getInt();