avro - 为什么生产者在使用 spring-kafka 时更多地调用 Schema 注册表而不是使用生产者缓存?
问题描述
我正在使用 spring-kafka 2.2.8 并且我们正在使用融合模式注册表进行模式验证,因为我们正在发布 avro 消息。
以下是我们在生产者配置中设置模式注册表 URL 的方式。
configs.put(KafkaAvroSerializerConfig.SCHEMA_REGISTRY_URL_CONFIG, schemaRegistryURL);
现在,当我发送 10 条相同类型(相同模式和相同主题)的消息时,我看到对模式注册表进行了 20 次调用,并且每条发送消息对 SR 进行了两次调用,如下所示
HttpURLConnection[]:getOutputStream HttpURLConnection[]:getInputStream
现在我的问题是:
- 为什么每条消息都要两次调用 SR?
- 为什么模式信息没有被缓存在生产者端?
解决方案
显示您的配置。
我刚刚测试过,只看到一个电话;放一个断点CachedSchemaRegistry.register()
- 我看到后续调用在缓存中找到“主题”。
推荐阅读
- javascript - 如何在jquery上总计两个不同的下拉选择
- python - 应用于形状张量的 IShuffleLayer 必须具有 0 或 1 个重塑尺寸:尺寸为 [1,4]
- python - 向合并的数据框添加子索引
- ios - 只调用一次长按按钮动作而不是快速射击
- javascript - 由于路径为空,如何修改我的代码以防止应用程序崩溃
- caching - 指令是如何以及在哪里缓存的?
- c# - 如何压缩目录然后返回结果字节数组,而不在磁盘上物理创建 zip 文件?
- jquery - 如何使用 npm 从 svelte 使用 jquery 和数据表
- java - Find Clusters in a Multidimensional Array Java
- powershell - Powershell合并目录