具有属性类型的 Kafka 序列化

发布于 2025-01-11 04:55:59 字数 535 浏览 0 评论 0原文

我们正在启动一个基于 Quarkus 的新项目,在 Kafka 上写入记录。

实际上,有一个旧的应用程序可以写入一些记录并且运行良好。

我们的新应用程序在测试主题上写入相同的记录时遇到问题。我们在 JSON 中看不到属性的类型。

让我举个例子:

旧应用程序编写属性如下:

{
 ...
 "businesscode":
 {
  "string": "I2022416535"
 },
 ...
}

新应用程序编写属性如下:

{
 ...
 "businesscode": "I2022416535"
 ...
}

这是 string 属性的示例,但我们对 int 也有同样的问题maparray等属性类型。

用于测试的主题与旧应用程序主题具有相同的特征,我们使用相同的 Avro 文件和相同的生成对象。

我应该怎么做才能解决这个问题?

We are starting a new project based on Quarkus to write records on Kafka.

Actually, there is an old app writing some records and it works fine.

Our new app has a problem writing the same records on a test topic. We can not see the types of attributes in the JSON.

Let me give an example:

The old app writes the attributes as follows:

{
 ...
 "businesscode":
 {
  "string": "I2022416535"
 },
 ...
}

The new app writes the attributes as follows:

{
 ...
 "businesscode": "I2022416535"
 ...
}

This is an example for a string attribute but we have the same problem with int, map, array, etc. attribute types.

The used topic for tests has the same characteristics as the old app topic, and we use the same Avro file and same the generated objects.

What should I do to fix the problem?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

淡忘如思 2025-01-18 04:55:59

问题出在 Avro 转换上。 Avro JSON 编码规定了可空/联合字段使用的类型。

https://avro.apache.org/docs/current/spec.html# json_encoding

否则,您的 JSON 库至少应该能够区分对象(映射)、数组、整数、字符串、布尔值和空值之间的差异。

The problem lies in the Avro conversion. Avro JSON encoding states the type to be used for nullable/union fields.

https://avro.apache.org/docs/current/spec.html#json_encoding

Otherwise, your JSON libraries should at least be able to tell differences between Objects (Maps), Arrays, Ints, Strings, Boolean, and nulls.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文