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

Spring云蒸汽注册表和Avro模式文件

冯星阑
2023-03-14

我已经设置了Spring Cloud Stream中提供的Spring Avro模式注册表,以便在RabbitMQ中使用。我看到的大多数示例都使用Maven Avro插件从模式资源文件生成Java类。然后在架构注册表中注册架构文件。我的理解是,此注册表允许消息仅通过对已注册架构的引用进行SERDE,而不是在消息中包含整个架构。我不明白的是,在设计时,这些模式文件是如何在所有服务之间分发的,以生成Java类文件。Maven插件要求模式文件位于类路径上。处理Avro模式定义的最佳实践是什么?任何预付款都将不胜感激。

共有1个答案

沈淇
2023-03-14

消息生产者使用模式定义消息格式。完成后,他们将模式注册到Schema注册表中,并让其他服务知道什么是模式/模式id。

然后,使用者可以从模式注册表中获取模式,并基于该模式生成POJO类。

随着时间的推移,生产者可能会更改模式(根据Avro规则),但消费者仍然应该能够在不更改生产者的情况下接收消息。

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

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

  • 我正在尝试使用Confluent schema registry,下面是我在Github中找到的一些示例(https://github.com/gAmUssA/springboot-kafka-avro). 当消费者和生产者与模型共享相同的命名空间而不是其工作时。 当使用者位于具有不同名称空间但具有相同类(名称和属性方面)的不同项目中时,它不工作。 合流Avro反序列化程序可以使用正确的值反序列化

  • 我有一个Kafka消费者配置了主题中的模式轮询,我想做的是在当前模式的基础上创建另一个Avro模式,并使用它水合数据,基本上我不需要50%的信息,需要编写一些逻辑来更改几个字段。这只是一个例子 从stream返回的事件相当复杂,所以我将一个较小的CustomObj建模为. avsc文件,并将其编译成java。当尝试使用CustomObj运行代码时,我想做的就是使用一个事件,然后将其反序列化为一个更

  • 我正在尝试设置一个Beam管道,以便使用python API读取Kafka的内容。我能够设置消费者配置和主题。如何更新管道以使用合流模式注册表并定义Avro消息值反序列化器?

  • 我试图用函数编程(和spring cloud stream)转换来自输入主题的输入AVRO消息,并在输出主题上发布新消息。下面是我的转换函数: 我的spring boot应用程序是以这种方式声明的,并激活了模式注册表客户机: 谢谢你能给我带来的任何帮助。 视CG