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

我们可以将独立的Spring云模式注册表与Confluent的KafkaAvroSerializer一起使用吗?

慕容安易
2023-03-14

我有一个使用Spring cloud stream和Kafka Streams活页夹的项目。对于流的输出,我使用的是Avro,Serde由Confluent提供(io.Confluent.kafka.streams.serdes.Avro.SpecificAvroSerde)。

我可以将它与ConFluent Schema注册表一起使用。序列化和反序列化正确进行。但是,我想看看我们是否可以使用Spring Cloud Schema注册表服务器而不是ConFluent服务器。我配置了一个独立的Schema注册表服务器,并将项目中的模式注册表设置为它(更改了SchemaRegstryClient.endpointschema.registry.url属性)。

当我试用时,Spring Cloud似乎能够与独立服务器配合使用。它将资源文件夹中可用的架构注册为。avsc文件。然而,当我发送消息时,合流序列化程序似乎继续将其作为合流模式注册表(它与Spring模式注册表具有不同的RESTendpoint)来处理。结果,它得到一个405响应代码。

我们得到以下异常(部分堆栈跟踪)

org.apache.kafka.common.errors.SerializationException: Error registering Avro schema: <my-avro-schema>
Caused by: io.confluent.kafka.schemaregistry.client.rest.exceptions.RestClientException: Unexpected character ('<' (code 60)): expected a valid value (JSON String, Number, Array, Object or token 'null', 'true' or 'false')
 at [Source: (sun.net.www.protocol.http.HttpURLConnection$HttpInputStream); line: 1, column: 2]; error code: 50005
    at io.confluent.kafka.schemaregistry.client.rest.RestService.sendHttpRequest(RestService.java:230)

在我看来,有两种可能性:

  1. Spring Schema Registry Server只能使用Spring提供的内容类型(指定为内容类型:application/*avro),而不能使用Confluent提供的本机Serde,或
  2. 项目配置存在问题

有人能帮我找出是哪一个吗?如果是第二个问题,有人能指出问题所在吗?


共有1个答案

伏业
2023-03-14

每个模式注册表提供程序都需要一个专有的SerDe库。例如,如果您想将AWS Glue Schema注册表与Kafka集成,那么您将需要Amazon的SerDe东西。因此,ConFluent的SerDe库希望ConFluent的Schema注册表位于schema.registry.url属性中指定的地址。

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

  • 问题内容: 我正在使用大猩猩架构根据用户的表单提交来填充结构。我的结构包含,并且我目前收到以下错误: 如何在要使用大猩猩架构填充的结构中使用? 问题答案: 我创建了一个要点(https://gist.github.com/carbocation/51b55297702c7d30d3ef),它显示了解决此问题的一种方法。您需要为以下四种类型的每一种创建一个:sql.NullString,sql.Nu

  • 问题内容: 我正在使用BeautifulSoup抓取网址,并且我有以下代码 现在在上面的代码中,我们可以用来获取标签和与其相关的信息,但是我想使用xpath。是否可以将xpath与BeautifulSoup一起使用?如果可能的话,任何人都可以给我提供示例代码,以使其更有帮助吗? 问题答案: 不,BeautifulSoup本身不支持XPath表达式。 另一种库,LXML, 不 支持的XPath 1.

  • 就像在主题中一样,我可以使用Thymeleaf布局方言和spring吗?我必须使用Spring标准方言吗? 网上有这么多的资料,这让我很困惑。 我已经开始使用布局方言,但我无法使用整个应用程序。 这是我的模板主文件: 以及控制器返回的我的示例主体文件: 但不幸的是,这段代码只适用于布局方言。 有人能帮我把代码转换成spring标准方言吗? 我的手机配置:

  • Kafka流之外的应用程序可以使用融合模式注册表吗?我特别感兴趣的是将此组件用于Apache Kafka以外的消息队列,例如云发布/订阅。根据调查,该组件似乎与使用融合平台的应用程序紧密耦合。

  • 我正在考虑使用模式来验证Kafka主题的数据。我正在结合apache kafka探索spring云模式注册表。 如果我在阅读文档后理解正确。Spring云模式注册表仅支持avro模式!在avro pojos中,需要使用类路径上的. avsc文件生成pojos,并且有一个maven插件可以完成所需的工作。 问题: 如果我的POJO上有这样的自定义验证呢?我不想在我的Kafka消费者中使用avro模式