使用kafka lib反序列化PRIMITIVE AVRO KEY

2024-04-19

我目前无能力反序列化 avro PRIMITIVE 密钥在 KSTREAM 应用程序中

使用 avro 模式编码的密钥(在模式注册表中注册),

当我使用 kafka-avro-console-consumer 时,我可以看到密钥已正确反序列化

但不可能让它在 KSTREAM 应用程序中运行

密钥的 avro 模式是一个原语:

{"type":"string"}

我已经遵循了 confluence 的文档

final Serde<V> valueSpecificAvroSerde = new SpecificAvroSerde<>();
final Map<String, String> serdeConfig = Collections.singletonMap(SCHEMA_REGISTRY_URL_CONFIG, schemaRegistryUrl);
valueSpecificAvroSerde.configure(serdeConfig, false);

final Serdes.StringSerde keySpecificAvroSerde = new Serdes.StringSerde();
keySpecificAvroSerde.configure(serdeConfig, true);

Consumed<String, totoAvro> inputConf = Consumed.with(keySpecificAvroSerde, valueSpecificAvroSerde);

final KStream<String, totoAvro> mystream = builder.stream("name topic", inputConf);

mystream.peek((key, value) -> logger.info("topic KEY :" + key))

它对于值来说工作得很好,但是键将是一个包含模式注册表中的字节的字符串,而不仅仅是“卷轴”键

https://docs.confluence.io/current/schema-registry/serializer-formatter.html#wire-format https://docs.confluent.io/current/schema-registry/serializer-formatter.html#wire-format

所以字符串键是/§/./11016015201,但我想要卷轴值:1016015201

如果我打印字符串内的字节,它是 [ 0x00 0x00 0x00 0x02 0x31 0x14 0x31 0x30 0x31 0x36 0x30 0x31 0x35 0x32 0x30 0x31 ]


Update

现在正在工作:https://stackoverflow.com/a/51957801/6227500 https://stackoverflow.com/a/51957801/6227500

原答案

该功能当前在架构注册表项目中不可用。

但通过实现自定义 SERDE,您可以管理这种情况,

Thiyaga Rajan 提出了一个可行的实施方案

AVRO 原始类型的 Serde 类 https://stackoverflow.com/questions/51955921/serde-class-for-avro-primitive-type/54667002#54667002

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用kafka lib反序列化PRIMITIVE AVRO KEY 的相关文章

随机推荐

  • 用于教育目的的公共 SQL 数据库

    我正在寻找一个可以免费访问的公开可用的 SQL 数据库 可以在其中运行一些SELECT免费查询一些有意义的数据 不是 item1 item2 item3 你见过吗 如果能附上一些教程就更好了 供应商并不那么重要 只要可以使用通用 JDBC
  • 复杂类型中的 XJC javaType 适配器

    我想让 XJC 在生成 bean 时在复杂类型中使用 javaType 标记 这是不允许的吗 我真的缺少好的文档和一些可以理解的错误消息 这是我正在尝试的操作 但失败并出现错误 编译器无法支持此转换自定义 它附加到错误的位置 或者与其他绑定
  • Django Rest Framework如何禁止用户更改用户名?

    我正在创造UserSerializer并希望允许用户创建新帐户但禁止他们更改用户名 有一个read only我可以应用该属性 但用户在创建新用户名时将无法设置用户名 但如果没有它 它允许我改变它 还有一个required不幸的是 该属性不能
  • Jquery 数据表主题隐藏页眉/页脚块

    我正在尝试删除该表的页眉 页脚块 Picture of what I am trying to remove 该表的Jquery代码 document ready function var oTable tableSmooth dataTa
  • 迭代器模式 - 错误 C2679:二进制 '<<':找不到采用 'std::string' 类型的右侧操作数的运算符 [重复]

    这个问题在这里已经有答案了 我正在尝试使用迭代器模式进行迭代和打印 但出现错误 这是错误 error C2679 binary lt lt no operator found which takes a right hand operand
  • C++11:如何使用 设置种子

    我正在练习随机库 这是 C 11 的新功能 我编写了以下最小程序 include
  • Angular 和 Sails 路由配置

    是否有任何 Sails js 或 Node 配置可以阻止 Angular 路由工作 无论我采取什么方法 除了 sails 的routes js 中的路线之外 每条路线都会返回 404 我尝试过 1 2 和 1 3 Angular 版本 并且
  • 部署到 Digital Ocean 的 Meteor 应用卡在 100% CPU 和 OOM

    我有一个使用 Meteor Up 部署到 Digital Ocean 的 Meteor 0 8 0 应用程序 该应用程序一直卡在 100 CPU 只是因内存不足而崩溃 然后以 100 CPU 再次启动 过去24小时就这样卡住了 奇怪的是没有
  • Rails 4.0 强参数嵌套属性,其键指向哈希值

    我正在使用 Rails 4 x beta 并尝试让嵌套属性与 Carrierwave 一起使用 不确定我正在做的事情是否是正确的方向 经过一番搜索 最后查看了 Rails 源代码和强大的参数 我发现了以下注释 Note that if yo
  • 卸载应用程序 uninstallreceiver 未调用

    经过大量谷歌后 我找到了一些很好的解决方案来找出应用程序的卸载接收器 我指的是第一个链接 https stackoverflow com questions 18692571 how it works warning that app is
  • ReferenceError:错误#1065:变量 JSON 未定义

    我快要爆炸了 想弄清楚如何解决这个问题 所以在我这样做之前 也许你可以帮助我 我正在 flash builder 4 5 1 21328 中的 flash Player 11 下开发一个游戏 我想尝试一下新功能 例如本机 JSON 支持 但
  • 检测请求是否是 jQuery 中的 post

    我试图以不同的方式加载页面 如果它是一个帖子或一个获取 并且似乎 jQuery 会有一些东西所以我可以做 if isPost do something if this page was a post 我正在根据请求类型显示 隐藏某些内容 并
  • Ruby:C 类包含模块 M;在 M 中包含模块 N 不会影响 C。什么给出?

    更详细地说 我有一个模块Narf 它为一系列类提供了基本功能 具体来说 我想影响所有继承的类Enumerable So I include Narf in Enumerable Array是一个类 其中包括Enumerable默认情况下 然
  • Android 解析无法将子类列表固定到缓存

    如图所示http blog parse com 2013 05 30 parse on android just got classier http blog parse com 2013 05 30 parse on android ju
  • 复特征向量

    R 如何表示复特征向量 例如 gt eigen matrix c 2 1 0 2 2 2 values 1 2 2 vectors 1 2 1 0 4 440892e 16 2 1 1 000000e 00 这并不表明特征向量是复数 那么如
  • Get-AdUser,其中邮件不为空

    我正在尝试获取 AD 中拥有电子邮件 邮件属性 的所有用户的列表 我有这个命令 Get AdUser filter Properties mail Select SAMAccountName mail Export CSV Path use
  • Redis键空间事件不触发

    我有两个 Redis 客户端 在一个文件中我有一个简单的脚本设置并删除了 Redis 键 var redis require redis var client redis createClient 6379 127 0 0 1 client
  • 为 Android 应用程序复制 Sqlite 数据库

    我正在尝试使用本教程在我的 Android 应用程序中使用我自己创建的数据库http www reigndesign com blog using your own sqlite database in android applicatio
  • gnuplot任意标注x轴

    我有以下 gnuplot 数据文件 1 0 5 0 9 2 0 1 0 5 3 0 7 0 4 其中第一列是 x 轴 第 2 3 列是两个不同的图表 x 轴坐标始终为自然数 它们代表单词在句子中的位置 第 2 列和第 3 列只是对句子中单词
  • 使用kafka lib反序列化PRIMITIVE AVRO KEY

    我目前无能力反序列化 avro PRIMITIVE 密钥在 KSTREAM 应用程序中 使用 avro 模式编码的密钥 在模式注册表中注册 当我使用 kafka avro console consumer 时 我可以看到密钥已正确反序列化