Java 合流模式注册表如何管理本地缓存

Java 合流模式注册表如何管理本地缓存,java,caching,apache-kafka,avro,confluent-schema-registry,Java,Caching,Apache Kafka,Avro,Confluent Schema Registry,我们计划通过Kafka推送数百万条消息,使用模式注册表(SR)(Confluent)不总是发送完整的模式 该架构与此图相关: 事实上,我们希望避免在制作人想要发送消息或消费者将收到消息的所有时间都有一个呼叫SR 所以我想在这里讨论由AvroSerializer和AvroDeserializer管理的“本地”缓存。我认为实现了这一点的贡献者应该做得很好 但是由于涉及的调用数量很大,我只想确定在上面的模式中我用红色写了什么 我没有找到任何函数来管理这个“本地”缓存,你知道如何检查它的内容、大小 非

我们计划通过Kafka推送数百万条消息,使用模式注册表(SR)(Confluent)不总是发送完整的模式

该架构与此图相关:

事实上,我们希望避免在制作人想要发送消息或消费者将收到消息的所有时间都有一个呼叫SR

所以我想在这里讨论由AvroSerializer和AvroDeserializer管理的“本地”缓存。我认为实现了这一点的贡献者应该做得很好

但是由于涉及的调用数量很大,我只想确定在上面的模式中我用红色写了什么

我没有找到任何函数来管理这个“本地”缓存,你知道如何检查它的内容、大小


非常感谢

好的,最后我自己测试了一下,找到了这个架构: ubuntu下的2个VMBox,一个用于生产者/经纪人/消费者,另一个用于模式注册表(合流)

我还在bot VM中设置了WireShark TCP数据包分析器

当我为一条消息或数千条消息启动producer时,释放的数据包数相同:

设置一些睡眠(在Java中),我可以看到对模式注册表的调用仅在必须发送第一条消息时完成,而不是在创建生产者时完成


希望这能有所帮助……

如果您阅读,您会发现本地缓存中存储的架构与您预期的一样。尝试了解该架构在生产者和消费者端的异常情况下,Confluent schema Registry是如何管理本地缓存的。1.如果本地缓存中不存在架构ID,使用者将如何始终反序列化数据?它将一直尝试,直到模式ID缓存在本地缓存中,或者每次都将请求发送到汇合模式注册表服务器。请帮我理解。2.在生产者端序列化的相同场景,如果不是,SR将被合并到模式注册服务器?