【问题标题】:When does Kafka Streams de/serializeKafka Streams 何时反序列化
【发布时间】:2018-09-15 04:42:48
【问题描述】:

Kafka Streams程序在什么情况下需要序列化/反序列化?假设我们有以下简单的程序:

KStream<k,v> stream = ...;
Kstream<k,v> stream2 = stream.filter( predicateA )
Kstream<k,v> stream3 = stream2.filter( predicateB)
stream3.to( topic );

非常具体地,在filter 的两次调用之间,“k”和“v”是否被序列化/反序列化,或者单个数据点是否作为本机对象传递?

【问题讨论】:

  • 我猜docs.confluent.io/current/streams/developer-guide/… 没有回答您的问题,因为它列出了示例操作,而不是列出全部或具体提及过滤器。但stackoverflow.com/a/46611119/9705485 确实给出了答案。
  • 瑞恩,谢谢。它看起来在简单操作之间传递数据(例如,filter)不进行序列化。我对此感兴趣的不是filter 本身,而是了解反序列化性能对整体处理时间的影响程度。

标签: apache-kafka apache-kafka-streams


【解决方案1】:

如果可以避免反序列化开销,Kafka Streams 会尝试传递 Java 对象。

仅当数据被读取或写入主题或存储时,才会被反序列化。

所有可能需要对数据进行反序列化/序列化的运算符都允许您指定键和值Serde——这是一个很好的指标,哪个运算符可以反序列化/不序列化数据。

【讨论】:

    猜你喜欢
    • 2019-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多