有没有办法找出Kafka序列化数据所花的时间

unguejic  于 2021-06-04  发布在  Kafka
关注(0)|答案(2)|浏览(395)

我想计算Kafka序列化不同数据格式所花费的时间。我怀疑我是否能做到这一点(因为我认为这是在Kafka方面做到的。)如果是的话,我们怎么做?是在message.send()之后完成序列化吗?否则,我也检查Kafka监测指标可用,并没有发现任何与此相关的文件中也。我们已经将请求平均延迟视为一个可能的度量,但它的值似乎太高,不可能只是序列化部分。有没有人能提出同样的建议。

8fsztsew

8fsztsew1#

kafka没有任何api来标识序列化程序/反序列化程序上的性能编号,如果您使用的是基本的序列化程序/反序列化程序,则没有问题可以找到。你真的有兴趣你可以建立自定义序列化/反序列化,并试图得到那里的数字。
您可以在下面的链接中引用自定义序列化程序/反序列化程序自定义序列化程序/反序列化程序

tzcvj98z

tzcvj98z2#

kafka内置了多种格式的序列化程序和反序列化程序,如strings、long、bytearray、bytebuffers,社区还提供了json、protobuf、avro等格式的序列化程序和反序列化程序。
如果您的重点是序列化和反序列化的性能,则可以检查一些基准测试的结果:https://labs.criteo.com/2017/05/serialization/
作者的结论是:
protobuf和thrift在文件大小和序列化/反序列化时间方面具有相似的性能。节俭稍微好一点的性能并没有超过protobuf更容易和风险更小的集成,因为它已经在我们的系统中使用,因此是最终的选择。protobuf也有更好的文档,而thrift则没有。幸运的是,缺少的指南帮助我们快速实现基准测试的节俭。
https://diwakergupta.github.io/thrift-missing-guide/#_typesavro 如果你的物体很小,就不应该使用。但是如果你有非常大的对象并且没有复杂的数据结构,因为它们很难表达,那么它的速度看起来很有趣。与跨语言开发相比,avro工具看起来更面向java世界。c#实现的缺陷和限制非常令人沮丧。

相关问题