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

追踪Kafka中的高延迟

和和煦
2023-03-14

我在一个公认的缓慢配置中设置了Kafka——但我不期待我看到的数字。

我将集群设置为<code>LogAppendTime</code>,因此我正在测量事件写入Kafka(由代理决定)与服务接收到事件之间的时间。代理和应用程序都位于“同一位置”,因此服务器之间的ping时间很短,时钟应该同步或接近。

我看到延迟在 2ms 到 600ms 之间,很多是 250ms......巨大的差异让我觉得我的设置出了问题。它因消费者群体而异。

< code>Kafka v2.7.0 x 4个经纪人

关键代理属性:

default.replication.factor = 4
min.insync.replicas = 2
num.partitions = 50
offsets.topic.num.partitions = 50
offsets.topic.replication.factor = 4
transaction.state.log.min.isr = 2
transaction.state.log.num.partitions = 50
transaction.state.log.replication.factor = 4

主要消费者属性:

fetch.max.wait.ms = 500
fetch.min.bytes = 1
isolation_level = read_committed

主要生产者属性:

enable.idempotence = true
linger.ms = 0
transaction.id = <id>

我正在使用事务生产者使用 producer.sendOffsetsToTransaction() 提交偏移量。

有许多消费者群体,它们都是事务性的,以相同的方式读取事件,然后用新的偏移量提交新的事件。

我遗漏了什么设置吗?我知道Kafka不是面向低延迟的,但是我想尽可能实现最低的延迟...有希望地

编辑

我还尝试了以下设置:

default.replication.factor = 2
min.insync.replicas = 1
num.partitions = 50
offsets.topic.num.partitions = 50
offsets.topic.replication.factor = 2
transaction.state.log.min.isr = 1
transaction.state.log.num.partitions = 50
transaction.state.log.replication.factor = 2

不使用交易和

enable.idempotence = false

共有1个答案

夏侯臻
2023-03-14

< code>num.partitions = 50和< code > offsets . topic . num . partitions = 50 ,代理数量为4。我认为这是一个问题,因为您的群集花费大量时间进行复制和获取副本,因此时间花费在网络通信上。此外,I/O线程会受到限制,从而导致问题。

如果可能,减少分区的数量。是否有理由在一个4节点集群上拥有50个分区?

建议您使用以下设置

  • num.network.threads
  • queued.max.requests.
  • num.io.threads.
  • num.replica.fetchers.
 类似资料:
  • 我不熟悉ApacheStorm和kafka,作为POC的一部分,我正在尝试使用kafka和ApacheStorm处理消息流。我使用的是暴风Kafka的来源https://github.com/apache/storm/tree/master/external/storm-kafka,我能够创建一个示例程序,该程序使用KafkaSpout读取来自kafka主题的消息,并将其输出到另一个kafka主题

  • 我想追踪连续的高点,如这张照片所示,在熊猫的时间序列中。见下图: 熊猫怎么能做到这一点? 如果你想玩一个真实的例子,你可以下载股票的价格,说“MSFT”,然后用“close”作为例子。有多种方法可以下载股票价格,但这里有一种:

  • 如何使用Spring Cloud sleuth跟踪基于Kafka的事件?我看到的例子都是RESTAPI。我在找Kafka客户图书馆。 另外,使用Spring cloud sleuth是一个好主意还是应该手动通过标头传递我的TraceID?

  • 页面追踪分为两部分: 时间筛选 和 页面追踪列表详情 1.时间筛选 便捷按钮有今日、昨日、前日、上周 X、近七天,并且能自定义选择时间段 2.页面追踪列表 1)通过页面本身的热区来监测页面内容的热度,点击越多的内容越亮,反之则越暗 2)可以非常快速地观察到网页中的点击分布情况 注意:该功能正在优化中,暂时不对外开放。

  • Akka使用 GitHub Issues作为其问题跟踪系统。 浏览 Tickets 在提交一张ticket之前,请检查现有的Akka tickets是否在早些时候报告了同样的问题。非常欢迎你在现有的ticket中发表评论,尤其是当你有可以分享的重复性测试用例的时候。 路线图 请参看Akka路线图,以找出即将发行的Akka版本中的总体主题。 创建ticket 请包括 Scala 和Akka的版本及相

  • 在Git中‘追踪分支’是用与联系本地分支和远程分支的. 如果你在’追踪分支'(Tracking Branches)上执行推送(push)或拉取(pull)时, 它会自动推送(push)或拉取(pull)到关联的远程分支上. 如果你经常要从远程仓库里拉取(pull)分支到本地,并且不想很麻烦的使用"git pull "这种格式; 那么就应当使用‘追踪分支'(Tracking Branches). ‘