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

在编写Avro生产者时是否需要单独的Key Schema(字段的模式除外)?

卫沈义
2023-03-14

我正在为我的项目编写Java Avro生产者代码。我已经为所有需要传递的字段注册了Avro模式。

我的注册计划-

{

“姓名”:“索赔”,

“类型”:“记录”,

“namespace”:“com.schema.avro”,

“字段”:[

{

  "name": "icn",

  "type": "string"

},

{

  "name": "fln,

  "type": "int"

},

]

}

我使用“icn”字段值作为键,但我没有单独注册键模式。我不确定是否需要这样做。

i) 我可以直接使用当前模式中已经存在的字段(本例中为“icn”)作为密钥,而不必注册密钥模式吗?

ii)我需要单独注册密钥模式吗?如果是这样,架构的这一部分是已经为字段创建的还是不同的?

共有1个答案

苏宜人
2023-03-14

您不需要将avro用于密钥。如果密钥的类型为string,则可以使用org.apache.kafka.common.serialization.StringSerializer。如果要使用avro,需要为每个对象类型注册模式。

 类似资料:
  • 我使用https://github . com/confluent Inc/confluent-Kafka-python/blob/master/examples/avro _ producer . py中的示例代码将数据加载到主题中。我只做了一个更改,那就是我添加了“default”:为了模式兼容性,每个字段都为null。它加载得很好,因为我可以在http://localhost:9021/中看

  • 问题内容: 最近,我碰上了这篇文章如何写在Node.js的一个单 我知道以下 状态的文档: 第一次加载模块后将对其进行缓存。多次调用可能不会导致模块代码多次执行。 因此,似乎每个需要的模块都可以轻松地用作单例,而无需单例样板代码。 题: 上面的文章是否提供了有关创建单例的解决方案? 问题答案: 这基本上与nodejs缓存有关。干净利落。 https://nodejs.org/api/modules

  • 问题内容: 两列的大小写条件是相同的。在下面的语句中,我两次使用了此条件,但对于不同的列,是否还有其他方法不重复两次条件? 问题答案: thepirat000答案的变体: 查找表是在CTE中创建的,并根据需要为多列进行引用。 更新: 由于某些莫名其妙的原因,表变量现在被赋予了主键。如果有人可以真正解释一下它将如何提高性能,那么我很想听听它。从执行计划来看并不明显。

  • 一、线程间通信的两种方式 1.wait()/notify() Object类中相关的方法有notify方法和wait方法。因为wait和notify方法定义在Object类中,因此会被所有的类所继承。这些方法都是final的,即它们都是不能被重写的,不能通过子类覆写去改变它们的行为。 ①wait()方法: 让当前线程进入等待,并释放锁。 ②wait(long)方法: 让当前线程进入等待,并释放锁,

  • 我正在编写一个代码片段,用于在Android Studio中的Sqlite DB中执行CRUD操作。我创建了一个listView来保存两个属性,即name和job,但应用程序在运行时会崩溃。上面写着: Sqlite异常:找不到这样的列(代码1)“name”。 我已经搜索了解决方案,但我检查的每一个解决方案都是失败的。我的DB浏览器显示包含该列的表。是否需要将SELECT FROM...Query添

  • 我有一个生产者/消费者模式,如下所示 固定数量的生成器线程,每个线程写入它们自己的BlockingQueue,通过执行器调用 单个使用者线程,读取生产者线程 每个生产者都在运行一个数据库查询,并将结果写入其队列。消费者轮询所有生产者队列。目前,如果出现数据库错误,生产者线程就会死掉,然后消费者就会永远停留在产品队列中等待更多的结果。 我应该如何构造它来正确处理catch错误?