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

Kafka制作批次。大小不起作用

梁豪
2023-03-14

我用的是Kafka1.0,我增加了批量。大小=100K,用于优化我的制作人性能。但我发现,无论我设定的批次是什么,都没有任何效果。尺寸=100K或1000K或仅1K。此外,我还设定了我的逗留时间。ms=5,但这使性能更差。当我调试Kafka producer的源代码时,如下所示:

if (result.batchIsFull || result.newBatchCreated) {
     this.sender.wakeup();
}

我发现了结果的价值。纽巴奇总是正确的,我想这就是为什么这一批。大小没有起任何作用,因为它每次都会唤醒发送者,而不是在batchIsFull=true时。

我现在很困惑,有什么想法吗?

共有1个答案

薛承基
2023-03-14

这是一个可能的重复:提高Kafka制作人的表现

但简而言之,批处理。大小的延迟。ms参数应该一起调整,因为存在一个权衡:

在您的示例中,如果当前批次已满(这个值是以字节为单位的,所以100字节是IMO的最小值),或者发生了延迟超时,生产者将把当前批次发送到服务器。

因此,如果你必须试验和调整这些参数,以找到最佳设置。

 类似资料:
  • 我知道Kafka制作人会将消息分批处理。每个批属于一个特定的分区。 我的问题是 生产者是否知道每个批次属于哪个分区? 生产者是否知道每个分区的代理地址? 当生产者发送请求时,每个请求包含多个批次还是只包含一个属于目标分区的批次。 如果生产者发送多个批次,接收kafka服务器是否将批次重传到目标分区。

  • 我得到以下查询:hibernate:select CHARGE.nextval from dual hibernate:insert into CHARGE(ACCOUNTNUMBER CHARGE_ID)值(?,?)Hibernate:插入到CHARGE(ACCOUNTNUMBER CHARGE_ID)值(?,?)Hibernate:插入到CHARGE(ACCOUNTNUMBER CHARGE_

  • 问题内容: 我无法弄清楚为什么我的搜索区分大小写。我读过的所有内容都说ES默认情况下不敏感。我有一些映射,它们指定用于索引和搜索的标准分析器,但似乎有些东西还是区分大小写的,即通配符: 这失败了,但是“ rae *”可以按需工作。我需要使用通配符来进行“开始于”类型的搜索(我想)。 我正在从.Net应用程序中使用NEST,并在创建索引时指定分析器,因此: 在这种情况下,它使用的是简单分析仪,但标准

  • 我试图将消息设置为示例留档。我所有的服务和类都装饰有组件或服务注释,但我仍然得到以下例外: org.springframework.messaging.MessageDeliveryException:Dispatcher没有频道unknown.channel.name的订阅者 应用程序设置增加了:cloud:stream:kafka:binder:brokers:localhost zk nod

  • 是否可以限制Kafka消费者返回Spark Streaming的批的大小? 我这么问是因为我得到的第一批记录有上亿条记录,处理和检查它们需要很长时间。

  • 我有一个WordPress网络站点(目前只有一个页面)。最大的问题是,WordPress中媒体的最大上传大小限制为1MB。 我增加这一限制的任何尝试都没有成功。 到目前为止,我所尝试的: 增加upload_max_filesize和post_max_size 服务器重新加载php。ini在特定时间段内自动生成。通过运行phpinfo(),php确认了该更改。 WordPress插件(Revo Sl