当前位置: 首页 > 知识库问答 >
问题:

Spring Boot:如何在Spring kafka中惯用地配置模式注册表Serdes

鄢飞鸾
2023-03-14

在spring kafka中是否有配置SpecificAvroSerdes(或任何基于模式注册表的serdes-JsonSchema和Protobuf)的示例,允许利用一些自动配置(基于yaml或属性文件)。

在SO中有一些类似的问题,比如如何使用Spring Kafka使用合流模式注册表读取AVRO消息?

但我想具体介绍一下Kafka流serdes和serdes的声明性配置。

非常感谢。

共有1个答案

吕越彬
2023-03-14

看起来Kafka Streams可以配置默认的Serde。请参阅StreamsConfig.DEFAULT_KEY_SERDE_CLASS_CONFIGStreamsConfig.DEFAULT_VALUE_SERDE_CLASS_CONFIG

根据Spring Boot约定,我们可以从YAML文件中提供任意属性:https://docs.spring.io/spring-boot/docs/2.4.0/reference/html/spring-boot-features.html#boot-特色Kafka额外道具

因此,可能可以在应用程序中配置特定的avroserdes。属性如下:

spring.kafka.streams.properties[default.value.serde]=io.confluent.kafka.streams.serdes.avro.SpecificAvroSerdes
 类似资料:
  • 我正在与Avro/Kafka和Confluent的Avro模式注册中心合作。 我使用avsc文件和avdl制作了一些基本模式和具有基本类型的主题。 我正在查看Confluent制作的API文档,以尝试将模式发展到版本2。特别是本部分: https://docs.confluent.io/current/schema-registry/using.html#register-a-new-versio

  • 我现在一直在查看Spring Cloud模式注册表和汇合模式注册表。我可以看到一些区别,例如Spring Cloud模式注册表将模式保存在普通数据库中,默认情况下保存在h2中,而汇合模式注册表保存在kafka主题中。 spring云模式注册表的这种方法是否会对性能产生任何影响。据我所知,即使数据保留在主题上,以防汇合,查询它时仍然会有延迟。但会有重大影响吗? 我还可以看到,spring云模式注册表

  • 我正在使用融合模式注册表和Avro,我想在一个Kafka主题中使用多个模式。 默认主题命名策略不允许这样做,因为它将模式主题名称与主题名称耦合。显然可以覆盖它并将主题命名策略设置为或。 不幸的是,留档不太清楚如何或在哪里可以覆盖主题命名策略。 本文档建议您在创建或修改主题时提供配置: 从Confluent Platform 5.5.0开始,命名策略与主题相关联。因此,您现在可以选择在每个主题的基础

  • 我正在StreamingTableEnvironment中将数据流注册为Flink表。 我没有使用Create Table命令with connector注册流,因为数据格式是自定义的,这就是我为什么要注册流的原因。

  • 我正在了解Confluent的模式注册表,以满足所有模式管理需求。 我不太理解他们的版本控制方法...有一个的概念,我将其视为一个名称空间。据我所知,subject在模式注册表中必须是唯一。 然后是模式id,或者只是,它也是唯一的。 最后,还有一个。 以下是文档中的片段: :此主题的架构版本,每个主题从1开始 :全局唯一的架构版本id,在所有主题中的所有架构中都是唯一的 因此,一旦我想修改特定主题

  • 我在学习Spring Boot时遇到了一些编码问题;我想添加一个像Spring3.x那样的CharacterEncodingFilter。就像这样: