Java 弗林克读卡夫卡时,速度在某些情况下会急剧下降
我们有一个Flink作业(Flink版本:1.9),它通过键连接两个kafka源,对于每个键,启动一个5分钟计时器,消息缓存在Flink状态,当计时器结束时,将具有相同键的消息(通常每个键有1~5条消息)合并成一个胖消息,并将其发送给kafka 卡夫卡的两个消息来源:Java 弗林克读卡夫卡时,速度在某些情况下会急剧下降,java,apache-kafka,apache-flink,Java,Apache Kafka,Apache Flink,我们有一个Flink作业(Flink版本:1.9),它通过键连接两个kafka源,对于每个键,启动一个5分钟计时器,消息缓存在Flink状态,当计时器结束时,将具有相同键的消息(通常每个键有1~5条消息)合并成一个胖消息,并将其发送给kafka 卡夫卡的两个消息来源: source1(160个分区,每分钟2000~3000万条消息) source2(30个分区,每分钟1~3百万条消息) 平面图只是反序列化卡夫卡消息 KeyedProcess是计时器和Flink状态发挥作用的地方 我尝试了一些改
谁能给我点启示吗?如何解决原因?或者任何我能试试的东西?增加更多硬件是个好主意吗(我认为2000c&4000gb是一个巨大的资源)?非常感谢。您可以先附加一个探查器来查看瓶颈在哪里。(可能是磁盘?) 在某种程度上,RocksDB的表现似乎不再良好。 可能需要进行一些调整。您应该能够通过查看各种RocksDB指标在问题发生时的变化来获得一些见解 以下是一些更有用的指标:
estimate-live-data-size
estimate-num-keys
num-running-compactions
num-live-versions
estimate-pending-compaction-bytes
num-running-flushes
size-all-mem-tables
block-cache-usage
根据此工作负载运行的位置和方式,可能会遇到某种速率限制或节流。有关一个有趣的示例,请参阅。状态后端是如何配置的?@DavidAnderson嗨,大卫,我使用rocksdb状态后端。顺便说一句,检查点被禁用。