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

如何在基于 kafka 流的应用程序中降低滞后

张玺
2023-03-14

我有一个真正的env与3个kafka机器集群,它正在接收大量数据。对于每个主题,有 25 个分区,复制因子设置为 2。

我的应用程序(基于kafka流的应用程序)从这个kafka集群获取数据的应用程序停机了一个多月。现在,每个分区都有大量滞后;高达90000000。

我知道以下参数:

max.poll.records ; default —> 500
max.partition.fetch.bytes ; default —> 1048576
fetch.max.bytes ; default —> 52428800
fetch.min.bytes ; default —> 1

max.poll.interval.ms ; default —> 300000
request.timeout.ms; default —> 30000
session.timeout.ms ; default —> 10000

我有两个消费者节点(使用kafka集群数据的相同组id)。

然而,它并没有赶上滞后,而是保持不变。有人能建议如何改进它以降低滞后吗?

共有1个答案

解阳泽
2023-03-14

如果您的应用程序关闭了一个月,则某些记录已过期,因为主题中的默认保留期为 7 天,因此您很可能丢失了一些消息。此外,默认偏移重置的保留期为 1 天或 7 天,具体取决于您的 Kafka 流版本。似乎你有自动.offset.reset:最早,所以它开始在每个分区的开头消费消息。如果需要跳过所有消息而仅使用新消息,则应设置 auto.offset.reset: 最新,application.id 值更改为新值。

如果您希望并行使用消息并加快延迟的减少,您可以将config < code > num . stream . threads 设置为类似于< code>12的值(< code > num . stream . threads * number of consumer nodes 应该小于或等于< code>numberOfPartitions,否则,一些线程将处于空闲状态),或者需要增加使用者节点的数量。

 类似资料:
  • 我有一个Kafka流应用程序,有两个数据源:事件和用户。 我有4个主题:事件,用户,用户2,用户事件 Users2与Users相同,用于演示GlobalKTable。 Events主题使用时间戳模式,因此当到达时间戳字段日期时,KStream将接收事件记录。 此时,我想为用户KTable中的每个用户ID以及新的事件ID创建一个用户事件记录;但我不知道如何遍历GlobalKTable或KTable来

  • 我们的一个Kafka Streams应用程序的StreamThread使用者在生成以下日志消息后进入了僵尸状态: [Consumer Clientid=Notification-Processor-DB9AA8A3-6C3B-453B-B8C8-106BF2FA257D-StreamThread-1-Consumer,GroupID=Notification-Processor]成员notific

  • 问题内容: 如何在基于Linux的系统上的ac程序中使用mqueue(消息队列)? 我正在寻找一些好的代码示例,这些示例可以显示如何以正确和适当的方式(可能是方法)来完成此操作。 问题答案: 下面是一个简单的服务器示例,该服务器从客户端接收消息,直到接收到“ exit”消息告诉其停止为止。 服务器 的代码: 客户端 代码: 在 常见的 头: 编译 :

  • 我想用kafka流实现请求-响应模式,我使用spring boot kafka,其中添加了一些数据作为报头,命名为关联id,但是当kafka流API处理请求消息时,报头数据会丢失,无法发送到响应主题!我该怎么解决,还是用另一种方法??

  • 我正试图找出如何以适当的方式测试我的代码,并卡在中间的某个地方。 我所使用的: 我需要什么样的帮助: 实现这种方法的工作项目是最可取的。不要花太多的文字,工作代码对我来说是最好的理解方式。 如果没有一个完整的项目,那么带有描述的代码段也很有用。 链接到关于1)基于Java的配置2)替换基于Java的配置进行测试的一些好的和简单的教程。 很抱歉,如果我的想法有点混乱,我是Java EE开发的新手,仍

  • 问题内容: 我打算将Ext JS用于大型应用程序。该应用程序的功能基于角色。用户登录时,他们只会看到与其相关的菜单和屏幕功能。我的服务器端技术将是Java和JSP。 为了解决这个问题,我有两个想法 。1.使用服务器端技术在用户登录后动态创建与Ext JS相关的javascript。Servlet / JSP将根据用户角色创建必要的est js代码。 2.具有在视图JSP中设置的Js变量,这些变量将