如何将模式存储在producer的本地缓存中(已在schema注册表中注册)

svujldwt  于 2021-06-06  发布在  Kafka
关注(0)|答案(1)|浏览(400)

正如我们所知,生产者有一个本地缓存内存,它存储模式(在模式注册表中注册)。在注册一个唯一的模式之后,将生成一个id。
这个缓存是否使用这个生成的id作为Map的键?

whhtz7ly

whhtz7ly1#

模式由模式字符串的md5散列存储,并且有三个缓存

private final Map<String, Map<Schema, Integer>> schemaCache;
private final Map<String, Map<Integer, Schema>> idCache;
private final Map<String, Map<Schema, Integer>> versionCache;

https://github.com/confluentinc/schema-registry/blob/master/client/src/main/java/io/confluent/kafka/schemaregistry/client/cachedschemaregistryclient.java
如果你问是因为你想访问缓存,那么你需要使用反射来访问这些字段

相关问题