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

LongSerializer和Serdes.LongSerde之间的Kafka序列化差异

锺离马鲁
2023-03-14

序列化程序的主要链接文档:https://kafka.apache.org/11/javadoc/org/apache/kafka/common/serialization/package-frame.html

LongSerializer:https://kafka.apache.org/11/javadoc/org/apache/kafka/common/serialization/longSerializer.html

serdes.longserde:https://kafka.apache.org/11/javadoc/org/apache/kafka/common/serialization/serdes.longserde.html

多谢了。

共有1个答案

汤兴生
2023-03-14

您应该知道,对于Kafka(代理)消息是字节数组(键、值)。

KafkaProducer、KafkaConsumer和KafkaStreams需要知道如何写和读消息--将它们从POJO转换为字节数组,反之亦然。

为此,使用了org.apache.kafka.common.serialization.serializerorg.apache.kafka.common.serialization.deserializer。KafkaProducer使用serializer-将转换为字节数组,KafkaConsumer使用deserializer将字节数组转换为。KafkaStreams应用程序同时执行写、读(到/从主题)操作,并为org.apache.kafka.common.serialization.serdes执行-它是serializerdeserializer的某种包装器。

在您的示例中:

  • LongSerializer是一个类,应用于将Long转换为字节数组
  • longserde是一个类,应该在Kafka Streams应用程序中使用它来读取和写入Long(它使用longserializerlongdeserializer)

附加阅读:

    null
 类似资料:
  • AFAIK,max.poll.interval.ms是Kafka 0.10.1中引入的。然而,还不清楚我们什么时候可以同时使用session.timeout.ms和max.poll.interval.ms,考虑使用心跳线程没有响应的酪蛋白,但是我的处理线程由于设置了更高的值,它仍然在处理记录。但是当heartbeat线程关闭时,在越过session.timeout.ms之后,会发生什么情况。因为我

  • 我不清楚为什么我们同时需要和以及我们何时使用其中之一或两者?这两个设置似乎都指出了协调器在假定消费者已死亡之前等待从消费者获取心跳的时间上限。 另外,它在基于KIP-62的0.10.1.0+版本中的表现如何?

  • 可能重复: 原始数组与ArrayList 在java中,列表和数组有什么区别?或数组和矢量之间的区别!

  • 问题内容: 很快就有两个相等运算符:double equals( )和Triple equals( ),两者之间有什么区别? 问题答案: 简而言之: 操作员检查其实例值是否相等, 操作员检查引用是否指向同一实例, 长答案: 类是引用类型,可能有多个常量和变量在幕后引用类的同一单个实例。类引用保留在运行时堆栈(RTS)中,其实例保留在内存的堆区域中。当您控制平等时, 这意味着它们的实例是否彼此相等。

  • 我编写了一个简单的脚本,它接受任意数量的参数来演示< code>$@和< code>$*之间的区别: 在我做的 CLI 上 这就是打印出来的 因为它们是相同的,这是否意味着等于?还是我遗漏了一点?