【问题标题】:Apache Flink & Kafka FETCH_SESSION_ID_NOT_FOUND info logsApache Flink 和 Kafka FETCH_SESSION_ID_NOT_FOUND 信息日志
【发布时间】:2020-08-18 15:09:16
【问题描述】:

我们的 Flink 应用程序有一个 Kafka 数据源。

应用程序以 32 并行度运行。

当我查看日志时,我看到很多关于 FETCH_SESSION_ID_NOT_FOUND 的陈述。

2020-05-04 11:04:47,753 INFO  org.apache.kafka.clients.FetchSessionHandler                  - [Consumer clientId=consumer-81, groupId=sampleGroup]
Node 26 was unable to process the fetch request with (sessionId=439766827, epoch=42): FETCH_SESSION_ID_NOT_FOUND.
2020-05-04 11:04:48,230 INFO  org.apache.kafka.clients.FetchSessionHandler                  - [Consumer clientId=consumer-78, groupId=sampleGroup]
Node 28 was unable to process the fetch request with (sessionId=281654250, epoch=42): FETCH_SESSION_ID_NOT_FOUND.

这些日志语句是什么意思?

可能的负面影响是什么?

不是:我没有使用 Apache Kafka 的经验

谢谢..

【问题讨论】:

    标签: apache-kafka apache-flink flink-streaming


    【解决方案1】:

    这可能有几个原因,但最常见的原因是代理上的 FetchSession 缓存已满。

    默认情况下,代理缓存最多 1000 个 FetchSession(通过 max.incremental.fetch.session.cache.slots 配置)。当这个填满时,代理会驱逐缓存条目。如果您的客户端缓存条目消失,它将收到FETCH_SESSION_ID_NOT_FOUND 错误。

    这个错误不是致命的,消费者应该自动发送一个新的完整的 FetchRequest 并继续工作。

    您可以使用 kafka.server:type=FetchSessionCache,name=NumIncrementalFetchSessions 指标检查 FetchSession 缓存的大小。

    【讨论】:

    • 感谢您的回答,“这个错误不是致命的,消费者应该发送......”,我再次查看日志,我看到相同的消费者 clientId 在很小的间隔内提供了相同的信息。例如,“Consumer clientId=consumer-84”在“2020-05-06 00:58:18,769”、“2020-05-06 01:00:19,500”、“2020-05-06 01:04”时表示 FETCH_SESSION_ID_NOT_FOUND: 25,887 英寸。这可能是一种正常行为还是会导致一些延迟?
    • 它会稍微影响延迟,因为它会强制消费者再次执行完整的获取请求
    • 这个问题有什么解决办法吗?从这个讨论stackoverflow.com/questions/58484342/…,据说增加“max.incremental.fetch.session.cache.slots”的值
    猜你喜欢
    • 2020-01-09
    • 1970-01-01
    • 2020-02-17
    • 2017-01-23
    • 2018-08-11
    • 1970-01-01
    • 1970-01-01
    • 2020-04-15
    • 2019-05-11
    相关资源
    最近更新 更多