gpt4 book ai didi

java - 什么数据格式被认为在 Kafka 上写入速度最快?

转载 作者:行者123 更新时间:2023-12-02 04:21:49 27 4
gpt4 key购买 nike

我们在 Kafka 中有多种选项可以在上面写入数据,例如:字符串格式、字节数组。在 Kafka 上写入时,哪种数据格式被认为是最快的。

此外,kafka 是否提供任何实用程序来压缩整个数据一次,然后在其上写入。

还需要考虑在消费同一条消息时我们会将其解压缩,因此读取数据的成本会增加。

最佳答案

Kafka 0.8.2 将数据作为字节数组序列化到其提交日志中。 org.apache.kafka.common.serialization.Serializer 类具有以下接口(interface):

byte[] serialize(String var1, T var2);

它需要返回一个字节数组作为要写入 Kafka 主题的数据。因此 org.apache.kafka.common.serialization.StringSerializer 类当前必须从字符串中提取字节数组:

public byte[] serialize(String topic, String data) {
try {
return data == null?null:data.getBytes(this.encoding);

因此,在性能方面,如果您有二进制数据,则使用默认序列化器将其写入字节数组,因为在 Java 中创建字符串可能会很昂贵,而 Kafka 要做的就是将字符串转换为字节数组。

关于压缩Kafka目前提供以下压缩options关于开箱即用的生产者:

  • compression.codec
  • This parameter allows you to specify the compression codec for all data generated by this producer. Valid values are "none", "gzip" and "snappy".

查看以下article来自 Kafka 共同创建者之一,但总而言之,GZIP 提供了最好的压缩,但也需要更多的 CPU 周期。 Snappy 是一个很好的折衷方案,可以压缩数据,并且在许多情况下允许更高的吞吐量。 GZIP 更适合跨数据中心复制,因为它需要更少的带宽。

关于java - 什么数据格式被认为在 Kafka 上写入速度最快?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32695570/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com