当前位置:   article > 正文

Kafka中如何使用序列化器?_canal 的kafka 该用什么序列化

canal 的kafka 该用什么序列化

Kafka中,创建一个生产者对象必须指定序列化器。我们有2种选择:

1、使用自定义序列化器。

2、使用已有的序列化器和反序列化器,比如JSON、 Avro、 Thri仇或 Protobuf。

通常不建议使用自定义序列化器,因为使用不同版本的序列化器和反序列化器会出现新旧消息的兼容性问题,特别是当消息记录中有修改字段的情况。

Apache Avro 是一种与编程语言无关的序列化格式,推荐在Kafka上使用Avro序列化器。

Avro数据通过与语言无关的 schema来定义。 schema通过 JSON来描述,数据被序列化成二进制文件或 JSON 文件,不过一般会使用二进制文件。Avro在读写文件时需要用到 schema, schema一般会被内嵌在数据文件里。

Avro有个很好的特性,就是当负责写消息的应用程序使用了新的 schema,负责读消息的应用程序可以继续处理消息而无需做任何改动。
在这里插入图片描述
在这里插入图片描述
我们看到,更新到新版的 schema 后,旧记录仍然包含faxNumber 字段,而新记录则包含email字段 。
对于旧程序,可以用getFaxNumber()方法获取旧值,对于新程序,可以用getEmail()方法获取新值,这样也就避免了异常或者阻断性错误,也不需要对现有数据进行大幅更新。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/710633
推荐阅读
相关标签
  

闽ICP备14008679号