配置akka Alpaka kafka调查上吊消费者

iklwldmw  于 2021-06-04  发布在  Kafka
关注(0)|答案(0)|浏览(330)

我想正确而有效地记录kafka流,以便调查我的用例,如下所示。
我试图解决的问题暴露在github上https://github.com/akka/alpakka-kafka/issues/899 作为一个错误,但可能是我做错了什么,我正在努力调查。
简言之,每当我从一组主题中消费时,有多个消费者属于同一个消费者组(该组的所有消费者都订阅同一组主题),只有一半的消费者实际执行消费,另一半只是挂起。
日志的细节在票上。
所以我想了解为什么这些消费者没有得到任何数据。确切的问题是什么,为什么他们一直记录: FETCH_SESSION_ID_NOT_FOUND 我想把我的日志集中在足够的细节,以了解这一点,而不是太多的细节,使它很难找出问题的根源。
奇怪的是,在这一点上调整akka上的调试并没有起到任何作用。只有当我在apache上打开它时,我才会得到调试结果,但是结果太多了。
以下是我的日志配置方案:
在application.conf中

akka {
  loggers = ["akka.event.slf4j.Slf4jLogger"]
  loglevel = ${?AKKA_LOG_LEVEL}
  loglevel = "INFO"
  logging-filter = "akka.event.slf4j.Slf4jLoggingFilter"
}

在我的logback.xml中

<configuration>

    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
        </encoder>
    </appender>

    <logger name="org.apache" level="${APACHE_LOG_LEVEL:-INFO}"/>
    <logger name="com.elsevier.entellect" level="${APP_LOG_LEVEL:-INFO}"/>
    <logger name="akka" level="${AKKA_LOG_LEVEL:-INFO}"/>

    <root level="${ROOT_LOG_LEVEL:-INFO}">
        <appender-ref ref="STDOUT" />
    </root>

</configuration>

我通过kubernetes进行部署,并根据需要注入环境变量。
将akkaèu logèu level设置为debug完全没有区别。
但是,将apache\u log\u level设置为off、info或debug会有所不同。然而,在信息,我有Kafka的基本情况,如在github的帖子。如果我把调试,那么我得到太多的东西。
更具体地说,帮助找出我需要在哪个级别设置什么记录器,以至少捕获挂起的消费者的情况?他们提出要求却什么也得不到,有没有再平衡的问题?
请注意我的使用者的配置:

val consumerSettings = ConsumerSettings(system, new StringDeserializer, new StringDeserializer)
      .withBootstrapServers(conf.kafkaBroker.bootstrapServers)
      .withGroupId(conf.kafkaConsumer.groupId)
      .withProperty(ConsumerConfig.AUTO_OFFSET_RESET_CONFIG, conf.kafkaConsumer.offsetReset)
      .withProperty(ConsumerConfig.MAX_POLL_INTERVAL_MS_CONFIG, "1800000")
      .withProperty(ConsumerConfig.SESSION_TIMEOUT_MS_CONFIG, "300000")
      .withProperty(ConsumerConfig.HEARTBEAT_INTERVAL_MS_CONFIG, "60000")
      .withProperty(ConsumerConfig.MAX_POLL_RECORDS_CONFIG, "1000000")
      .withProperty(ConsumerConfig.FETCH_MAX_WAIT_MS_CONFIG, "10000")

这个设置是特定于我们对那些消费者的工作量,他们必须做很长的操作。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题